Raspberry Pi: Hat es ein BIOS?

Raspberry Pi-BIOS

Einige Benutzer Frage mich, ob der Raspberry Pi BIOS oder UEFI hat, wie andere Computer, da UEFI, wie Sie wissen, auch auf Arm-basierten Computern unterstützt wird, wie dies bei diese SBC so beliebt und billig. Aber die Wahrheit ist, dass sich die Himbeer-Jungs für eine andere alternative Lösung entschieden haben.

Hier erfahren Sie, was diese Lösung ist und warum verwendet diese Firmware nicht, und zeigt Ihnen nicht nur, wie einige Konfigurationen auf dem Raspberry Pi vorgenommen werden, wenn es kein Setup-Menü wie auf Computern gibt ...

Warum verwendet der Raspberry Pi kein BIOS/UEFI?

Raspberry Pi 4

Wie Sie wissen, ist die BIOS oder UEFI ist eine Firmware das in einer Vielzahl von Computern vorhanden ist, sowohl Desktops, Laptops, AIO, Server, Workstations usw. Es befindet sich jedoch nicht auf dem Raspberry Pi, obwohl es sich um einen SBC (Single Board Computer) handelt, im Gegensatz zu anderen x86-SBCs, die diese Firmware für den Startvorgang und die Systemprüfung verwenden. Und das liegt nicht daran, dass der Raspberry Pi ARM-basiert ist, da viele ARM-Computer auch BIOS/UEFI haben.

Andererseits muss gesagt werden, dass diese Firmware darauf ausgelegt ist der Stiefel einfacher von dem Speichermedium, auf dem sich das Betriebssystem befindet, und viele andere Einstellungen steuern zu können. Hier gibt er uns Hinweise, warum der Raspberry Pi kein BIOS verwendet. Zum einen, weil es nur Geräte vom selben Medium, wie etwa SD-Karten, booten kann und nicht auf andere Weise. Und andererseits, weil die Anzahl der Peripheriegeräte und Funktionen in einem Raspberry Pi begrenzter sind.

Dies ist jedoch nicht unbedingt ein Grund, BIOS oder UEFI nicht zu verwenden. In der Tat, wenn wir sorgfältig analysieren, die Der ARM-SoC des Raspberry Pi verwendet seine eigene interne Firmware um die CPU und den Rest des Systems in einen ordnungsgemäßen Zustand zu booten, ohne dass ein separater BIOS-Chip erforderlich ist. Aber ... warum können Sie dann nicht auf das BIOS-Setup oder das BIOS-Menü zugreifen? Einerseits, weil diese Firmware sehr begrenzt ist und nicht so komplex wie das BIOS/UEFI, sodass ein Menü zum Konfigurieren von Parametern sinnlos wäre, und andererseits, weil sie aufgrund des zuvor Erwähnten nur booten kann ein Standardspeichermedium. , ebenso wie die SD-Karte.

Die Entwickler des Raspberry Pi haben aus diesem Grund lieber diese Basis-Firmware zum Initialisieren und Booten von einer SD-Karte verwendet als zu verwenden ein Rom-Chip mit komplexerer Firmware auf der Platine installiert. Und es ist so, dass mobile Geräte auch kein BIOS / UEFI haben, da sie Android (oder ein anderes Betriebssystem) nur aus dem internen Speicher booten können.

Auf diese Weise wird einerseits dieser zusätzliche Chip auf der Platine eingespart, andererseits entfällt auch die Notwendigkeit, einen Flash-Speicher zur Speicherung einzubauen. würde den Raspberry Pi teurer machen. Sie müssen die SD-Karte separat kaufen.

Allerdings muss gesagt werden, dass im Raspberry Pi 3 experimentelle Unterstützung für hinzugefügt wurde von USB-Medium booten die explizit aktiviert werden muss und nicht deaktiviert werden kann. Das ist zwar in der Embedded-Firmware des SoC der neuen Version enthalten, aber das war etwas komplizierter, weshalb man sich wohl zunächst entschieden hat, mit den einfachen Sachen anzufangen und nur von SD-Speicherkarten zu booten.

Was hat der Raspberry Pi stattdessen verwendet?

Rasbperry Pi 4 Power

