Open Source im professionellen Einsatz

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

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook