Raspberry Pi: ha il BIOS?

BIOS Raspberry Pi

Alcuni utenti mi chiedo se il Raspberry Pi abbia BIOS o UEFI, come altri computer, poiché UEFI, come sai, è supportato anche su computer basati su Arm, come nel caso di questo SBC così popolare ed economico. Ma la verità è che i ragazzi del lampone hanno optato per un'altra soluzione alternativa.

Qui imparerai qual è questa soluzione e i motivi per cui non utilizza questo firmware, oltre a mostrarti come vengono effettuate alcune configurazioni sul Raspberry Pi quando non c'è il menu di configurazione come sui computer...

Perché il Raspberry Pi non usa BIOS/UEFI?

Raspberry Pi 4

Come sai, il BIOS o UEFI è un firmware che è presente in una moltitudine di computer, sia desktop, laptop, AIO, server, workstation, ecc. Tuttavia, non è sul Raspberry Pi, nonostante sia un SBC (Single Board Computer), a differenza di altri SBC x86 che utilizzano questo firmware per il processo di avvio e il controllo del sistema. E non è perché il Raspberry Pi è basato su ARM, poiché molti computer ARM hanno anche BIOS/UEFI.

D'altra parte, va detto che questo firmware è progettato in modo tale avviare più facile dal supporto di archiviazione in cui si trova il sistema operativo, oltre a poter controllare molte altre impostazioni. È qui che ci fornisce indizi sul motivo per cui il Raspberry Pi non utilizza il BIOS. Da un lato, perché può avviare i dispositivi solo dallo stesso supporto, come le schede SD, e non in altri modi. E dall'altro perché il numero di periferiche e funzioni in un Raspberry Pi è più limitato.

Tuttavia, questo non è del tutto un motivo per non utilizzare BIOS o UEFI. Infatti, se analizziamo attentamente, il Il SoC ARM di Raspberry Pi utilizza il proprio firmware interno per avviare la CPU in uno stato corretto e il resto del sistema senza la necessità di un chip BIOS separato. Ma ... allora perché non riesci ad accedere al BIOS Setup o al menu BIOS? Da un lato, perché questo firmware è molto limitato, e non complesso come il BIOS/UEFI, quindi un menu per configurare i parametri non avrebbe senso, e dall'altro, a causa di quanto detto in precedenza, che può avviarsi solo da un supporto di memorizzazione predefinito, così come la scheda SD.

Gli sviluppatori del Raspberry Pi hanno per questo motivo preferito utilizzare questo firmware di base per l'inizializzazione e l'avvio da una scheda SD piuttosto che utilizzare un chip rom con firmware più complesso installato sul PCB. Ed è che, se guardi, anche i dispositivi mobili non hanno BIOS / UEFI, poiché possono solo avviare Android (o un altro sistema operativo), dalla memoria interna.

In questo modo, da un lato, viene risparmiato quel chip aggiuntivo sulla scheda e, dall'altro, viene anche eliminata la necessità di includere la memoria flash per l'archiviazione. renderebbe il Raspberry Pi più costoso. Devi acquistare la scheda SD separatamente.

Tuttavia, va detto che nel Raspberry Pi 3 è stato aggiunto il supporto sperimentale per avvio dal supporto USB che deve essere esplicitamente abilitato e non può essere disabilitato. Questo è incluso nel firmware integrato del SoC della nuova versione, ma era un po' più complicato, motivo per cui inizialmente hanno deciso di iniziare con cose facili e utilizzare l'avvio solo da schede di memoria SD.

Cosa stava usando invece il Raspberry Pi?

Rasbperry Pi 4 Power

Il Raspberry Pi non ha un BIOS o UEFI come inteso nel mondo dei PC, ad esempio, ma ha un firmware a sorgente chiusa nel SoC come ho detto sopra. Questo chip è progettato dalla società Broadcom, che fornisce i BCM a queste schede Raspberry Pi Foundation.

Nel SoC (sistema su chip) Integra una CPU ARM Cortex-A Series, una GPU VideoCore, un DSP per l'elaborazione del segnale digitale, memoria SDRAM condivisa da CPU e GPU e controller come USB, ecc. Inoltre, include anche una memoria ROM in cui è integrato il firmware di cui parliamo e che è necessario per l'avvio.

Procedimento d'arranque

I requisiti che segue questo firmware sono:

  1. Questo firmware si prende cura di avviare il bootloader del sistema operativo presente sulla scheda SD. Come sapete, il bootloader monta la partizione FAT32 della scheda di memoria SD e passa alla seconda fase di avvio, che è programmata nel SoC e non può essere modificata.
  2. Nella seconda fase, un file noto come bootcode.bin, in cui viene preparato e avviato il firmware della GPU. Questo file può essere memorizzato solo sulla scheda SD, quindi la priorità di avvio non può essere modificata come in un BIOS/UEFI convenzionale di un PC e si avvierà solo da lì. Tuttavia, come ho detto, sul Pi 3 è stata aggiunta in via sperimentale anche la possibilità di eseguire l'avvio da USB.
  3. Segue poi una terza fase in cui si fa uso del file start.elf, che avvia la CPU, e di un file chiamato fixup.dat, che serve per creare la partizione necessaria nella SDRAM in modo che possa iniziare ad essere utilizzata dalla CPU e dalla GPU.
  4. Infine, viene eseguito il codice utente, che di solito sono i binari eseguibili o le immagini del file Kernel Linux, come kernel.img, o da altri sistemi operativi supportati dal Raspberry Pi, ed è così che il sistema operativo si avvia in modo che tu possa usarlo...

