Raspberry Pi: har den BIOS?

Raspberry Pi BIOS

Noen brukere lurer på om Raspberry Pi har BIOS eller UEFI, som andre datamaskiner, siden UEFI, som du vet, også støttes på armbaserte datamaskiner, slik tilfellet er med denne SBC så populær og billig. Men sannheten er at bringebærgutta har valgt en annen alternativ løsning.

Her vil du lære hva den løsningen er og årsakene til det bruker ikke denne fastvaren, i tillegg til å vise deg hvordan noen konfigurasjoner gjøres på Raspberry Pi når det ikke er noen oppsettmeny som på datamaskiner...

Hvorfor bruker ikke Raspberry Pi BIOS/UEFI?

Raspberry Pi 4

Som du vet, BIOS eller UEFI er en fastvare som finnes i en mengde datamaskiner, både stasjonære, bærbare, AIO, servere, arbeidsstasjoner, etc. Imidlertid er den ikke på Raspberry Pi, til tross for at den er en SBC (Single Board Computer), i motsetning til andre x86 SBC-er som bruker denne fastvaren for oppstartsprosessen og systemsjekken. Og det er ikke fordi Raspberry Pi er ARM-basert, da mange ARM-datamaskiner også har BIOS/UEFI.

På den annen side må det sies at denne fastvaren er designet slik at bagasjerommet enklere fra lagringsmediet hvor operativsystemet er plassert, i tillegg til å kunne styre mange andre innstillinger. Det er her han gir oss ledetråder om hvorfor Raspberry Pi ikke bruker BIOS. På den ene siden, fordi den bare kan starte opp enheter fra samme medium, for eksempel SD-kort, og ikke på andre måter. Og på den annen side fordi antall periferiutstyr og funksjoner i en Raspberry Pi er mer begrenset.

Dette er imidlertid ikke helt en grunn til å ikke bruke BIOS eller UEFI. Faktisk, hvis vi analyserer nøye Raspberry Pis ARM SoC bruker sin egen interne fastvare for å starte opp CPU-en i riktig tilstand og resten av systemet uten behov for en separat BIOS-brikke. Men... hvorfor får du ikke tilgang til BIOS Setup eller BIOS-menyen? På den ene siden, fordi denne fastvaren er svært begrenset, og ikke så kompleks som BIOS/UEFI, vil en meny for å konfigurere parametere være meningsløs, og på den andre siden, på grunn av det som ble nevnt tidligere, at den bare kan starte opp fra et standard lagringsmedium. , det samme er SD-kortet.

Utviklerne av Raspberry Pi har av denne grunn foretrukket å bruke denne grunnleggende fastvaren for initialisering og oppstart fra et SD-kort i stedet for å bruke en rom-brikke med mer kompleks fastvare installert på PCB. Og det er at hvis du ser, har ikke mobile enheter BIOS / UEFI heller, siden de bare kan starte Android (eller et annet operativsystem), fra internminnet.

På denne måten blir på den ene siden den ekstra brikken på brettet lagret, og på den andre siden elimineres også behovet for å inkludere flashminne for lagring. ville gjøre Raspberry Pi dyrere. Du må kjøpe SD-kortet separat.

Imidlertid må det sies at i Raspberry Pi 3 ble eksperimentell støtte lagt til starte opp fra USB-medier som må være eksplisitt aktivert og ikke kan deaktiveres. Dette er inkludert i den innebygde fastvaren til SoC-en til den nye versjonen, men dette var litt mer komplisert, og det er sannsynligvis grunnen til at de først bestemte seg for å starte med de enkle tingene og bruke oppstart kun fra SD-minnekort.

Hva brukte Raspberry Pi i stedet?

Rasbperry Pi 4 Power

Raspberry Pi har ikke en BIOS eller UEFI som for eksempel forstått i PC-verdenen, men den har en fastvare med lukket kildekode i SoC som jeg nevnte ovenfor. Denne brikken er designet av Broadcom-selskapet, som leverer BCM-ene til disse Raspberry Pi Foundation-brettene.

I SoC (System on a Chip) Den integrerer en ARM Cortex-A Series CPU, en VideoCore GPU, en DSP for digital signalbehandling, SDRAM-minne som deles av CPU og GPU, og kontrollere som USB, etc. I tillegg inkluderer den også et ROM-minne der fastvaren vi snakker om er integrert og som er nødvendig for oppstart.

startprosedyre

den trinn som følger denne fastvaren er:

  1. Denne fastvaren tar seg av start bootloader av operativsystemet som er på SD-kortet. Som du vet, monterer bootloaderen FAT32-partisjonen til SD-minnekortet og går til det andre oppstartstrinnet, som er programmert i SoC og ikke kan endres.
  2. I den andre fasen, en fil kjent som bootcode.bin, der GPU-fastvaren er klargjort og startet. Denne filen kan bare lagres på SD-kortet, så oppstartsprioriteten kan ikke endres som i en konvensjonell BIOS/UEFI på en PC, og den vil bare starte opp derfra. Men som jeg sa, på Pi 3 ble muligheten til å starte opp fra USB også eksperimentelt lagt til.
  3. Deretter kommer et tredje trinn der det benyttes start.elf-filen, som starter opp CPU-en, og en fil som heter fixup.dat, som brukes til å lage nødvendig partisjon i SDRAM-en slik at den kan begynne å brukes. av CPU og GPU.
  4. Til slutt kjøres brukerkoden, som vanligvis er de kjørbare binære filene eller bildene av Linux-kjernen, for eksempel kernel.img, eller fra andre operativsystemer som støttes av Raspberry Pi, og dette er hvordan operativsystemet starter opp slik at du kan bruke det...

