Raspberry Pi: té BIOS?

Raspberry Pi BIOS

alguns usuaris es pregunten si la Raspberry Pi té BIOS o UEFI, com altres equips, ja que UEFI, com saps, també està suportat en equips basats en Arm, com és el cas de aquesta SBC tan popular i barata. Però la veritat és que els nois del gerd han optat per una altra solució alternativa.

Aquí aprendràs quina és aquesta solució i els motius pels quals no empra aquest firmware, a més de mostrar-te com es realitzen algunes configuracions a la Raspberry Pi quan no hi ha Setup Menu com als ordinadors…

Per què la Raspberry Pi no fa servir BIOS/UEFI?

Gerd Pi 4

Com saps, el BIOS o UEFI és un firmware que és present a multitud d'ordinadors, tant als de sobretaula, portàtils, AIO, servidors, estacions de treball, etc. Tot i això, no ho està a la Raspberry Pi, malgrat ser una SBC (Single Board Computer), a diferència d'altres SBC x86 que sí que usen aquest firmware per al procés d'arrencada i comprovació del sistema. I no és perquè la Raspberry Pi estigui basada en ARM, ja que molts equips ARM també compten amb BIOS/UEFI.

Daltra banda, cal dir que aquest firmware està dissenyat perquè l'arrencada sigui més fàcil des del mitjà d'emmagatzematge on es trobi el sistema operatiu, a més de per poder controlar moltes altres configuracions. Aquí és on ens va donant pistes de per què la Raspberry Pi no fa servir BIOS. D'una banda perquè només podeu arrencar dispositius d'un mateix mitjà, com són les targetes SD, i no d'altres maneres. I per altra banda perquè la quantitat de perifèrics i funcions en una Raspberry Pi estan més limitades.

No obstant això, això no és del tot un motiu per no fer servir BIOS o UEFI. De fet, si analitzem bé, el SoC ARM de la Raspberry Pi utilitza el seu propi microprogramari intern per arrencar la CPU en un estat apropiat i la resta del sistema sense necessitat dun xip BIOS separat. Però... llavors per què no es pot accedir al BIOS Setup o menú del BIOS? D'una banda perquè aquest firmware és molt limitat, i no tan complex com el BIOS/UEFI, per la qual cosa mancaria de sentit un menú per configurar paràmetres, i de l'altra pel que s'ha comentat anteriorment, que només pot arrencar des d'un mitjà d'emmagatzematge prdeterminat , com és la targeta SD.

Els desenvolupadors de la Raspberry Pi han preferit per aquest motiu fer servir aquest firmware bàsic per a la inicialització i l'arrencada des d'una targeta SD que utilitzar un xip ROM amb un firmware més complex instal·lat a la PCB. I és que, si t'hi fixes, els dispositius mòbils tampoc tenen BIOS/UEFI, ja que només poden arrencar Android (o un altre sistema operatiu), des de la memòria interna.

D'aquesta manera, d'una banda s'estalvia aquest xip addicional a la placa, i de l'altra també s'elimina la necessitat d'incloure una memòria flaix per a emmagatzematge que també encariria la Raspberry Pi. La targeta SD l'has de comprar a part.

No obstant això, cal dir que a la Raspberry Pi 3 es va afegir un suport experimental per arrencar des d'un mitjà USB que cal habilitar explícitament i no es pot desactivar. Això està inclòs al firmware integrat del SoC de la nova versió, però això va suposar una mica més de complicació, per la qual cosa és probable que per això decidissin en un inici començar pel fàcil i utilitzar l'arrencada només des de targetes de memòria SD.

Què feia servir la Raspberry Pi al seu lloc?

Alimentació Rasbperry Pi 4

La Raspberry Pi no té BIOS o UEFI com s'entén al món del PC, per exemple, però sí que té un firmware de codi tancat al SoC com he comentat anteriorment. Aquest xip està dissenyat per la companyia Broadcom, que subministra els BCM a aquestes plaques de la Raspberry Pi Foundation.

En el SoC (System on a Chip) s'hi integra una CPU ARM Cortex-A Series, una GPU VideoCore, un DSP per al tractament de senyal digital, memòria SDRAM compartida per la CPU i GPU, i controladors com el d'USB, etc. A més, també inclou una memòria ROM en què s'integra el microprogramari de què parlem i que és necessari per a l'arrencada.

Procediment d'arrencada

Els Passos que segueix aquest firmware són:

  1. Aquest firmware s'encarrega de iniciar el carregador d'arrencada del sistema operatiu que es trobi a la targeta SD. Com sabreu el gestor d'arrencada o bootloader munta la partició FAT32 de la targeta de memòria SD i passa a la segona etapa d'inici, que està programada al SoC i no es pot modificar.
  2. A la segona etapa entra en escena un arxiu conegut com bootcode.bin, en el qual es prepara i inicia el microprogramari de la GPU. Aquest arxius olo pot estar allotjat a la targeta SD, per això no es pot modificar la prioritat darrencada com en un BIOS/UEFI convencional dun PC, i només arrencarà des dallà. Tot i això, com he dit, a la Pi 3 es va afegir de forma experimental també la possibilitat d'arrencar des de l'USB.
  3. Després arriba una tercera etapa en què es fa ús de l'arxiu start.elf, que posa en marxa la CPU i un fitxer anomenat fixup.dat, que es fa servir per crear la partició necessària a la SDRAM perquè pugui començar a ser usada per la CPU i la GPU.
  4. Finalment s'executa el codi d'usuari, que normalment són els binaris executables o imatges del nucli Linux, com kernel.img, o d'altres sistemes operatius suportats per la Raspberry Pi, i així és com arrenca el sistema operatiu per poder-lo fer servir…

