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 Das U-Boot Der Bootvorgang von Linux 1
Der Bootvorgang Initialisierung RAM, Interruptsystem, Serieller Schnittstelle, grafischer Ausgabe, Tastatureingabe, Netzwerk, Gerätettest (POST),... Laden des Kernel aus dem Festspeicher in den RAM Übergabe von Kernelparametern Erstellen der initialen RAM-Disk Das U-Boot Der Bootvorgang von Linux 2
Das U-Boot Bootloader für PPC, ARM und x86 und viele weitere Systeme Initialisierung von RAM, Speicher und serieller Schnittstelle Gerätetreiber für Netzwerk und Speicher Booten über Netzwerk Befehle zum Schreiben in den Speicher Umgebungsvariablen und Scriptfähig Das U-Boot Der Bootvorgang von Linux 3
Das Boot-Kommando boot - synonym für run bootcmd askenv bootcmd - Anzeigen des Boot-Kommando printenv - Anzeigen aller Umgebungsvariablen Das U-Boot Der Bootvorgang von Linux 4
Beispiel Flashzugriff Setzen der Umgebungsvariablen für Netzwerkzugriff Laden des Dateisystems in den RAM Entfernen des Schreibschutzes des Flashspeichers Löschen des Flashspeicherbereichs Überschreiben des Flashspeicherbereichs mit den Daten aus dem RAM Booten über Netzwerk Befehle zum Schreiben in den Speicher Umgebungsvariablen und Scriptfähig Das U-Boot Der Bootvorgang von Linux 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 Das U-Boot Der Bootvorgang von Linux 6
Quellangaben Befehlsreferenz: http://support.atmel.no/knowledgebase/avr32 studiohelp/com.atmel.avr32.tool.ngw100/html/u boot command reference.html Befehlsreferenz: http://www.lysator.liu.se/ kjell-e/embedded/uboot-quick- reference-lite5200bubpg.pdf Herstellerwebsite: http://www.denx.de/wiki/u-boot/webhome Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, Philippe Gerum - Building Embedded Linux Systems - O Reilly & Associates - 2. Auflage (2. September 2008) Das U-Boot Der Bootvorgang von Linux 7
Der Bootvorgang von Linux Laden des Kernel Kernel entpacken Kopieren des Kernel in den RAM Starten des Kernel Konfiguration der Hardware Aufrufen des Init-Prozess Das U-Boot Der Bootvorgang von Linux 8
Der Init-Prozess inittab Beschreibt den Start von Prozessen id:runlevel:action:process runlevel (/etc/rc?.d): 0: halt, Abschalten des PC 1: Single User Mode 2: Multi User Mode, ohne NFS 3: Multi User Mode, mit NFS 5: Multiuser, mit NFS und grafischer Oberfläche 6: reboot, Neustart des PC action once: Prozess einmalig starten respawn: Prozess starten, Neustart bei Prozessabsturz wait: Prozess starten, anschließend warten bis gestartet... Das U-Boot Der Bootvorgang von Linux 9
Die S(tart)-Skripte Pfad: /etc/init.d Aufruf nach Priorisierung S10ProzessA, S20ProzessB,... Beispiele: Netzwerkkonfiguration Telnet Gegenstück: Kill-Skripte Das U-Boot Der Bootvorgang von Linux 10
Das ewig blinkende Board Was war passiert? Blinkprozess wurde in init.d kopiert Nicht per S-Script gestartet Prozess lief im Vordergrund Das U-Boot Der Bootvorgang von Linux 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 Das U-Boot Der Bootvorgang von Linux 12
Quellangaben Webseite: http://linux.about.com/od/commands/l/blcmdl5 inittab.htm Webseite: http://linux.about.com/od/commands/l/blcmdl8 init.htm Webseite: r-goetz.de/linux/bg/runlevels.html Das U-Boot Der Bootvorgang von Linux 13