Som du har sett er det en enkel prosess, men litt rart hvis vi sammenligner det med en PC eller andre datamaskiner. Og det er det, i tilfelle av Raspberry Pi, i stedet for å starte CPU, som i andre tilfeller, GPU-støvler først. Faktisk vil denne Broadcomo GPU ha ansvaret for å utføre et slags innebygd operativsystem i SoC som er veldig enkelt, men nødvendig for å fungere. Det er kjent som VCOS (Video Core Operating System), og det vil kommunisere med Linux. Dette er veldig sjeldent, men sannheten er at GPU-en til Pi ikke bare er ansvarlig for grafikk og start, den har også ansvar for kontrollsystem klokke og lyd.

I prinsippet, når dette er sagt, ser det ut til at det er lite vi kan gjøre med endre oppstartskonfigurasjonenMen sannheten er at det ikke er helt sånn. Og det er at det er en fil kalt config.txt som ligger i /boot/-katalogen til systemet, og hvis den åpnes med et tekstredigeringsprogram, kan innholdet enkelt endres for å endre oppstarten og konfigurere den med visse parametere .

Dette config.txt-filen den vil bli lest av GPUen etter å ha startet ARM-kjernen, og den inneholder instruksjoner for SoC for å vite hva den skal gjøre under systemoppstart. For eksempel kan vi endre det dedikerte minnet i det, minneoppdateringen, deaktivere tilgang til L2-cachen, endre CMA-konfigurasjonen, aktivere eller deaktivere kameraets LED, endre videomodusalternativer, kodeker, noen alternativer oppstart, overklokking, etc.

Denne filen har en syntaks ganske merkelig, så det må respekteres for å unngå problemer ved oppstart. Og hvis du vil ha mer informasjon om det, kan du les wikien som jeg legger igjen i denne lenken.

Endre oppstartsprioritet på Raspberry Pi

NOOBS config.txt

Når du endrer oppstartsrekkefølge eller prioritet på en PC er alt veldig enkelt, du trenger bare å gå inn i BIOS/UEFI, og i Boot-fanen kan du finne parametrene som du kan variere for å starte opp fra harddisken, et optisk medium , USB, nettverk, etc. I stedet, på Raspberry Pi er det ikke så lett. Som standard vil det alltid starte operativsystemet fra SD-minnekortet som er satt inn i SBC. Faktisk, selv etter versjon 3, hvis både et SD-kort og en USB-pinne er satt inn, vil systemet fortsatt starte opp fra SD først. Hvis SD-en fjernes og bare USB-en er igjen, vil det gjøres via USB-en.

Men denne rekkefølgen kan endres. for det må du start raspbian, for eksempel, og gjør følgende:

  • Åpne Raspberry Pi-oppsettet med kommandoen:
sudo raspi-konfig
  • Gå til delen "Avanserte alternativer". (merk at menyen er på engelsk)
  • Deretter, i denne delen, trykk ENTER på alternativet "Boot Order".
  • Du bør nå se tre forskjellige alternativer å velge mellom:
    • Oppstart av SD-kort- Som standard er dette alternativet allerede aktivert på din Raspberry Pi-enhet, og hvis du setter inn et SD-kort og USB samtidig, vil systemet bruke SD-kortet som et standard oppstartsalternativ med mindre du fjerner det.
    • usb oppstart: Hvis du vil bruke USB som den primære enheten for oppstart, kan du velge dette alternativet, som fungerer når du har en USB-enhet satt inn i Raspberry Pi. Ellers bør du ikke sette inn et SD-kort for å starte opp systemet.
    • nettverksoppstart: Dette oppstartsalternativet er nyttig hvis Raspberry Pi SD-kortet ditt av en eller annen grunn ikke fungerer eller hvis det er et problem med operativsystemet ditt. I så fall vil den bruke Imager-verktøyet for å installere systemet på SD-kortet på nytt.

Når du er ferdig, kan du start Raspberry Pi på nytt for å bruke endringene...

Diagnostiser Raspberry Pi-problemer (POST)

Til slutt vil du vite at i en BIOS/UEFI er det et trinn kalt POST som utføres før operativsystemet starter opp og som vil sjekke statusen til de forskjellige komponentene. Hvis alt er OK, vil det starte OS. Men hvis den oppdager et problem, stopper den og viser en feilmelding på skjermen eller sender ut en lydkode for å identifisere hva problemet er.

Dette på Raspberry Pi finnes heller ikke. SoC-fastvaren har imidlertid en metode for å prøve å flagge problemer som kan oppstå for enkel diagnose. Og det er gjennom strøm-LED. For eksempel, for Raspberry Pi 4, er lyskodene som LED-en sender ut for å indikere problemer:

lange blink korte blink status
0 3 Generell feil under oppstart
0 4 start*.elf ikke funnet
0 7 Kjernebilde ble ikke funnet
0 8 SDRAM-feil
0 9 utilstrekkelig SDRAM
0 10 i HALT-tilstand
2 1 Partisjonen er ikke FAT (støttes ikke)
2 2 Kunne ikke lese partisjonen
2 3 ikke-FAT utvidet partisjon
2 4 Hash eller signatur stemmer ikke overens
3 1 SPI-EEPROM feil
3 2 SPI EEPROM skrivebeskyttet
3 3 I2C feil
4 4 Bretttype støttes ikke
4 5 fatal fastvarefeil
4 6 Type A Feiltenning
4 7 Type B feiltenning

Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.