• Keine Ergebnisse gefunden

Angepasste Debian-Installation

Debian auf dem Embedded-PC OpenRISC-Alekto

5.2 Angepasste Debian-Installation

Im weiteren Text wird das Aufspielen eines ISO-Images des Betriebssystems beschrieben. Tats¨achlich kann der Alekto optional mit einer CF-Karte mit vor-installiertem Basissystem bzw. vollst¨andigem System-Image erworben werden.

In dieser Variante ist der Rechner sofort einsatzbereit und der vorliegende Ab-schnitt kann ¨ubersprungen werden. F¨ur die Verwendung eigener CF-Karten oder auch f¨ur eine Neuinstallation wird in den nachfolgenden Schritten er-kl¨art, wie fertige System-Images aufgespielt werden.1 Abschnitt 5.8 stellt ei-ne weitere M¨oglichkeit vor, eiei-ne Debian-Installation von Grund auf ¨uber den Debian-Installer aufzusetzen.

Die CF-Karte sollte zun¨achst ¨uber einen USB-Adapter an den Ubuntu-Hostrechner angeschlossen werden. Falls bereits eine Partition vorhanden ist und die Karte automatisch gemountet wird, muss diese zun¨achst wieder aus-geh¨angt werden. ¨Uber das Programm gparted2 werden auf der leeren Karte zun¨achst zwei Partitionen angelegt: Eine Systempartition vom Typext23und dahinter liegend eine Partition f¨ur virtuellen Speicher vom Typ swap. Die Gr¨oße der Flashkarte sollte mindestens 2 GB betragen. Als Partitionsgr¨oßen empfehlen sich f¨ur eine Karte dieser Gr¨oße 1,8 GB f¨ur das System und 256 MB f¨ur Swap-Speicher. Gr¨oßere Karten werden mit ¨ahnlichem Verh¨altnis partitio-niert. F¨ur die Systempartition ist abschließend noch das Boot-Flag zu setzen, dann kann gparted beendet werden. Der Datentr¨ager sollte, falls nun vom System automatisch gemountet, wiederum ausgeh¨angt werden.

Nun kann entweder das Basissystem oder das Komplettsystem auf die CF-Karte ¨ubertragen werden (aktuell handelt es sich um die Dateien 11022008 etch base.bin bzw. 27032008 etch base.bin auf der mitgelie-ferten DVD). Das Basissystem enth¨alt bereits die Grundfunktionalit¨at f¨ur

1System-Images werden zum aktuellen Zeitpunkt von VisionSystems nur f¨ur Ker-nel 2.4 geliefert.

2Gegebenenfalls ¨uberAnwendungen/Hinzuf¨ugen nachzuinstallieren.

3ext2ist etwas performanter als ein Journaling-Dateisystem wieext3. Auf einem Standard-PC ergibt sich kaum ein Unterschied, auf einem Embedded-System mit magerer Prozessorleistung macht sich dies schon eher bemerkbar. Wird mehr Wert auf die Datensicherheit im Falle eines Absturzes gelegt, so sollteext3verwendet werden. Es ist aber zu bedenken, dass sich die h¨aufigeren Schreibzugriffe nachteilig auf die Lebensdauer des Flash-Speichers auswirken.

Software-Entwicklung (gcc-3.3, vim-tiny Editor) und Netzwerkdienste (SSH, TELNET, VSFTP, NETCAT). Das Komplettsystem erg¨anzt den Leistungs-umfang um Dienste wie Samba, Apache2 Webserver, Courier Mailserver oder NTP. ¨Uber die Debian-Paketverwaltung k¨onnen diese Anwendungen aber auch bei Bedarf rasch nachinstalliert werden, sodass eine Basisinstallation immer auch sp¨ater noch zum Komplettsystem ausgebaut werden kann.

Um das Basissystem aufzuspielen, wird nun in das Verzeichnis mit den Image-Dateien gewechselt und im Terminal folgender Befehl eingegeben:4

$ dd if = 1 1 0 2 2 0 0 8 _ e t c h _ b a s e . bin of =/ dev / sdg

