Raspberry Pi: má BIOS?

Raspberry Pi BIOS

Někteří uživatelé zajímalo by mě, jestli má Raspberry Pi BIOS nebo UEFI, stejně jako ostatní počítače, protože UEFI, jak víte, je podporováno také na počítačích založených na Arm, jako je tomu u tento SBC tak populární a levný. Pravdou ale je, že chlapíci z malin se rozhodli pro jiné alternativní řešení.

Zde se dozvíte, jaké to řešení je a důvody proč nepoužívá tento firmware, kromě toho, že vám ukáže, jak se provádějí některé konfigurace na Raspberry Pi, když neexistuje žádná nabídka nastavení jako na počítačích...

Proč Raspberry Pi nepoužívá BIOS/UEFI?

Raspberry Pi 4

Jak víte, BIOS nebo UEFI je firmware který je přítomen v mnoha počítačích, jak stolních počítačích, tak laptopech, AIO, serverech, pracovních stanicích atd. Není však na Raspberry Pi, přestože jde o SBC (jednodeskový počítač), na rozdíl od jiných x86 SBC, které tento firmware používají pro proces spouštění a kontrolu systému. A není to proto, že Raspberry Pi je založeno na ARM, protože mnoho počítačů ARM má také BIOS/UEFI.

Na druhou stranu je třeba říci, že tento firmware je tak navržen bota snazší z paměťového média, kde je umístěn operační systém, kromě toho, že lze ovládat mnoho dalších nastavení. Zde nám dává vodítka, proč Raspberry Pi nepoužívá BIOS. Jednak proto, že umí bootovat pouze zařízení ze stejného média, jako jsou SD karty, a nikoli jinými způsoby. A na druhou stranu proto, že počet periferií a funkcí v Raspberry Pi je omezenější.

To však není úplně důvod, proč nepoužívat BIOS nebo UEFI. Ve skutečnosti, pokud budeme pečlivě analyzovat, ARM SoC Raspberry Pi používá svůj vlastní interní firmware nabootovat CPU do správného stavu a zbytek systému bez nutnosti samostatného čipu BIOS. Ale... proč tedy nemůžete získat přístup k nastavení systému BIOS nebo nabídce systému BIOS? Na jedné straně proto, že tento firmware je velmi omezený a není tak složitý jako BIOS/UEFI, takže nabídka pro konfiguraci parametrů by postrádala smysl, a na druhé straně kvůli tomu, co bylo dříve zmíněno, že lze bootovat pouze z výchozí paměťové médium, stejně jako SD karta.

Vývojáři Raspberry Pi z tohoto důvodu raději použili tento základní firmware pro inicializaci a bootování z SD karty. rom čip se složitějším firmwarem nainstalovaným na PCB. A je to tak, že pokud se podíváte, mobilní zařízení nemají ani BIOS / UEFI, protože mohou zavádět pouze Android (nebo jiný operační systém) z vnitřní paměti.

Tím se jednak ušetří onen další čip na desce a jednak odpadá nutnost zařazovat flash paměť pro ukládání. by Raspberry Pi prodražilo. SD kartu musíte zakoupit samostatně.

Je však třeba říci, že v Raspberry Pi 3 byla přidána experimentální podpora pro bootování z USB média který musí být výslovně povolen a nelze jej zakázat. To je obsaženo ve vestavěném firmwaru SoC nové verze, ale bylo to trochu složitější, pravděpodobně proto se zpočátku rozhodli začít s jednoduchými věcmi a používat bootování pouze z paměťových karet SD.

Co místo toho Raspberry Pi používalo?

Rasbperry Pi 4 Power

Raspberry Pi nemá BIOS nebo UEFI, jak je chápáno například ve světě PC, ale má uzavřený firmware firmware v SoC, jak jsem uvedl výše. Tento čip je navržen společností Broadcom, která dodává BCM těmto deskám Raspberry Pi Foundation.

V SoC (systém na čipu) Integruje CPU ARM Cortex-A Series, VideoCore GPU, DSP pro digitální zpracování signálu, paměť SDRAM sdílenou CPU a GPU a řadiče, jako je USB atd. Navíc obsahuje i paměť ROM, ve které je integrován firmware, o kterém se bavíme a který je nezbytný pro bootování.

startovací procedura

L kroky který následuje po tomto firmwaru jsou:

  1. Tento firmware se o to stará spustit bootloader operačního systému, který je na SD kartě. Jak víte, zavaděč připojí oddíl FAT32 paměťové karty SD a přejde do druhého zaváděcího stupně, který je naprogramován v SoC a nelze jej upravit.
  2. Ve druhé fázi byl vytvořen soubor známý jako bootcode.bin, ve kterém se připravuje a spouští firmware GPU. Tento soubor lze uložit pouze na SD kartu, takže prioritu bootování nelze měnit jako v běžném BIOSu/UEFI PC a bootuje se pouze odtud. Jak jsem však řekl, na Pi 3 byla experimentálně přidána i možnost bootování z USB.
  3. Pak přichází třetí fáze, ve které se využívá soubor start.elf, který spouští CPU, a soubor s názvem fixup.dat, který se používá k vytvoření potřebného oddílu v SDRAM, aby se mohl začít používat. pomocí CPU a GPU.
  4. Nakonec se provede uživatelský kód, což jsou obvykle spustitelné binární soubory nebo obrázky souboru Linuxové jádro, jako je kernel.img, nebo z jiných operačních systémů podporovaných Raspberry Pi, a takto se operační systém spustí, abyste jej mohli používat...