Com has vist, és un procés simple, però una mica estrany si ho comparem amb un PC o altres ordinadors. I és que, en el cas de la Raspberry Pi, en comptes d'iniciar la CPU, com en altres casos, s'inicia primer la GPU. De fet, aquesta GPU de Broadcomo serà l'encarregada d'executar una mena de sistema operatiu embegut al SoC que és molt simple, però necessari per funcionar. Es coneix com a VCOS (Video Core Operating System), i aquest comunicarà amb Linux. És molt estrany això, però la veritat és que la GPU de la Pi no només s'encarrega dels gràfics i d'iniciar, també s'encarrega de controlar el rellotge del sistema i l'àudio.

En principi, dit això, sembla que poc podem fer per modificar la configuració d'arrencada, però la veritat és que no és del tot així. I és que hi ha un fitxer anomenat config.txt que està localitzat al directori /boot/ del sistema i si s'obre amb algun editor de text, se'n pot modificar el contingut fàcilment per alterar l'arrencada i configurar-lo amb certs paràmetres.

Aquest fitxer config.txt serà llegit per la GPU després d'iniciar el nucli ARM, i s'hi troben les instruccions perquè el SoC sàpiga què ha de fer durant l'arrencada del sistema. Per exemple, podem modificar-hi la memòria dedicada, el refresc de la memòria, deshabilitar l'accés a la memòria cau L2, alterar la configuració CMA, habilitar o deshabilitar el LED de la càmera, canviar opcions del mode de vídeo, còdecs, algunes opcions d'arrencada, fer overclocking, etc.

Aquest fitxer té una sintaxi força peculiar, per la qual cosa s'ha de respectar per no produir problemes a l'arrencada. I si vols més informació sobre això, pots llegir la wiki que et deixo en aquest enllaç.

Canviar la prioritat de l'arrencada a la Raspberry Pi

noobs config.txt

Quan canvies l'ordre o la prioritat d'arrencada en un PC és tot molt senzill, tan sols has d'entrar al BIOS/UEFI, ia la pestanya Boot pots trobar els paràmetres que pots variar per arrencar des del disc dur, un mitjà òptic , USB, en xarxa, etc. En canvi, a la Raspberry Pi no és tan fàcil. Per defecte, arrancarà sempre el SO des de la targeta de memòria SD inserida a la SBC. De fet, fins i tot després de la versió 3, si s'insereix una targeta SD i una memòria USB, el sistema continuarà arrencant primer des de la SD. Si es retira la SD i es deixa només l'USB, aleshores ho farà a través de l'USB.

Però aquest ordre es pot alterar. Per això has de iniciar Raspbian, per exemple, i realitzar el següent:

  • Obre la configuració de la Raspberry Pi amb l'ordre:
suo raspi-config
  • Aneu a la secció «Opcions avançades». (avís, el menú està en anglès)
  • Després, dins d'aquesta secció, premeu INTRO a l'opció «Ordre d'arrencada».
  • Ara has de veure tres opcions diferents per triar:
    • Arrencada de la targeta SD: per defecte, aquesta opció ja està habilitada al dispositiu Raspberry Pi i si insereixes una targeta SD i un USB simultàniament, el sistema utilitzarà la targeta SD com una opció d'arrencada predeterminada a menys que l'elimini.
    • Arrencada USB: si vols utilitzar USB com a dispositiu principal per arrencar el sistema, pots seleccionar aquesta opció, que funciona quan tens un dispositiu USB inserit a la Raspberry Pi. En qualsevol altre cas, no heu d'inserir una targeta SD per iniciar el sistema.
    • Arrencada de xarxa: aquesta opció d'arrencada és útil si la vostra targeta SD Raspberry Pi no funciona per algun motiu o si hi ha cap problema amb el vostre sistema operatiu. En aquest cas, farà ús de l'eina Imager per reinstal·lar el sistema a la targeta SD.

Un cop acabis, pots reiniciar la Raspberry Pi per aplicar els canvis…

Diagnosticar problemes de la Raspberry Pi (POST)

Finalment, sabràs que en un BIOS/UEFI hi ha un pas anomenat POST que es fa abans de l'arrencada del sistema operatiu i que comprovarà l'estat dels diferents components. En cas d'estar tot OK, donareu pas a l'arrencada del SO. Però si detecta algun problema, s'atura i mostra un missatge d'error a la pantalla o emet algun codi beep sonor per identificar quin és el problema.

Això a la Raspberry Pi tampoc existeix. No obstant això, el firmware del SoC té un mètode per intentar indicar problemes que es puguin donar per a un diagnòstic fàcil. I això és a través del seu LED d'encesa. Per exemple, per a la Raspberry Pi 4, els codis de llum que emet el LED per indicar problemes són:

Llampades llargues Llampades curtes Estat
0 3 Fallada general durant l'arrencada
0 4 No s'ha trobat start*.elf
0 7 No s'ha trobat la imatge del nucli
0 8 Fallada a la SDRAM
0 9 SDRAM insuficient
0 10 En estat HALT
2 1 La partició no és FAT (no compatible)
2 2 Fallada en llegir la partició
2 3 Partició estesa no FAT
2 4 Hash o signatura no coincideix
3 1 Error SPI EEPROM
3 2 SPI EEPROM protegit contra escriptura
3 3 Error I2C
4 4 Tipus de placa no suportada
4 5 Error de microprogramari fatal
4 6 Fallada d'encesa tipus A
4 7 Fallada d'encesa tipus B

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.