Das U-Boot Der Bootvorgang von Linux

Transcription

Das U-Boot Der Bootvorgang von Linux
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