Jak jste viděli, je to jednoduchý proces, ale poněkud zvláštní, pokud jej srovnáme s PC nebo jinými počítači. A jde o to, že v případě Raspberry Pi místo spuštění CPU, jako v jiných případech, Nejprve se spustí GPU. Ve skutečnosti bude tento Broadcomo GPU mít na starosti spouštění jakéhosi vestavěného operačního systému v SoC, který je velmi jednoduchý, ale nezbytný pro fungování. Je známý jako VCOS (Video Core Operating System) a bude komunikovat s Linuxem. To je velmi vzácné, ale pravdou je, že GPU Pi nemá na starosti pouze grafiku a spouštění, ale také ovládání hodin a zvuku.

V zásadě se po tomhle zdá, že s tím můžeme udělat jen málo upravit konfiguraci spouštěníPravdou ale je, že to tak úplně není. A je to tím, že existuje soubor s názvem config.txt, který se nachází v adresáři /boot/ systému a pokud je otevřen pomocí textového editoru, lze jeho obsah snadno upravit tak, aby bylo možné změnit boot a nakonfigurovat jej s určitými parametry. .

toto soubor config.txt bude načten GPU po spuštění jádra ARM a obsahuje instrukce pro SoC, aby věděl, co má dělat během bootování systému. Můžeme v něm například upravit vyhrazenou paměť, obnovit paměť, zakázat přístup k mezipaměti L2, změnit konfiguraci CMA, povolit nebo zakázat LED diodu fotoaparátu, změnit možnosti režimu videa, kodeky, některé možnosti spouštění, přetaktování atd.

Tento soubor má a syntaxe docela zvláštní, takže je třeba respektovat, aby se předešlo problémům při spuštění. A pokud o tom chcete více informací, můžete přečtěte si wiki, kterou vám nechávám v tomto odkazu.

Změňte prioritu spouštění na Raspberry Pi

NOOBS config.txt

Když na PC změníte pořadí spouštění nebo prioritu, je to všechno velmi jednoduché, stačí zadat BIOS/UEFI a na záložce Boot najdete parametry, které můžete změnit pro zavádění z pevného disku, optického média. , USB, síť atd. Namísto, na Raspberry Pi to není tak jednoduché. Ve výchozím nastavení vždy zavede operační systém z paměťové karty SD vložené do SBC. Ve skutečnosti, i po verzi 3, pokud je vložena jak SD karta, tak USB flash disk, systém bude stále bootovat z SD jako první. Pokud se SD vyjme a zbude pouze USB, provede se to přes USB.

Ale toto pořadí lze změnit. za to musíte začít raspbian, a proveďte následující:

  • Otevřete nastavení Raspberry Pi příkazem:
sudo raspi-config
  • Přejděte do sekce "Pokročilé možnosti". (všimněte si, menu je v angličtině)
  • Poté v této části stiskněte ENTER u možnosti "Pořadí spouštění".
  • Nyní byste měli vidět tři různé možnosti, ze kterých si můžete vybrat:
    • Zavedení SD karty- Ve výchozím nastavení je tato možnost již na vašem zařízení Raspberry Pi povolena a pokud vložíte SD kartu a USB současně, systém použije SD kartu jako výchozí možnost spouštění, pokud ji nevyjmete.
    • usb boot: Pokud chcete použít USB jako primární zařízení pro bootování, můžete vybrat tuto možnost, která funguje, když máte do Raspberry Pi vložené USB zařízení. V opačném případě byste neměli při zavádění systému vkládat kartu SD.
    • spouštění sítě: Tato možnost spouštění je užitečná, pokud vaše SD karta Raspberry Pi z nějakého důvodu nefunguje nebo pokud máte problém s operačním systémem. V takovém případě použije nástroj Imager k přeinstalaci systému na kartu SD.

Jakmile budete hotovi, můžete restartujte raspberry pi aplikovat změny...

Diagnostika problémů s Raspberry Pi (POST)

Nakonec budete vědět, že v systému BIOS/UEFI existuje krok zvaný POST, který se provádí před zavedením operačního systému a který zkontroluje stav různých součástí. Pokud je vše v pořádku, spustí se OS. Pokud však zjistí jakýkoli problém, zastaví se a na obrazovce zobrazí chybové hlášení nebo vydá zvukový signál, který identifikuje problém.

To na Raspberry Pi také neexistuje. Firmware SoC má však metodu, jak se pokusit označit problémy, které mohou nastat, pro snadnou diagnostiku. A to prostřednictvím LED napájení. Například u Raspberry Pi 4 jsou světelné kódy, které LED dioda vydává, aby indikovaly problémy:

dlouhé záblesky krátké záblesky Status
0 3 Obecná porucha při spouštění
0 4 start*.elf nenalezen
0 7 Obrázek jádra nebyl nalezen
0 8 Selhání SDRAM
0 9 nedostatečná SDRAM
0 10 ve stavu HALT
2 1 Oddíl není FAT (nepodporováno)
2 2 Nepodařilo se přečíst oddíl
2 3 rozšířený oddíl bez FAT
2 4 Hash nebo podpis se neshodují
3 1 Chyba SPI-EEPROM
3 2 SPI EEPROM chráněné proti zápisu
3 3 Chyba I2C
4 4 Typ desky není podporován
4 5 fatální chyba firmwaru
4 6 Vynechání zapalování typu A
4 7 Vynechání zapalování typu B

Buďte první komentář

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.