Der Raspberry Pi hat zum Beispiel kein BIOS oder UEFI wie man es in der PC-Welt versteht, aber er hat eines Closed-Source-Firmware im SoC, wie ich oben erwähnt habe. Dieser Chip wurde von der Firma Broadcom entwickelt, die die BCMs für diese Raspberry Pi Foundation Boards liefert.

Bei der SoC (System auf einem Chip) Es integriert eine CPU der ARM Cortex-A-Serie, eine VideoCore-GPU, einen DSP für die digitale Signalverarbeitung, einen von CPU und GPU gemeinsam genutzten SDRAM-Speicher und Controller wie USB usw. Darüber hinaus enthält es auch einen ROM-Speicher, in dem die Firmware integriert ist, von der wir sprechen, und die zum Booten erforderlich ist.

Startvorgang

Die pasos das folgt dieser Firmware sind:

  1. Diese Firmware kümmert sich darum bootloader starten des Betriebssystems, das sich auf der SD-Karte befindet. Wie Sie wissen, mountet der Bootloader die FAT32-Partition der SD-Speicherkarte und geht in die zweite Boot-Stufe, die im SoC programmiert ist und nicht geändert werden kann.
  2. In der zweiten Phase wird eine Datei namens bootcode.bin, in dem die GPU-Firmware vorbereitet und gestartet wird. Diese Datei kann nur auf der SD-Karte gespeichert werden, daher kann die Boot-Priorität nicht wie in einem herkömmlichen BIOS/UEFI eines PCs geändert werden, und es wird nur von dort gebootet. Allerdings wurde, wie gesagt, auf dem Pi 3 die Möglichkeit, von USB zu booten, auch experimentell hinzugefügt.
  3. Dann kommt eine dritte Stufe, in der die Datei start.elf verwendet wird, die die CPU startet, und eine Datei namens fixup.dat, die verwendet wird, um die notwendige Partition im SDRAM zu erstellen, damit sie verwendet werden kann von der CPU und der GPU.
  4. Schließlich wird der Benutzercode ausgeführt, bei dem es sich normalerweise um ausführbare Binärdateien oder Bilder handelt Linux Kernel, wie beispielsweise kernel.img, oder von anderen Betriebssystemen, die vom Raspberry Pi unterstützt werden, und so wird das Betriebssystem gestartet, damit Sie es verwenden können ...

Wie Sie gesehen haben, ist es ein einfacher Prozess, aber etwas seltsam, wenn wir ihn mit einem PC oder anderen Computern vergleichen. Und zwar beim Raspberry Pi, anstatt wie in anderen Fällen die CPU zu starten, GPU bootet zuerst. Tatsächlich wird diese Broadcomo-GPU dafür verantwortlich sein, eine Art eingebettetes Betriebssystem im SoC auszuführen, das sehr einfach, aber zum Funktionieren notwendig ist. Es ist als VCOS (Video Core Operating System) bekannt und kommuniziert mit Linux. Dies ist sehr selten, aber die Wahrheit ist, dass die GPU des Pi nicht nur für die Grafik und das Starten zuständig ist, sondern auch dafür Steuersystem Uhr und Audio.

Abgesehen davon scheint es im Prinzip, dass wir wenig tun können Boot-Konfiguration ändernAber die Wahrheit ist, dass es nicht ganz so ist. Und es ist so, dass es eine Datei namens config.txt gibt, die sich im /boot/-Verzeichnis des Systems befindet und wenn sie mit einem Texteditor geöffnet wird, kann ihr Inhalt leicht geändert werden, um den Bootvorgang zu ändern und ihn mit bestimmten Parametern zu konfigurieren .

diese config.txt-Datei Es wird von der GPU nach dem Start des ARM-Kernels gelesen und enthält Anweisungen für den SoC, um zu wissen, was während des Systemstarts zu tun ist. Zum Beispiel können wir den dedizierten Speicher darin ändern, die Speicheraktualisierung, den Zugriff auf den L2-Cache deaktivieren, die CMA-Konfiguration ändern, die Kamera-LED aktivieren oder deaktivieren, Videomodusoptionen, Codecs, einige Optionen zum Booten, Übertakten usw. ändern.

Diese Datei hat eine Syntax ziemlich eigenartig, daher muss es respektiert werden, um Probleme beim Start zu vermeiden. Und wenn Sie weitere Informationen darüber wünschen, können Sie dies tun Lesen Sie das Wiki, das ich Ihnen in diesem Link hinterlasse.

Ändern Sie die Boot-Priorität auf dem Raspberry Pi

