Raspberry Pi: har den BIOS?

Raspberry Pi BIOS

Nogle brugere spekulerer på, om Raspberry Pi har BIOS eller UEFI, ligesom andre computere, da UEFI som bekendt også understøttes på Arm-baserede computere, som det er tilfældet med denne SBC så populær og billig. Men sandheden er, at hindbærfyrene har valgt en anden alternativ løsning.

Her vil du lære, hvad den løsning er, og hvorfor bruger ikke denne firmware, ud over at vise dig, hvordan nogle konfigurationer laves på Raspberry Pi, når der ikke er nogen opsætningsmenu som på computere...

Hvorfor bruger Raspberry Pi ikke BIOS/UEFI?

Raspberry Pi 4

Som du ved, er BIOS eller UEFI er en firmware der findes i et væld af computere, både stationære, bærbare, AIO, servere, arbejdsstationer osv. Det er dog ikke på Raspberry Pi, på trods af at det er en SBC (Single Board Computer), i modsætning til andre x86 SBC'er, der bruger denne firmware til opstartsprocessen og systemcheck. Og det er ikke fordi Raspberry Pi er ARM-baseret, da mange ARM-computere også har BIOS/UEFI.

Til gengæld skal det siges, at denne firmware er designet således, at bagagerummet nemmere fra lagringsmediet, hvor styresystemet er placeret, udover at kunne styre mange andre indstillinger. Det er her, han giver os fingerpeg om, hvorfor Raspberry Pi ikke bruger BIOS. På den ene side, fordi den kun kan starte enheder fra det samme medie, såsom SD-kort, og ikke på andre måder. Og på den anden side fordi antallet af perifere enheder og funktioner i en Raspberry Pi er mere begrænset.

Dette er dog ikke helt en grund til ikke at bruge BIOS eller UEFI. Faktisk, hvis vi analyserer omhyggeligt Raspberry Pi's ARM SoC bruger sin egen interne firmware at starte CPU'en i en korrekt tilstand og resten af ​​systemet uden behov for en separat BIOS-chip. Men... hvorfor kan du så ikke få adgang til BIOS Setup eller BIOS menuen? På den ene side, fordi denne firmware er meget begrænset og ikke så kompleks som BIOS/UEFI, så en menu til at konfigurere parametre ville være meningsløs, og på den anden side, på grund af det tidligere nævnte, at den kun kan starte fra et standardlagermedie. , ligesom SD-kortet.

Udviklerne af Raspberry Pi har af denne grund foretrukket at bruge denne grundlæggende firmware til initialisering og opstart fra et SD-kort frem for at bruge en rom-chip med mere kompleks firmware installeret på printkortet. Og det er, at hvis du ser efter, har mobile enheder heller ikke BIOS / UEFI, da de kun kan starte Android (eller et andet operativsystem) fra den interne hukommelse.

På den måde spares på den ene side den ekstra chip på kortet, og på den anden side er behovet for at inkludere flashhukommelse til opbevaring også elimineret. ville gøre Raspberry Pi dyrere. Du skal købe SD-kortet separat.

Det skal dog siges, at i Raspberry Pi 3 blev der tilføjet eksperimentel støtte til boot fra USB-medie som skal være eksplicit aktiveret og ikke kan deaktiveres. Dette er inkluderet i den indlejrede firmware af SoC'en i den nye version, men dette var en smule mere kompliceret, hvilket sandsynligvis er grunden til, at de oprindeligt besluttede at starte med de nemme ting og kun bruge opstart fra SD-hukommelseskort.

Hvad brugte Raspberry Pi i stedet for?

Rasbperry Pi 4 Power

Raspberry Pi har ikke en BIOS eller UEFI som forstået i pc-verdenen, for eksempel, men den har en lukket kilde firmware i SoC, som jeg nævnte ovenfor. Denne chip er designet af Broadcom-firmaet, som leverer BCM'erne til disse Raspberry Pi Foundation-kort.

I SoC (System on a Chip) Den integrerer en ARM Cortex-A Series CPU, en VideoCore GPU, en DSP til digital signalbehandling, SDRAM-hukommelse, der deles af CPU'en og GPU'en, og controllere som USB osv. Derudover indeholder den også en ROM-hukommelse, hvori den firmware, vi taler om, er integreret, og som er nødvendig for opstart.

startprocedure

masse pasos der følger denne firmware er:

  1. Denne firmware tager sig af start bootloader af det operativsystem, der er på SD-kortet. Som du ved, monterer bootloaderen FAT32-partitionen på SD-hukommelseskortet og går til det andet opstartstrin, som er programmeret i SoC og ikke kan ændres.
  2. I anden fase, en fil kendt som bootcode.bin, hvor GPU-firmwaren er forberedt og startet. Denne fil kan kun gemmes på SD-kortet, så opstartsprioriteten kan ikke ændres som i en konventionel BIOS/UEFI på en pc, og den vil kun starte derfra. Men som sagt, på Pi 3 blev muligheden for at boote fra USB også eksperimentelt tilføjet.
  3. Så kommer et tredje trin, hvor der gøres brug af start.elf-filen, som starter CPU'en op, og en fil kaldet fixup.dat, som bruges til at oprette den nødvendige partition i SDRAM'en, så den kan begynde at blive brugt af CPU'en og GPU'en.
  4. Til sidst udføres brugerkoden, som normalt er de eksekverbare binære filer eller billeder af Linux-kerne, såsom kernel.img, eller fra andre operativsystemer understøttet af Raspberry Pi, og det er sådan, operativsystemet starter op, så du kan bruge det...

