Page 2 - Inhaltsverzeichnis; I Einleitung; Cross-Kompilierung allgemein
INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis I Einleitung 4 II Bestandsaufnahme 5 1 Cross-Kompilierung allgemein 5 1.1 Portabilität von Software . . . . . . . . . . . . . . . . . 7 2 Konzepte 7 2.1 Architekturunabhängigkeit durch Softwareanpassungen . 8 2.2 Architekturunabhängigkeit durc...
Page 3 - Zusammenfassung; III Firmware Entwicklung; Allgemeine Richtlinien
INHALTSVERZEICHNIS INHALTSVERZEICHNIS 6.4.1 dpkg-cross . . . . . . . . . . . . . . . . . . . . . . 48 6.4.2 apt-cross . . . . . . . . . . . . . . . . . . . . . . 50 6.5 Beispiel Editor nano . . . . . . . . . . . . . . . . . . . 51 6.6 Varianten von Embedded Debian . . . . . . . . . . . . . 55 6.6.1 ...
Page 4 - Teil I; Einleitung; Begrenztheit der Ressourcen auÿer Acht zu lassen.
Teil I Einleitung Software wird heutzutage auf leistungsfähigen Arbeitsplatzsystemen mit gu- ter Ausstattung sowohl hinsichtlich Software als auch Hardware entwickelt.Dies begünstigt zwar die schnelle Entwicklung neuer Software, führt aber auch dazu, dass die Software nicht mehr ohne Weiteres auf de...
Page 5 - CROSS-KOMPILIERUNG ALLGEMEIN; Teil II; Bestandsaufnahme; ist ein neues Konzept in Relation zur Geschichte von
1 CROSS-KOMPILIERUNG ALLGEMEIN Teil II Bestandsaufnahme Um ein angepasstes auf die oben genannten Anforderungen zugeschnittenes Build-System zu konzeptionieren, ist es zunächst erforderlich sich einen Über- blick über die bereits auf dem Markt existierenden Freien Build-Umgebungen zu verschaen und e...
Page 7 - Portabilität von Software; Konzepte
1.1 Portabilität von Software 2 KONZEPTE Intel SA110 CPU 233Mhz 40GB IDE HDD 256MB RAM Debian Sarge mit Linux-Kernel 2.4.25 und das x86 7 -System bestand aus: Intel Xeon CPU 2.80Ghz 80GB IDE HDD 2GB RAM Debian Sarge mit Linux Kernel 2.6.8-1-686 Scratchbox 1.0.1 1.1 Portabilität von...
Page 8 - Architekturunabhängigkeit durch Softwareanpassungen; Einsatzzweck, in einem Patch
2.1 Architekturunabhängigkeit durch Softwareanpassungen2 KONZEPTE 2.1 Architekturunabhängigkeit durch Softwareanpassungen Um Software, die in sich natürlich bereits portabel gestaltet sein muss, auf verschiedenen System zu übersetzen, ist es oft notwendig, entweder nicht erwünschte oder auch für den...
Page 9 - Architekturunabhängigkeit durch Emulation; automake und autoconf zu verändern oder anzupassen. Dadurch wäre
2.2 Architekturunabhängigkeit durch Emulation 2 KONZEPTE 2.2 Architekturunabhängigkeit durch Emulation Ein weiterer Ansatz, der gerade in letzter Zeit sehr viel Zuspruch erhalten hat, ist es, nicht die Software, die nativ problemlos kompiliert, auf Cross- Kompilierung anzupassen, sondern der Softwar...
Page 14 - Entwicklungsumgebung; das entsprechende Embedded Format kompiliert.
3.3 Entwicklungsumgebung 3 OPENWRT/FREEWRT Seine Entwicklung wurde nötig, weil die unter den Desktop-Systemen ver- breiteten Paketverwaltungssysteme, wie APT/DPKG oder RPM, nicht für die beschränkten Ressourcen von eingebetteten Geräten geeignet waren. Zum einen brachten diese viel zu viele Metainfo...
Page 18 - Erstellen eines einzelnen Pakete im Verbose-Modus
3.5 Buildprozess 3 OPENWRT/FREEWRT Abbildung 4: Nun ist das gesamte Buildsystem von OpenWRT heruntergeladen und die Firmware kann konguriert und erstellt werden.Die Konguration wird mit dem Befehl make menucong wie in der Abbil- dung auf dieser Seite erstellt. Bevor ein Dialog erscheint, werden noch...
Page 19 - Kongurationsoptionen und Installationsoptionen.
3.6 Portierung 3 OPENWRT/FREEWRT Schlägt das Kompilieren nach diversen Änderungen fehl, empehlt es sich, den Kernel neu zu erstellen. Die erfolgt mit folgendem Befehl: make t a r g e t / l i n u x / c l e a n Konguration des Kernels make k e r n e l _ m e n u c o n f i g V=99 3.6 Portierung Die ...
Page 22 - gendermaÿen aufgebaut:
3.6 Portierung 3 OPENWRT/FREEWRT u p t i m e \ w i r e l e s s \ xmms \ LCD4LINUX_CONFIGURE_DRIVERS:= \ $ ( f o r e a c h c , $ ( LCD4LINUX_DRIVERS ) , \ $ ( i f $ (CONFIG_LCD4LINUX_DRV_$( c ) ) , $ ( c ) , ) \ ) LCD4LINUX_CONFIGURE_PLUGINS:= \ $ ( f o r e a c h c , $ ( LCD4LINUX_PLUGINS ) , \ $ ( i...
Page 33 - Scratchbox vorbereiten
5.1 Prozessor-Transparenz 5 SCRATCHBOX (MAEMO) die Bedienung von Handhelds. Die Interaktion zwischen Applikation und Desktop ist sehr an Gnome angelehnt, einige Funktionen verwenden zum Beispiel intensiv gconv und dbus, Windowmanager ist die aus GPE be- kannte Matchbox.Grundstein der Maemo-Entwicklu...
Page 34 - und 117 MByte für die Arm-Plattform und müssen nach der Scratchbox-; man in der Scratchbox ein Target für den PC an:
5.3 Zwei Maemo-Targets 5 SCRATCHBOX (MAEMO) Zuerst installiert man Scratchbox, Maemo unterstützt zurzeit jedoch nur die Version 0.9.8.5. Insgesamt sind das ein halbes Dutzend Pakete mit unge- fähr 200 MByte Umfang: scratchbox-core, scratchbox-devkit-debian für die Erstellung von Debian-Paketen, scra...
Page 37 - Embedded Debian; Das Ziel von Embedded Debian
5.4 Paketdienst 6 EMBEDDED DEBIAN Zur vollständigen Anmeldung benötigt das Programm noch einige Dateien aus dem data-Verzeichnis, die man erst installieren müsste. Einen Ausweg bietet der Befehl run-standalone.sh <Programm>, das die Zwangsregistrie- rung überüssig macht und maemopad im virtuel...
Page 39 - Basisinstallation; ze, so dass sich diese sehr einfach installieren lassen:
6.1 Basisinstallation 6 EMBEDDED DEBIAN Debian darauf, soviel wie möglich aus der normalen Debian-Distribution zu verwenden, und nur Anpassungen vorzunehmen. Es ist sozusagen kein bottom-up Ansatz, wie beispielsweise OpenWRT, sondern ein top-down Ansatz, um ein Debian-System zu minimalisieren. 6.1 B...
Page 44 - Crosscompiler und Toolchain
6.2 Crosscompiler und Toolchain 6 EMBEDDED DEBIAN dpkg − r e c o n f i g u r e e m d e b i a n − t o o l s oder auch über das mitgelieferte Programm emsetup tun.Im Zuge der Installation von emdebian-tools wurde auch automatisch der Pfad zum Embedded Debian Paketverzeichnis mit in das System aufgenom...
Page 48 - Bibliotheken für Crosscompiler; me auf der Zielplattform funktioniert.
6.4 Bibliotheken für Crosscompiler 6 EMBEDDED DEBIAN r o o t @ e x c e l s i o r :~# . / h e l l o b a s h : . / h e l l o : Kann d i e D a t e i n i c h t a u s f ü h r e n . Um nun das soeben erzeugte Programm für die PowerPC Architektur aus- zuführen, kann man auf die Prozessoremulation von QEMU ...
Page 51 - Beispiel Editor nano; nano
6.5 Beispiel Editor nano 6 EMBEDDED DEBIAN r o o t @ e x c e l s i o r :~# a p t − c r o s s − a p o w e r p c − i l i b v 4 l − 0 The f o l l o w i n g NEW p a c k a g e s w i l l b e b u i l t and i n s t a l l e d : l i b v 4 l − 0 0 t o b e u p g r a d e d , 1 t o b e n e w l y i n s t a l l e d...
Page 55 - Varianten von Embedded Debian
6.6 Varianten von Embedded Debian 6 EMBEDDED DEBIAN dh_md5sums − a d h _ b u i l d d e b − a dpkg − d e b : Baue P a k e t n a n o i n . . / nano_2 . 2 . 4 − 1 em1_powerpc . d e b . dpkg − d e b : Baue P a k e t nano − t i n y i n . . / nano − t i n y _ 2 . 2 . 4 − 1 em1_powerpc . d e b . dpkg − d e...
Page 61 - ALLGEMEINE RICHTLINIEN; Teil III; Firmware Entwicklung; Auf Grund der Betrachtung der Buildumgebungen OpenWRT/FreeWRT,; gab es aber auch Wünsche und Neigungen des Fraunhofer IOSB
8 ALLGEMEINE RICHTLINIEN Zur Erstellung der letztendlich notwendigen Firmware, stehen hier dem Ent- wickler auch alle von der Distribution Debian gegebenen Möglichkeiten of- fen. Es ndet keine Spezialisierung auf nur wenige Methoden oder Verfahren statt.Darüber hinaus kann sich der Entwickler je nac...
Page 65 - Festplatte des HOST-Rechners 83MB Speicherplatz belegt.
9.1 debootstrap 9 FIRMWARE FÜR I386 r o o t @ e x c e l s i o r :~# d e b o o t s t r a p −− a r c h i 3 8 6 −− e x c l u d e =" a p t i t u d e , d m i d e c o d e , i p t a b l e s , t a s k s e l , t a s k s e l − d a t a , vim − common , vim − t i n y " −− i n c l u d e =" l e s s ...
Page 69 - Unter /mnt/unied können nun Änderungen an dem Dateisystem auf der
9.3 aufs 9 FIRMWARE FÜR I386 Abbildung 14: mount n o n e / mnt / u n i f i e d − t a u f s − o b r : / mnt / cdrom=r o : / b r a n c h e s / tmp=rw Interessant ist der letzte Teil, der hinter dem -o folgt und das aufs kon- guriert. Hier wird mit br: die Liste der durch Doppelpunkt getrennten Branche...
Page 74 - zusätzliche Basissoftware
9.5 zusätzliche Basissoftware 9 FIRMWARE FÜR I386 Abbildung 18: 9.5 zusätzliche Basissoftware Um einige grundlegende Funktionen des eingebetteten Systems zu ermög- lichen wird jedoch auÿer dem Basissystem noch weitere Software benötigt. Diese Software ist allesamt direkt von Debian erhältlich. Um di...
Page 78 - zusätzliche Kongurationen und Skripte
9.6 zusätzliche Kongurationen und Skripte 9 FIRMWARE FÜR I386 Rasterung von PostScript 62 - oder PDF 63 -Dateien. Durch diesen Pro- zess wird die als PostScript- oder PDF-Code vorliegende Beschreibung einer Seite für den Drucker oder den Monitor aufbereitet und als Ab- bildung sichtbar. Man sprich...
Page 79 - dem Verzeichnis /tmp genutzt wird, muss durch den Parameter TMP-
9.6 zusätzliche Kongurationen und Skripte 9 FIRMWARE FÜR I386 vor. Dies bedeutet, dass USB-Sticks immer vor den internen Festplatten initialisiert werden, und deshalb im System als erste Festplatte sichtbar wird. Diese ist immer unter der Bezeichnung /dev/sda erreichbar. # D e b i a n d e f a u l t ...
Page 80 - sehen, welches System er zur Zeit einsetzt.; mcmxt betrieben, dies erfolgt mittels des Parameters user=mcmxt.
9.6 zusätzliche Kongurationen und Skripte 9 FIRMWARE FÜR I386 da auf dem Nur-Lese-Root-Dateisystem ein Erstellen dieser Dateien nicht möglich wäre. # # / e t c / d e f a u l t / r c S # # D e f a u l t s e t t i n g s f o r t h e s c r i p t s i n / e t c / r c S . d / # # F o r i n f o r m a t i o ...
Page 84 - und Internet fern wartbar.; MCMXT Integration
9.7 Multi-Cursor-MarkerXtrackT (MCMXT) 9 FIRMWARE FÜR I386 9.7 Multi-Cursor-MarkerXtrackT (MCMXT) Multi-Cursor-MarkerXtrackT (MCMXT) ist ein Programm zur automati- schen Vermessung von Marken über ein Videosystem. Es kann mit einer Kamera eine Reihe von Objekten schritt haltend identizieren und dies...
Page 85 - Firmware erstellen
9.9 Firmware erstellen 9 FIRMWARE FÜR I386 libmm14_1.4.2-3em1_i386.deb libu3d-2_2.6em1_i386.deb clig_1.9.11.1-3em1_all.deb libiitb-3_1.13em1_i386.deb libu2d-1_3.17em1_i386.deb libpm-1_1.5em1_i386.deb libpof-1_1.1em1_i386.deb libqc-1_1.1.4em1_i386.deb libsmphr-1_2.2em1_i386.deb mc...
Page 86 - System emulieren kann.
9.10 Firmware testen 9 FIRMWARE FÜR I386 r o o t @ e x c e l s i o r : / tmp# m k s q u a s h f s / tmp / i m a g e . 1 0 1 9 8 i m a g e P a r a l l e l m k s q u a s h f s : U s i n g 1 p r o c e s s o r C r e a t i n g 4 . 0 f i l e s y s t e m on i m a g e , b l o c k s i z e 1 3 1 0 7 2 . [====...
Page 87 - in der Abbildung auf der nächsten Seite anschaulich dargestellt.
9.11 Automatisierung 9 FIRMWARE FÜR I386 Abbildung 19: Abbildung 20: Um nun die Firmware mittels QEMU zu testen, und auch Netzwerkzugri bereitzustellen ist folgender Programmaufruf von Nöten: f l o r i a n @ e x c e l s i o r : ~ $ qemu − n e t n i c − n e t u s e r − k e r n e l v m l i n u z − a p...
Page 89 - ROOTPW - Angabe des Root-Passwortes des eingebetteten Systems.
9.11 Automatisierung 9 FIRMWARE FÜR I386 ROOTPW - Angabe des Root-Passwortes des eingebetteten Systems. Diese Variablen und Angaben werden an vielfältigen Stellen im Programm genendebian verwendet und werden in dieses zur Laufzeit importiert. #!/ b i n / s h ENAME="mcmxt" ARCH=" i 3 8 ...
Page 92 - gestartet, gestaltet sich der Aufruf wie folgt:
9.11 Automatisierung 9 FIRMWARE FÜR I386 c p − vR $ {PROFILE_PATH} / f i l e s / * / tmp / i m a g e . $PID e c h o e l s e c p − R $ {PROFILE_PATH} / f i l e s / * / tmp / i m a g e . $PID i f [ $ ? − e q 0 ] t h e n e c h o " OK. " e l s e e c h o " FAILED . " e x i t 1 f i f i f i...
Page 94 - Abbildungsverzeichnis
ABBILDUNGSVERZEICHNIS ABBILDUNGSVERZEICHNIS Abbildungsverzeichnis 1 . . . . . 6 2 . . . . . . . . . . . . . . 12 94