NOOBS-config.txt

Wenn Sie die Startreihenfolge oder -priorität auf einem PC ändern, ist alles sehr einfach, Sie müssen nur das BIOS/UEFI aufrufen, und auf der Registerkarte Boot finden Sie die Parameter, die Sie variieren können, um von der Festplatte, einem optischen Medium, zu booten , USB, Netzwerk usw. Stattdessen, auf dem Raspberry Pi ist das nicht so einfach. Standardmäßig wird das Betriebssystem immer von der SD-Speicherkarte gebootet, die in den SBC eingelegt ist. Tatsächlich bootet das System auch nach Version 3 immer noch zuerst von SD, wenn sowohl eine SD-Karte als auch ein USB-Stick eingesteckt sind. Wenn die SD entfernt wird und nur der USB übrig bleibt, erfolgt dies über den USB.

Aber diese Reihenfolge kann geändert werden. dafür musst du Raspbian starten, und gehen Sie wie folgt vor:

  • Öffnen Sie das Raspberry Pi Setup mit dem Befehl:
sudo raspi-config
  • Gehen Sie zum Abschnitt "Erweiterte Optionen". (Achtung, das Menü ist auf Englisch)
  • Drücken Sie dann in diesem Abschnitt die EINGABETASTE bei der Option „Startreihenfolge“.
  • Sie sollten nun drei verschiedene Optionen zur Auswahl sehen:
    • SD-Karte booten- Standardmäßig ist diese Option auf Ihrem Raspberry Pi-Gerät bereits aktiviert, und wenn Sie eine SD-Karte und USB gleichzeitig einlegen, verwendet das System die SD-Karte als Standard-Startoption, sofern Sie sie nicht entfernen.
    • USB-Boot: Wenn Sie USB als primäres Gerät zum Booten verwenden möchten, können Sie diese Option auswählen, die funktioniert, wenn Sie ein USB-Gerät an den Raspberry Pi angeschlossen haben. Andernfalls sollten Sie keine SD-Karte einlegen, um das System zu booten.
    • Netzwerkstart: Diese Boot-Option ist nützlich, wenn Ihre Raspberry Pi SD-Karte aus irgendeinem Grund nicht funktioniert oder wenn es ein Problem mit Ihrem Betriebssystem gibt. In diesem Fall wird das Imager-Tool verwendet, um das System auf der SD-Karte neu zu installieren.

Sobald Sie fertig sind, können Sie Starten Sie den Himbeer-Pi neu um die Änderungen zu übernehmen...

Raspberry Pi-Probleme diagnostizieren (POST)

Schließlich werden Sie wissen, dass es in einem BIOS/UEFI einen Schritt namens POST gibt, der vor dem Start des Betriebssystems ausgeführt wird und der den Status der verschiedenen Komponenten überprüft. Wenn alles in Ordnung ist, wird das Betriebssystem gestartet. Wenn es jedoch ein Problem erkennt, stoppt es und zeigt eine Fehlermeldung auf dem Bildschirm an oder gibt einen hörbaren Piepcode aus, um das Problem zu identifizieren.

Diese gibt es auf dem Raspberry Pi auch nicht. Die SoC-Firmware verfügt jedoch über eine Methode, um zu versuchen, Probleme zu kennzeichnen, die für eine einfache Diagnose auftreten können. Und das ist durch seine Power-LED. Für den Raspberry Pi 4 sind die Lichtcodes, die die LED aussendet, um Probleme anzuzeigen, beispielsweise:

lange Blitze kurze Blitze Status
0 3 Allgemeiner Fehler beim Start
0 4 start*.elf nicht gefunden
0 7 Kernel-Image nicht gefunden
0 8 SDRAM-Fehler
0 9 zu wenig SDRAM
0 10 im HALT-Zustand
2 1 Die Partition ist nicht FAT (wird nicht unterstützt)
2 2 Partition konnte nicht gelesen werden
2 3 Nicht-FAT-erweiterte Partition
2 4 Hash oder Signatur stimmen nicht überein
3 1 SPI-EEPROM-Fehler
3 2 SPI EEPROM schreibgeschützt
3 3 I2C-Fehler
4 4 Kartentyp wird nicht unterstützt
4 5 schwerwiegender Firmware-Fehler
4 6 Typ A Fehlzündung
4 7 Fehlzündung Typ B

Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.