Raspberry Pi: Einkaufsliste Previous Embedded-Computing Next Raspberry Pi installieren
Über 40 Jahre DARC-Mitglied

 

So startet der Raspberry Pi


Ziemlich frustrierend ist, wenn garnichts geht und man nicht weiß, warum. Hier kann vielleicht helfen, mal ins Verzeichnis /boot der SD-Karte zu sehen. Im Normalfall sollte man hier aber nichts ändern. Bei der Installation wird /boot einmal geschrieben und sollte anschließend nicht mehr verändert werden.

Recht wenig Information ist verfügbar, wie der Raspberry Pi überhaupt startet. [1] erscheint mir recht verlässlich:

  • Als erstes wacht der Grafikprozessor (GPU) auf.
  • Wie wohl jeder Prozessor greift der Grafikprozessor auf eine bestimmte Programmadresse zu und liest von dort, also aus einem Festwertspeicher, den Urlader.
  • Der Urlader öffnet die Schnittstelle zur SD-Karte und sucht darauf nach diversen Dateien, mit denen er etwas anfangen könnte. Hat man NOOBS heruntergeladen und mit Windows-Methoden auf eine FAT-formatierte SD-Karte geschrieben, laufen natürlich andere Vorgänge ab als bei einem fertig unter einem Linux-Dateisystem installierten Raspian.
  • Im letzteren Fall hangelt sich der Bootloader bis zum Verzeichnis /boot durch und lädt bootcode.bin. Die Bitmuster darin landen im Prozessor-Cache ab einer bestimmten Adresse.
  • bootcode.bin enthält dann die nötigen Maschinenbefehle, um einen Teil der Hardware zu aktivieren, also etwa den Arbeitsspeicher überhaupt erst zugänglich zu machen.
  • Jetzt kann bootcode.bin ein größeres Programm in den Arbeitsspeicher laden und starten: loader.bin
  • loader.bin liest das endgültige Betriebssystem des Grafikprozessors: start.elf. Erst ab dieser Stufe kann der Raspberry Pi sein Grafiksystem initialisieren und nutzen.

Wenn also bis hier hin etwas schief ging, erscheint der Raspberry Pi als mehr oder weniger tot. Vielleicht kann der Raspberry Pi in dieser Phase eine LED steuern – keine Ahnung.

  • start.elf kopiert dann, immer noch mit dem Grafikprozessor und aus dem Verzeichnis /boot der SD-Karte, die Dateien config.txt, cmdline.txt und kernel.img in den Arbeitsspeicher.
  • config.txt ermöglicht, die Hardwareeinstellungen zu beeinflussen. Hier kann man den Raspberry Pi übertakten, Details der Bildschirmausgabe einstellen usw. – siehe [2].
  • cmdline.txt enthält die Startparameter für den Linux-Kernel – siehe [3].
  • Jetzt endlich kann der Grafikprozessor den ARM-Prozessor starten, der dann unter Linux arbeitet. Ab jetzt erscheinen auf dem Bildschirm die vielen Startmeldungen des Linux-Kernels.

Literatur

[1] Raspberry Pi Stack Exchange: How does Raspberry Pi boot?
[2] Raspberry.org: config.txt
[3] Elinux.org: cmdline.txt
TOP
Alexander von Obert * http://www.dl4no.de/thema/sostarte.htm
Letzte Änderung: 04.02.15 (Erstfassung)


Startseite
Suche

Embedded-Computing

Raspberry Pi: Einkaufsliste
So startet der Raspberry Pi
Raspberry Pi installieren
Die Linux-Rechteverwaltung