ELDK, Yocto, Poky und Open Embedded Linux
Nach erfolgreichem Login landet der Benutzer in einem gut 600 MByte umfassenden Linux-System mit vielen Tools. Darunter sind auch Programme, die auf dieser Hardware nicht ohne Weiteres funktionieren, zum Beispiel X-Window oder Werkzeuge, deren Einsatz auf der schmalbrüstigen CPU wenig Sinn ergibt, zum Beispiel der C-Compiler. Die verwendete Distribution Embedded Linux Development Kit (ELDK) in Version 5.0 [6] basiert auf dem umfangreichen Embedded-Baukasten Yocto [7], der wiederum Poky [8] und als Kern Open Embedded Linux [9] verwendet.
Wer Python mag, fühlt sich darin schnell heimisch, die Skriptsprache steuert dort mit Tools wie Bitbake [10] auch den Bauprozess der Pakete. Debian-ARM-Pakete, überträgt »alien -t«
in ein »tar.gz«
-Skript, das der Admin anschließend einfach im Root-Dateisystem entpackt.
Professor Dr. Hubert Högl von der HS Augsburg hat auf diese Weise "ohne Probleme schon RRDtool, Gnuplot, Alsa, Ogg-Vorbis und anderes zum Laufen gebracht". Anstelle von ELDK ließe sich auch gleich Debian als Basis nehmen, fehlende Pakete installiert dann Apt-get. "Es gibt ja mittlerweile von fast jeder Distribution eine ARM-Variante", so Högl zum Linux-Magazin.
Ein Vorteil des Gnublin-Boards gegenüber anderen Plattformen ist die Auswahl von gut dokumentierten Schnittstellen, die sich unter Linux einfach übers Dateisystem ansteuern lassen. Mehrere GPIO-Pins (General Purpose Input/Output, [11]) sind vorhanden und gut dokumentiert. Die rote LED auf dem Board beispielsweise ist über GPIO3 erreichbar, einfach via Sys-Filesystem.
Das Arbeiten mit Sensoren und Eingängen lernen
Unter »/sys/class/gpio«
aktiviert ein »echo 3 > export«
das Unterverzeichnis »gpio3«
. Der Anwender wechselt hinein und findet dort zwei Dateien namens »direction«
und »value«
. Ein »cat out > direction«
legt GPIO3 als Ausgang fest, »echo 1 > value«
schaltet die LED ein, mit »echo 0«
geht sie wieder aus.
Einfache Skripte, mit denen die LED zum Beispiel das Blinken lernt, liegen als Beispiele in verschiedenen Sprachen bereits im Homeverzeichnis von Root. Listing 1 zeigt ein Bash-Programm, Listing 2 sein Lua-Pendant. Weitere Programme und Beispiele finden sich auf der Gnublin-Webseite [12].
Listing 1
blink.sh
01 #!/bin/sh
02
03 # Blink the onboard LED
04 # http://blog.makezine.com/archive/2009/02/blinking-leds-with-the-beagle-board.html
05
06 GPIO=3
07
08 cleanup() { # Release the GPIO port
09 echo $GPIO > /sys/class/gpio/unexport
10 exit
11 }
12
13 # Open the GPIO port
14 #
15 echo $GPIO > /sys/class/gpio/export
16 echo "high" > /sys/class/gpio/gpio$GPIO/direction
17
18 trap cleanup SIGINT # call cleanup on Ctrl-C
19 # Blink forever
20 while [ "1" = "1" ]; do
21 echo 1 > /sys/class/gpio/gpio$GPIO/value
22 sleep 1
23 echo 0 > /sys/class/gpio/gpio$GPIO/value
24 sleep 1
25 done
26
27 cleanup # call the cleanup routine
Listing 2
blink.lua
01 -- blink.lua
02 GPIO = 3
03
04 function wait(n)
05 os.execute("sleep " .. tonumber(n))
06 end
07
08 function cmd(c)
09 print(c)
10 os.execute(c)
11 end
12
13 cmd("echo " .. GPIO .. " > /sys/class/gpio/export")
14 cmd("echo out > /sys/class/gpio/gpio" .. GPIO .. "/direction")
15 n = 0
16 while n < 2 do
17 cmd("echo 1 > /sys/class/gpio/gpio" .. GPIO .. "/value")
18 wait(1)
19 cmd("echo 0 > /sys/class/gpio/gpio" .. GPIO .. "/value")
20 wait(1)
21 n = n + 1
22 end
23 cmd("echo ".. GPIO .." > /sys/class/gpio/unexport")
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 4 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





