Raspberry Pi: mayroon ba itong BIOS?

Raspberry Pi BIOS

Ang ilang mga gumagamit magtaka kung ang Raspberry Pi ay may BIOS o UEFI, tulad ng iba pang mga computer, dahil ang UEFI, tulad ng alam mo, ay sinusuportahan din sa mga Arm-based na computer, tulad ng kaso sa ang SBC na ito ay napakapopular at mura. Ngunit ang katotohanan ay ang mga raspberry guys ay nag-opt para sa isa pang alternatibong solusyon.

Dito mo malalaman kung ano ang solusyon na iyon at ang mga dahilan kung bakit hindi gumagamit ng firmware na ito, bilang karagdagan sa pagpapakita sa iyo kung paano ginagawa ang ilang configuration sa Raspberry Pi kapag walang Setup Menu tulad ng sa mga computer...

Bakit hindi gumagamit ng BIOS/UEFI ang Raspberry Pi?

Raspberry Pi 4

Tulad ng alam mo, ang Ang BIOS o UEFI ay isang firmware na naroroon sa maraming computer, parehong desktop, laptop, AIO, server, workstation, atbp. Gayunpaman, wala ito sa Raspberry Pi, sa kabila ng pagiging isang SBC (Single Board Computer), hindi tulad ng ibang mga x86 SBC na gumagamit ng firmware na ito para sa proseso ng boot at pagsusuri ng system. At hindi ito dahil ang Raspberry Pi ay ARM-based, dahil maraming ARM computer ay mayroon ding BIOS/UEFI.

Sa kabilang banda, dapat sabihin na ang firmware na ito ay dinisenyo upang iyon ang boot mas madali mula sa storage medium kung saan matatagpuan ang operating system, bilang karagdagan sa kakayahang kontrolin ang maraming iba pang mga setting. Dito binibigyan niya tayo ng mga pahiwatig kung bakit hindi gumagamit ng BIOS ang Raspberry Pi. Sa isang banda, dahil maaari lamang itong mag-boot ng mga device mula sa parehong medium, tulad ng mga SD card, at hindi sa ibang mga paraan. At sa kabilang banda dahil ang bilang ng mga peripheral at function sa isang Raspberry Pi ay mas limitado.

Gayunpaman, hindi ito ganap na dahilan para hindi gumamit ng BIOS o UEFI. Sa katunayan, kung susuriing mabuti, ang Ang ARM SoC ng Raspberry Pi ay gumagamit ng sarili nitong internal firmware upang i-boot ang CPU sa isang maayos na estado at ang natitirang bahagi ng system nang hindi nangangailangan ng isang hiwalay na BIOS chip. Ngunit... kung gayon bakit hindi mo ma-access ang BIOS Setup o BIOS menu? Sa isang banda, dahil ang firmware na ito ay napakalimitado, at hindi kasing kumplikado ng BIOS/UEFI, kaya ang isang menu upang i-configure ang mga parameter ay magiging walang kabuluhan, at sa kabilang banda, dahil sa naunang nabanggit, na maaari lamang itong mag-boot mula sa isang default na daluyan ng imbakan. , tulad ng SD card.

Ang mga developer ng Raspberry Pi ay may para sa kadahilanang ito ginustong gamitin ang pangunahing firmware para sa pagsisimula at pag-boot mula sa isang SD card kaysa sa paggamit isang rom chip na may mas kumplikadong firmware na naka-install sa PCB. At ito ay, kung titingnan mo, ang mga mobile device ay wala ring BIOS / UEFI, dahil maaari lamang nilang i-boot ang Android (o isa pang operating system), mula sa panloob na memorya.

Sa ganitong paraan, sa isang banda, ang karagdagang chip sa board ay nai-save, at sa kabilang banda, ang pangangailangan na isama ang flash memory para sa imbakan ay inalis din. gagawing mas mahal ang Raspberry Pi. Kailangan mong bilhin ang SD card nang hiwalay.

Gayunpaman, dapat sabihin na sa Raspberry Pi 3 pang-eksperimentong suporta ay idinagdag para sa boot mula sa USB media na dapat na tahasang paganahin at hindi maaaring hindi paganahin. Ito ay kasama sa naka-embed na firmware ng SoC ng bagong bersyon, ngunit ito ay medyo mas kumplikado, na marahil kung bakit sila sa una ay nagpasya na magsimula sa madaling bagay at gumamit lamang ng booting mula sa mga SD memory card.

Ano ang ginagamit ng Raspberry Pi sa halip?