Come hai visto, è un processo semplice, ma alquanto strano se lo confrontiamo con un PC o altri computer. Ed è che, nel caso del Raspberry Pi, invece di avviare la CPU, come in altri casi, La GPU si avvia per prima. In effetti, questa GPU Broadcomo si occuperà di eseguire una sorta di sistema operativo integrato nel SoC molto semplice, ma necessario per funzionare. È noto come VCOS (Video Core Operating System) e comunicherà con Linux. Questo è molto raro, ma la verità è che la GPU del Pi non è solo responsabile della grafica e dell'avvio, è anche responsabile di sistema di controllo orologio e audio.

In linea di principio, detto questo, sembra che ci sia poco da fare modificare la configurazione di avvioMa la verità è che non è del tutto così. Ed è che esiste un file chiamato config.txt che si trova nella directory /boot/ del sistema e se viene aperto con un editor di testo, il suo contenuto può essere facilmente modificato per alterare l'avvio e configurarlo con determinati parametri .

Questo config.txt verrà letto dalla GPU dopo l'avvio del kernel ARM e contiene le istruzioni per il SoC per sapere cosa fare durante l'avvio del sistema. Ad esempio, possiamo modificare la memoria dedicata al suo interno, l'aggiornamento della memoria, disabilitare l'accesso alla cache L2, alterare la configurazione CMA, abilitare o disabilitare il LED della fotocamera, modificare le opzioni della modalità video, i codec, alcune opzioni di avvio, overclocking, ecc.

Questo file ha un'estensione sintassi abbastanza peculiare, quindi deve essere rispettato per evitare problemi all'avvio. E se vuoi maggiori informazioni al riguardo, puoi farlo leggi la wiki che ti lascio a questo link.

Modifica la priorità di avvio sul Raspberry Pi

NOOBS config.txt

Quando cambi l'ordine di avvio o la priorità su un PC è tutto molto semplice, devi solo entrare nel BIOS/UEFI, e nella scheda Boot trovi i parametri che puoi variare per l'avvio dall'hard disk, un supporto ottico , USB, rete, ecc. Invece, sul Raspberry Pi non è così facile. Per impostazione predefinita, avvierà sempre il sistema operativo dalla scheda di memoria SD inserita nell'SBC. Infatti, anche dopo la versione 3, se sono inserite sia una scheda SD che una chiavetta USB, il sistema si avvierà comunque prima da SD. Se la SD viene rimossa e rimane solo l'USB, verrà eseguito tramite USB.

Ma questo ordine può essere modificato. per questo devi avviare raspbian, ad esempio, e procedi come segue:

  • Apri la configurazione di Raspberry Pi con il comando:
sudo raspi-config
  • Vai alla sezione "Opzioni avanzate". (avviso, il menu è in inglese)
  • Quindi, all'interno di questa sezione, premere INVIO sull'opzione "Boot Order".
  • Ora dovresti vedere tre diverse opzioni tra cui scegliere:
    • Avvio da scheda SD- Per impostazione predefinita, questa opzione è già abilitata sul tuo dispositivo Raspberry Pi e se inserisci contemporaneamente una scheda SD e una USB, il sistema utilizzerà la scheda SD come opzione di avvio predefinita a meno che tu non la rimuova.
    • avvio usb: Se si desidera utilizzare l'USB come dispositivo principale per l'avvio, è possibile selezionare questa opzione, che funziona quando si dispone di un dispositivo USB inserito nel Raspberry Pi. Altrimenti, non dovresti inserire una scheda SD per avviare il sistema.
    • avvio di rete: Questa opzione di avvio è utile se la tua scheda SD Raspberry Pi non funziona per qualche motivo o se c'è un problema con il tuo sistema operativo. In tal caso, utilizzerà lo strumento Imager per reinstallare il sistema sulla scheda SD.

Una volta che hai finito, puoi riavviare il lampone pi per applicare le modifiche...

Diagnosticare i problemi di Raspberry Pi (POST)

Infine, saprai che in un BIOS/UEFI esiste un passaggio chiamato POST che viene eseguito prima dell'avvio del sistema operativo e che controllerà lo stato dei diversi componenti. Se tutto è OK, avvierà il sistema operativo. Ma se rileva un problema, si ferma e visualizza un messaggio di errore sullo schermo o emette un segnale acustico per identificare qual è il problema.

Anche questo sul Raspberry Pi non esiste. Tuttavia, il firmware del SoC ha un metodo per provare a segnalare i problemi che possono verificarsi per una facile diagnosi. E questo grazie al suo LED di alimentazione. Ad esempio, per il Raspberry Pi 4, i codici luminosi che il LED emette per indicare problemi sono:

lunghi lampi brevi lampi Stato dei servizi
0 3 Errore generale durante l'avvio
0 4 start*.elf non trovato
0 7 Immagine del kernel non trovata
0 8 Errore SDRAM
0 9 SDRAM insufficiente
0 10 nello stato HALT
2 1 La partizione non è FAT (non supportata)
2 2 Impossibile leggere la partizione
2 3 partizione estesa non FAT
2 4 L'hash o la firma non corrispondono
3 1 Errore SPI-EEPROM
3 2 SPI EEPROM protetta da scrittura
3 3 Errore I2C
4 4 Tipo di scheda non supportato
4 5 errore irreversibile del firmware
4 6 Tipo A Mancata accensione
4 7 Mancata accensione di tipo B

Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.