Wenn nicht klar ist, welche Ger¨atedatei (hier/dev/sdg) der CF-Karte zuge-ordnet ist, so sollte dies ¨uber System/Einstellungen/Hardwareinformationen nachgepr¨uft werden. Dort wird der Ger¨atename im Reiter Erweitert ange-zeigt. Vorsicht: Besonders, wenn andere externe Ger¨ate wie USB-Speichersticks oder USB-Festplatten angeschlossen sind, ist hier Vorsicht angebracht. Wenn versehentlich auf ein solches Ger¨at zugegriffen wird, wird dieser Datentr¨ager unbrauchbar.

Da das Dateisystem nach dem Aufspielen mitddlediglich die Gr¨oße der Image-Datei besitzt, muss diese zun¨achst wieder ¨uber den Befehlresize2fs5 korri-giert werden. Zuvor wird ein Check des Dateisystems verlangt, insgesamt sind dazu folgende Befehle notwendig:

$ s u d o e 2 f s c k - f / dev / s d g 1

$ s u d o r e s i z e 2 f s / dev / s d g 1

Das Ergebnis l¨asst sich durch einen Aufruf vondf -h ¨uberpr¨ufen.

Die CF-Karte ist nun zum Booten vorbereitet und kann in den Slot des Alekto eingesetzt werden. Soll eine andere Kernelversion als die auf der System-DVD mitgelieferte verwendet werden, so muss lediglich die Datei/boot/zImageauf der CF-Karte ersetzt werden.

Unter ftp://ftp.visionsystems.de/pub/multiio/others/ stehen fertig

¨ubersetzte Kernel-Dateien zum Download bereit. Die Kernel-Quellen sind im SVN-Repository der Fa. VisionSystems verf¨ugbar unter http://svn.

visionsystems.de/.

5.3 Erste Schritte

Ein großer Vorteil des Alekto ist der nach außen gef¨uhrte Terminalstecker.

Durch den Anschluss an einen Hostrechner lassen sich ¨uber die serielle Konsole

4 Das ProgrammDisk Dump (dd)kopiert Daten 1:1 zwischen Quelle und Ziel und eignet sich zum Erstellen von Sicherungskopien kompletter Partitionen.

5 Enthalten im Debian-Paketext2resize.

90 5 Debian auf dem Embedded-PC OpenRISC-Alekto

das BIOS editieren, der Bootvorgang nachvollziehen und Netzwerkeinstellun-gen vornehmen. Es kann entsprechend auch ohne Einbindung in das Hausnetz ein komfortabler Zugriff auf den Embedded-PC erfolgen.

Auf dem Ubuntu-basierten Hostrechner k¨onnen die Ausgaben auf die seriel-le Schnittstelseriel-le mit dem Programm Serial Port Terminal angezeigt werden.

Dies ist ¨uber die Men¨upunkte Anwendungen/Hinzuf¨ugen zu installieren und erscheint nach Auswahl Zeige: Alle verf¨ugbaren Anwendungen in der Liste.

Die Verbindung zwischen Alekto und Hostrechner wird ¨uber das mitgeliefer-te Terminalkabel hergesmitgeliefer-tellt. Dann wird das Programm Serial Port Termi-nal gestartet und dort im Men¨u Configuration/Port der serielle Port aus-gew¨ahlt. Normalerweise ist dies /dev/ttyS0 oder /dev/ttyS1. Bei Verwen-dung eines USB-Seriell-Adapters erscheint die Schnittstelle ¨ublicherweise als /dev/ttyUSB0.6Abschließend sind folgende ¨Ubertragungsparameter einzustel-len: 115 200 Baud, 8 Datenbits, 1 Stopbit, keine Parit¨at, keine Flusssteuerung.

Wird nun die Stromversorgung angeschlossen, so werden die Meldungen des Bootvorgangs auf der Konsole ausgegeben. Dann erscheint der folgende An-meldebildschirm:

I N I T : E n t e r i n g r u n l e v e l : 2

S t a r t i n g s y s t e m log d a e m o n : s y s l o g d . S t a r t i n g k e r n e l log d a e m o n : k l o g d .