Rasbperry Pi 4 Lakas

Ang Raspberry Pi ay walang BIOS o UEFI na naiintindihan sa mundo ng PC, halimbawa, ngunit mayroon itong closed source firmware sa SoC tulad ng nabanggit ko sa itaas. Ang chip na ito ay dinisenyo ng kumpanya ng Broadcom, na nagbibigay ng mga BCM sa mga board na ito ng Raspberry Pi Foundation.

Sa SoC (System on a Chip) Pinagsasama nito ang isang ARM Cortex-A Series CPU, isang VideoCore GPU, isang DSP para sa digital signal processing, SDRAM memory na ibinahagi ng CPU at GPU, at mga controllers gaya ng USB, atbp. Bilang karagdagan, kasama rin dito ang isang memorya ng ROM kung saan ang firmware na pinag-uusapan natin ay isinama at iyon ay kinakailangan para sa pag-boot.

panimulang pamamaraan

Los mga hakbang na sumusunod sa firmware na ito ay:

  1. Inaalagaan ng firmware na ito simulan ang bootloader ng operating system na nasa SD card. Tulad ng alam mo, ini-mount ng bootloader ang FAT32 partition ng SD memory card at pumunta sa pangalawang yugto ng boot, na naka-program sa SoC at hindi mababago.
  2. Sa ikalawang yugto, isang file na kilala bilang bootcode.bin, kung saan inihanda at sinimulan ang GPU firmware. Ang file na ito ay maaari lamang maimbak sa SD card, kaya ang boot priority ay hindi mababago tulad ng sa isang conventional BIOS/UEFI ng isang PC, at ito ay magbo-boot lamang mula doon. Gayunpaman, tulad ng sinabi ko, sa Pi 3 ang kakayahang mag-boot mula sa USB ay idinagdag din sa eksperimento.
  3. Pagkatapos ay darating ang ikatlong yugto kung saan ginagamit ang start.elf file, na nag-uumpisa sa CPU, at isang file na tinatawag na fixup.dat, na ginagamit upang lumikha ng kinakailangang partition sa SDRAM upang masimulan itong magamit sa pamamagitan ng CPU at ng GPU.
  4. Sa wakas, ang user code ay naisakatuparan, na kadalasan ay ang mga executable binary o mga imahe ng Linux kernel, gaya ng kernel.img, o mula sa iba pang operating system na sinusuportahan ng Raspberry Pi, at ganito ang pag-boot ng operating system para magamit mo ito...

Tulad ng nakita mo, ito ay isang simpleng proseso, ngunit medyo kakaiba kung ihahambing natin ito sa isang PC o iba pang mga computer. At ito ay, sa kaso ng Raspberry Pi, sa halip na simulan ang CPU, tulad ng sa ibang mga kaso, Nag-boot muna ang GPU. Sa katunayan, ang Broadcomo GPU na ito ang mamamahala sa pagsasagawa ng isang uri ng naka-embed na operating system sa SoC na napakasimple, ngunit kinakailangan upang gumana. Ito ay kilala bilang VCOS (Video Core Operating System), at ito ay makikipag-ugnayan sa Linux. Ito ay napakabihirang, ngunit ang katotohanan ay ang GPU ng Pi ay hindi lamang namamahala sa mga graphics at nagsisimula, ito rin ang namamahala sa control system clock at audio.

Sa prinsipyo, pagkasabi nito, tila wala na tayong magagawa baguhin ang configuration ng bootNgunit ang katotohanan ay hindi ito ganap na ganoon. At ito ay mayroong isang file na tinatawag na config.txt na matatagpuan sa direktoryo ng /boot/ ng system at kung ito ay binuksan gamit ang isang text editor, ang nilalaman nito ay madaling mabago upang baguhin ang boot at i-configure ito sa ilang mga parameter. .

Ito config.txt file babasahin ito ng GPU pagkatapos simulan ang ARM kernel, at naglalaman ito ng mga tagubilin para malaman ng SoC kung ano ang gagawin sa pag-boot ng system. Halimbawa, maaari naming baguhin ang nakalaang memorya sa loob nito, ang pag-refresh ng memorya, huwag paganahin ang pag-access sa L2 cache, baguhin ang configuration ng CMA, paganahin o huwag paganahin ang LED ng camera, baguhin ang mga opsyon sa video mode, codec, ilang mga opsyon sa pag-boot, overclocking, atbp.

