Das U-Boot Der Bootvorgang von Linux Sebastian Hillinger Andreas Weger 28.04.2014 Inhalt Der Bootvorgang Das U-Boot Das Boot-Kommando Beispiel Flashzugriff Quellangaben Der Bootvorgang von Linux Die Startskripte Das ewig blinkende Board Quellangaben S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 1 Der Bootvorgang I Initialisierung RAM, Interruptsystem, Serieller Schnittstelle, grafischer Ausgabe, Tastatureingabe, Netzwerk, Gerätettest (POST),... I Laden des Kernel aus dem Festspeicher in den RAM I Übergabe von Kernelparametern I Erstellen der initialen RAM-Disk S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 2 Das U-Boot I Bootloader für PPC, ARM und x86 und viele weitere Systeme I Initialisierung von RAM, Speicher und serieller Schnittstelle I Gerätetreiber für Netzwerk und Speicher I Booten über Netzwerk I Befehle zum Schreiben in den Speicher I Umgebungsvariablen und Scriptfähig S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 3 Das Boot-Kommando I “boot“ - synonym für “run bootcmd“ I “askenv bootcmd“ - Anzeigen des Boot-Kommando I “printenv“ - Anzeigen aller Umgebungsvariablen S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 4 Beispiel Flashzugriff I Setzen der Umgebungsvariablen für Netzwerkzugriff I Laden des Dateisystems in den RAM I Entfernen des Schreibschutzes des Flashspeichers I Löschen des Flashspeicherbereichs I Überschreiben des Flashspeicherbereichs mit den Daten aus dem RAM I Booten über Netzwerk I Befehle zum Schreiben in den Speicher I Umgebungsvariablen und Scriptfähig S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 5 Beispiel Flashzugriff >setenv ipaddr 192.168.0.2 >setenv serverip 192.168.0.1 >nfs 10400000 $(serverip):/home/export/image.jffs2 >protect off all >erase 0x30000 0x800000 >cp.b 10400000 30000 7D0000 >protect on all S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 6 Quellangaben I Befehlsreferenz: http://support.atmel.no/knowledgebase/avr32 studiohelp/com.atmel.avr32.tool.ngw100/html/u boot command reference.html I Befehlsreferenz: http://www.lysator.liu.se/˜kjell-e/embedded/Uboot-quick- reference-LITE5200BUBPG.pdf I Herstellerwebsite: http://www.denx.de/wiki/U-Boot/WebHome I Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, Philippe Gerum - “Building Embedded Linux Systems“ - O’Reilly & Associates 2. Auflage (2. September 2008) S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 7 Der Bootvorgang von Linux I Laden des Kernel Kernel entpacken Kopieren des Kernel in den RAM I Starten des Kernel Konfiguration der Hardware Aufrufen des Init-Prozess S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 8 Der Init-Prozess inittab I I Beschreibt den Start von Prozessen id:runlevel:action:process runlevel (/etc/rc?.d): 0: 1: 2: 3: 5: 6: I halt, Abschalten des PC Single User Mode Multi User Mode, ohne NFS Multi User Mode, mit NFS Multiuser, mit NFS und grafischer Oberfläche reboot, Neustart des PC action once: Prozess einmalig starten respawn: Prozess starten, Neustart bei Prozessabsturz wait: Prozess starten, anschließend warten bis gestartet ... S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 9 Die S(tart)-Skripte I Pfad: /etc/init.d I Aufruf nach Priorisierung S10ProzessA, S20ProzessB, ...“ ” Beispiele: I Netzwerkkonfiguration Telnet I Gegenstück: Kill-Skripte S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 10 Das ewig blinkende Board Was war passiert? I Blinkprozess wurde in init.d kopiert I Nicht per S-Script gestartet I Prozess lief im Vordergrund S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 11 Das ewig blinkende Board Wie wurde versucht das Problem zu lösen? 1 Zugriff per Telnet → fehlende IP Adresse 2 Rootdateisystem per NFS mounten → fehlendes Portmapping in VM-Ware 3 Image per Debugger downloaden → ca. 3 Stunden warten → 100% → Image war nicht kopiert 4 Kernel per NFS, Image kopieren → Bootvorgang erfolgreich → Image konnte nicht kopiert werden 5 Image per Bootloader in Flash brennen → Board startete nicht mehr → fehlerhaftes Image S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 12 Quellangaben I Webseite: http://linux.about.com/od/commands/l/blcmdl5 inittab.htm I Webseite: http://linux.about.com/od/commands/l/blcmdl8 init.htm I Webseite: r-goetz.de/linux/bg/runlevels.html S. Hillinger, A. Weger Das U-Boot Der Bootvorgang von Linux 28.04.2014 13