S t a r t i n g p o r t m a p d a e m o n ... A l r e a d y r u n n i n g ..

S t a r t i n g i n t e r n e t s u p e r s e r v e r : i n e t d . S t a r t i n g O p e n B S D S e c u r e S h e l l s e r v e r : s s h d . S t a r t i n g FTP s e r v e r : v s f t p d .

S t a r t i n g NFS c o m m o n u t i l i t i e s : s t a t d . S t a r t i n g p e r i o d i c c o m m a n d s c h e d u l e r : c r o n d . S t a r t i n g web s e r v e r ( a p a c h e 2 ) . . . .

D e b i a n GNU / L i n u x 4.0 d e b i a n c o n s o l e d e b i a n l o g i n :

Nun kann man sich als Benutzer root (Passwort: linux) anmelden, sollte da-nach aber ¨uber den Befehl passwd ein eigenes Passwort setzen. F¨ur regul¨are Benutzer steht außerdem ein Zugang mit Namen user zur Verf¨ugung (Pass-wort user). Im n¨achsten Schritt empfiehlt es sich, die Netzwerkverbindung einzurichten, um zuk¨unftig auf das Terminal verzichten zu k¨onnen. Dies ge-schieht genau wie f¨ur ein Standard-Debian-System gem¨aß der Anleitung in Anhang A.3.1. Als Editoren sind von Haus aus vimodernanoverf¨ugbar (vgl.

Anhang A.2.2).

Wurde der Alekto mit dem Hausnetzwerk verbunden, so sollte nun auch ein SSH-Login vom Host-PC aus m¨oglich sein:

$ ssh root@ < alekto - ip >

6An dieser Stelle kann es notwendig sein, die Zugriffsrechte f¨ur die seriellen Ger¨ate anzupassen. N¨aheres dazu ist in Anhang A.4.4 erkl¨art.

Um die h¨aufigen Eingaben des Passwortes zu sparen, k¨onnen f¨ur die regul¨aren Benutzer SSH-Schl¨ussel-Paare erzeugt und der ¨offentliche Schl¨ussel mit dem Host-PC getauscht werden (vgl. Abschnitt A.3.2). Funktioniert die Internet-verbindung von Alekto aus (Test ¨uberping google.de), dann kann nun eine Aktualisierung der Paketinformationen erfolgen:

$ apt - get u p d a t e

Jetzt lassen sich weitere, h¨aufig ben¨otigte Pakete installieren:

$ apt - get i n s t a l l s u d o s u b v e r s i o n b z i p 2 ncurses - dev

Sowohl der bereits eingerichtete Benutzeruserals auch neue Benutzer k¨onnen nun der Sudoers-Liste in/etc/sudoershinzugef¨ugt werden, um kurzzeitig f¨ur Administrationsaufgabenroot-Rechte zu erwerben (vgl. Anhang A.4.5).

5.4 Software-Entwicklung

Es existieren zwei M¨oglichkeiten, Software f¨ur den Alekto zu entwickeln. Die erste M¨oglichkeit ist die native Entwicklung direkt auf dem Ger¨at selbst – der Ablauf ist dann genauso wie bei anderen Debian-Systemen. M¨oglich wird dies durch den umfangreichen Debian-Port und den ausreichenden Speicherplatz auf der CF-Karte. Zu bedenken ist aber, dass besonders der C++-Compiler auf dem 166 MHz-System nur sehr gem¨achlich arbeitet. Entsprechend ist diese Variante nur f¨ur kleinere Software-Projekte zu empfehlen. Der Ablauf ist wie folgt: Zuerst wird das Paketbuild-essentialauf dem Alekto installiert:

$ apt - get i n s t a l l build - e s s e n t i a l

Dieses Paket enth¨alt eine Liste von Werkzeugen, welche zur Software-Entwicklung ben¨otigt werden. Dazu z¨ahlen unter anderem die GNU-Version von make, die Entwicklungsbibliotheken der C-Bibliothek und nat¨urlich die C- und C++-Compiler, sodass nun sofort die in