Ang file na ito ay may isang syntax medyo kakaiba, kaya dapat itong igalang upang maiwasan ang mga problema sa pagsisimula. At kung gusto mo ng karagdagang impormasyon tungkol dito, maaari mo basahin ang wiki na iniiwan ko sa iyo sa link na ito.

Baguhin ang Boot Priority sa Raspberry Pi

NOOBS config.txt

Kapag binago mo ang pagkakasunud-sunod ng boot o priyoridad sa isang PC, ang lahat ng ito ay napaka-simple, kailangan mo lamang ipasok ang BIOS/UEFI, at sa tab na Boot mahahanap mo ang mga parameter na maaari mong ibahin upang mag-boot mula sa hard disk, isang optical medium. , USB, network, atbp. sa halip, sa Raspberry Pi ito ay hindi ganoon kadali. Bilang default, palaging i-boot nito ang OS mula sa SD memory card na ipinasok sa SBC. Sa katunayan, kahit na pagkatapos ng bersyon 3, kung parehong SD card at USB stick ay ipinasok, ang system ay mag-boot pa rin mula sa SD muna. Kung ang SD ay tinanggal at ang USB na lang ang natitira, ito ay gagawin sa pamamagitan ng USB.

Ngunit ang pagkakasunud-sunod na ito ay maaaring baguhin. para diyan kailangan mo simulan ang raspbian, halimbawa, at gawin ang sumusunod:

  • Buksan ang setup ng Raspberry Pi gamit ang command:
sudo raspi-config
  • Pumunta sa seksyong "Mga Advanced na Opsyon." (pansinin, nasa English ang menu)
  • Pagkatapos, sa loob ng seksyong ito, pindutin ang ENTER sa opsyong "Boot Order".
  • Dapat mo na ngayong makita ang tatlong magkakaibang opsyon na mapagpipilian:
    • boot ng SD card- Bilang default, naka-enable na ang opsyong ito sa iyong Raspberry Pi device at kung maglalagay ka ng SD card at USB nang sabay-sabay, gagamitin ng system ang SD card bilang default na opsyon sa boot maliban kung aalisin mo ito.
    • usb boot: Kung gusto mong gamitin ang USB bilang pangunahing device para sa pag-boot, maaari mong piliin ang opsyong ito, na gagana kapag may USB device kang nakapasok sa Raspberry Pi. Kung hindi, hindi ka dapat magpasok ng SD card para i-boot ang system.
    • boot ng network: Ang opsyon sa boot na ito ay kapaki-pakinabang kung ang iyong Raspberry Pi SD card ay hindi gumagana sa ilang kadahilanan o kung may problema sa iyong operating system. Sa ganoong sitwasyon, gagamitin nito ang Imager tool upang muling i-install ang system sa SD card.

Kapag tapos ka na, magagawa mo i-reboot ang raspberry pi para ilapat ang mga pagbabago...

I-diagnose ang mga problema sa Raspberry Pi (POST)

Sa wakas, malalaman mo na sa isang BIOS/UEFI mayroong isang hakbang na tinatawag na POST na isinasagawa bago mag-boot ang operating system at susuriin ang katayuan ng iba't ibang bahagi. Kung OK ang lahat, sisimulan nito ang OS. Ngunit kung may nakita itong problema, hihinto ito at magpapakita ng mensahe ng error sa screen o maglalabas ng ilang naririnig na beep code upang matukoy kung ano ang problema.

Ito sa Raspberry Pi ay wala rin. Gayunpaman, ang SoC firmware ay may paraan upang subukang i-flag ang mga problema na maaaring mangyari para sa madaling pagsusuri. At iyon ay sa pamamagitan ng power LED nito. Halimbawa, para sa Raspberry Pi 4, ang mga light code na inilalabas ng LED upang ipahiwatig ang mga problema ay:

mahabang flashes maikling flashes katayuan
0 3 Pangkalahatang pagkabigo sa panahon ng pagsisimula
0 4 start*.elf not found
0 7 Hindi nakita ang imahe ng kernel
0 8 Nabigo ang SDRAM
0 9 hindi sapat na SDRAM
0 10 nasa HALT state
2 1 Ang partisyon ay hindi FAT (hindi suportado)
2 2 Nabigong basahin ang partition
2 3 non-FAT extended partition
2 4 Hindi tugma ang hash o lagda
3 1 SPI-EEPROM error
3 2 SPI EEPROM write protected
3 3 I2C error
4 4 Hindi sinusuportahan ang uri ng board
4 5 nakamamatay na error sa firmware
4 6 Uri ng Misfire
4 7 Uri B Misfire

Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.