Som du har set, er det en simpel proces, men noget mærkelig, hvis vi sammenligner det med en pc eller andre computere. Og det er, i tilfælde af Raspberry Pi, i stedet for at starte CPU'en, som i andre tilfælde, GPU starter først. Faktisk vil denne Broadcomo GPU være ansvarlig for at udføre en slags indlejret operativsystem i SoC, der er meget simpelt, men nødvendigt for at fungere. Det er kendt som VCOS (Video Core Operating System), og det vil kommunikere med Linux. Dette er meget sjældent, men sandheden er, at Pi GPU'en ikke kun er ansvarlig for grafik og start, den er også ansvarlig for styresystems ur og lyd.

Når dette er sagt, ser det i princippet ud til, at der ikke er meget, vi kan gøre ved ændre boot-konfigurationenMen sandheden er, at det ikke er helt sådan. Og det er, at der er en fil kaldet config.txt, der er placeret i /boot/-mappen på systemet, og hvis den åbnes med en teksteditor, kan dens indhold nemt ændres for at ændre opstarten og konfigurere den med visse parametre .

dette config.txt-fil den vil blive læst af GPU'en efter start af ARM-kernen, og den indeholder instruktioner til SoC'en for at vide, hvad den skal gøre under systemstart. For eksempel kan vi ændre den dedikerede hukommelse i den, hukommelsesopdateringen, deaktivere adgangen til L2-cachen, ændre CMA-konfigurationen, aktivere eller deaktivere kameraets LED, ændre videotilstandsindstillinger, codecs, nogle muligheder opstart, overclocking osv.

Denne fil har en syntaks ret ejendommelig, så det skal respekteres for at undgå problemer ved opstart. Og hvis du vil have mere information om det, kan du læs wikien, som jeg efterlader dig i dette link.

Skift opstartsprioritet på Raspberry Pi

NOOBS config.txt

Når du ændrer opstartsrækkefølge eller prioritet på en PC er det hele meget simpelt, du skal blot ind i BIOS/UEFI, og i Boot-fanen kan du finde de parametre, som du kan variere for at starte fra harddisken, et optisk medie , USB, netværk osv. I stedet, på Raspberry Pi er det ikke så nemt. Som standard vil det altid starte OS fra SD-hukommelseskortet, der er indsat i SBC'en. Faktisk, selv efter version 3, hvis både et SD-kort og en USB-stick er isat, vil systemet stadig starte fra SD først. Hvis SD'en fjernes, og kun USB'en er tilbage, vil det ske via USB'en.

Men denne rækkefølge kan ændres. for det skal du start raspbian, for eksempel, og gør følgende:

  • Åbn Raspberry Pi-opsætningen med kommandoen:
sudo raspi-config
  • Gå til afsnittet "Avancerede indstillinger". (bemærk, menuen er på engelsk)
  • Inden for dette afsnit skal du derefter trykke på ENTER på indstillingen "Boot Order".
  • Du bør nu se tre forskellige muligheder at vælge imellem:
    • Opstart af SD-kort- Som standard er denne mulighed allerede aktiveret på din Raspberry Pi-enhed, og hvis du indsætter et SD-kort og USB samtidigt, vil systemet bruge SD-kortet som standardopstartsmulighed, medmindre du fjerner det.
    • usb boot: Hvis du vil bruge USB som den primære enhed til opstart, kan du vælge denne mulighed, som virker, når du har en USB-enhed indsat i Raspberry Pi. Ellers bør du ikke indsætte et SD-kort for at starte systemet.
    • Netværksopstart: Denne opstartsmulighed er nyttig, hvis dit Raspberry Pi SD-kort af en eller anden grund ikke virker, eller hvis der er et problem med dit operativsystem. I så fald vil den gøre brug af Imager-værktøjet til at geninstallere systemet på SD-kortet.

Når du er færdig, kan du genstart raspberry pi for at anvende ændringerne...

Diagnosticer Raspberry Pi-problemer (POST)

Endelig vil du vide, at der i en BIOS/UEFI er et trin kaldet POST, som udføres før operativsystemet starter, og som vil kontrollere status for de forskellige komponenter. Hvis alt er OK, vil det starte OS. Men hvis den opdager et problem, stopper den og viser en fejlmeddelelse på skærmen eller udsender en hørbar bip-kode for at identificere, hvad problemet er.

Dette på Raspberry Pi findes heller ikke. SoC-firmwaren har dog en metode til at forsøge at markere problemer, der kan opstå, for let diagnosticering. Og det er gennem dens power LED. For eksempel for Raspberry Pi 4 er lyskoderne, som LED'en udsender for at indikere problemer:

lange blink korte blink Status
0 3 Generel fejl under opstart
0 4 start*.elf ikke fundet
0 7 Kernebillede blev ikke fundet
0 8 SDRAM-fejl
0 9 utilstrækkelig SDRAM
0 10 i HALT tilstand
2 1 Partitionen er ikke FAT (understøttet ikke)
2 2 Kunne ikke læse partitionen
2 3 ikke-FAT udvidet partition
2 4 Hash eller signatur stemmer ikke overens
3 1 SPI-EEPROM fejl
3 2 SPI EEPROM skrivebeskyttet
3 3 I2C fejl
4 4 Boardtype understøttes ikke
4 5 fatal firmwarefejl
4 6 Type A Fejltænding
4 7 Type B fejltænding

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.