<embedded-linux-dir>/examples/ mitgelieferten Beispiele ¨ubersetzt werden k¨onnen, z. B.:

$ cd < e m b e d d e d - linux - dir >/ e x a m p l e s / s o c k e t s / u d p _ c p p _ r e c e i v e r /

$ m a k e

Wie bereits angesprochen, ist die native Entwicklung auf dem Ger¨at eher f¨ur kleinere Projekte geeignet. Daher wird nun eine zweite M¨oglichkeit der Software-Entwicklung vorgestellt.

F¨ur die ¨Ubersetzung gr¨oßerer Software-Projekte oder auch eines neuen Kernels (vgl. Abschnitt 5.7) ist es sinnvoll, eine Cross-Compiler-Toolchain auf einem schnellen Desktop-PC einzusetzen. Hierzu wird die von der Fa. VisionSystems

92 5 Debian auf dem Embedded-PC OpenRISC-Alekto

bereitgestellte Toolchain7 in das Verzeichnis /opt/ entpackt. Dann wird das Verzeichnis/opt/arm-linux-gcc-4.2.2/bin/zur SystemvariablenPATH hin-zugef¨ugt. Die Cross Compiler sind von nun an alsarm-linux-<compilername>

an der Kommandozeile verf¨ugbar:

$ e x p o r t P A T H =/ opt / arm - linux - gcc - 4 . 2 . 2 / bin /:$P A T H

Um die mitgelieferten Beispiele auf dem PC-System mit einem Cross Com-piler zu ¨ubersetzen, m¨ussen diese f¨ur C und C++ im oberen Teil der Datei

<embedded-linux-dir>/src/Makefile.configeingetragen werden:

C X X _ S T D = g ++

C X X _ C R O S S = arm - linux - g ++

...

C C _ S T D = gcc

C C _ C R O S S = arm - linux - gcc

Das eben genannte Beispiel kann dann ¨uber folgende Aufrufe auf einem PC f¨ur das ARM-Zielsystem ¨ubersetzt und mittels SCP dorthin kopiert werden:

$ cd < e m b e d d e d - linux - dir >/ e x a m p l e s / s o c k e t s / u d p _ c p p _ r e c e i v e r /

$ m a k e C R O S S =1

$ scp r e c e i v e r root@ < alekto - ip >:

Unter Umst¨anden tritt nun eine Fehlermeldung in der folgenden Art auf:

$ ./ r e c e i v e r : / usr / lib / l i b s t d c ++. so .6: v e r s i o n ‘ G L I B C X X _ 3 .4.9 ’ not f o u n d ( r e q u i r e d by ./ r e c e i v e r )

Dies bedeutet, dass die Toolchain mit einer Version der Standard-C++-Bibliothek erstellt wurde, die sich von jener auf dem Alekto unterscheidet. Dies ist ein h¨aufiges Problem bei der wechselweisen Erstellung und Ausf¨uhrung von Anwendungen auf mehreren Systemen. Es kann jedoch relativ einfach beho-ben werden, indem die in der Toolchain verwendete Bibliothek auf den Alekto kopiert, und dort der symbolische Link aktualisiert wird:

$ scp / opt / arm - linux - gcc - 4 . 2 . 2 / arm - vscom - linux - gnu / sys - r o o t / usr / lib / l i b s t d c ++. so . 6 . 0 . 9 root@ < alekto - ip >:/ usr / lib

K o n s o l e n W e c h s e l zu A l e k t o ( als B e n u t z e r r o o t )

-$ ln - s / usr / lib / l i b s t d c ++. so . 6 . 0 . 9 / usr / lib / l i b s t d c ++. so .6

Nun sollte sich die mit dem Cross Compiler erstellte Anwendung problemlos starten lassen.

7Verf¨ugbar als toolchain gcc.4.2.2 libc.2.3.6.tar.bz2 auf der von Vision-Systems mitgelieferten DVD. Alternativ kann die Toolchain von der Herstellerseite ftp://ftp.visionsystems.de/pub/multiio/others/geladen werden.