Raspberry PI OS - co z tym "boot'em"?

Spis treści

Co z tym boot'em

Po włączeniu zasilania (nie tylko) start systemu na RPi zaczyna się od uruchomienia sekwencyjnej procedury nazywanej "bootem".

Prawidłowy jej przebieg uzależniony jest nie tylko od prawidłowej składni, ale również bezbłędnej realizacji poszczególnych etapów wynikających z tzw. bootloadera. Tej nazwy będę używał w dalszej części artykułu..

Na oficjalnym forum Fundacji RPi wyszukując: "bootloader" przykonamy się, że jego temat nadal "żyje". Wątki najczęściej dotyczą problemów z procesem startu RPi.

Istnieje wiele wersji RPi. Artykuł opisuje zagadnienia dotyczące "ręcznej" aktualizacji bootloadera dostarczanego wraz z Raspbianem (32b/64b). Działającym na RPi 4B (8GB wersji). Ale nie tylko pod Raspbianem.

Trochę teorii...

Ekran "rozpaczy"?

Jeśli wszystko przebiega bez problemów na ten etap uruchamiania się systemu z reguły nie zwracamy uwagi.

Coś mignie, jakieś kolory (lub nie ;) ) i po chwili "witamy w świecie RPi". Tak bywa w 99% przypadków.

Gdy jednak trafimy do pozostałego 1% bywa... smutniej i nerwowo! Poprawiamy kable, kilkakrotnie włączamy (i wyłączamy) Raspberry Pi, itd. Czasami pomaga. Bywa, że jednak nie!

Np. u mnie z niektórymi dyskami SSD, podłączonymi poprzez USB3 (przy ustawionej opcji startu z SSD) system zatrzymuje się. I stoi. Bo nie wykrył dysku (który jest). Nie wykrył karty SD (której nie ma). I na coś czeka....

Jeśli nic nie zrobię - czekamy wszyscy! Ale wystarczy, że "na chwilkę" odłączę dysk, odczekam kolejną "chwilkę" i ponownie go podłączę.

Na ekranie pojawia się komunikat o podłączeniu urządzenia do portu USB3 i ... ekran nabiera życia! Przewijają się kolejne komunikaty. Dalej system uruchomia się bez problemu. Przeprowadzone później testy wskazują, że wszystko jest OK. Dziś już wiem, że ten objaw występuje nie tylko u mnie.

Bootloadery bywają różne!Upraszczając nieco zagadnienie startujący Raspberry Pi 4B może wykorzystać bootloader:

  • inicjujący uruchomiemienie pojedyńczego systemu operacyjnego Raspbian (32/64b),
  • inicjujący uruchomiemienie pojedyńczego systemu operacyjnego różnego od Raspbiana (32/64b),
  • inicjujący uruchomiemienie opcji wyboru systemu operacyjnego z listy. Jest to tzw. tryb. multiboot. Jednym z dostępnych OS'ów może być Raspbian (32/64b). Ten artykuł nie dotyczy trybu multiboot.

Jak wkrótce przekonasz się wczytany (zaktualizowany) bootloader pozostaje w pamięci RPi nawet jeśli zaczniesz używać na nim inny system.

I stan taki będzie trwał do chwili, gdy ponownie (świadomie lub nie) zmienisz używaną wersję bootloadera.

Zaznaczałem na wstępie, że niniejszy opis dotyczy Raspberry Pi 4B. Wynika to z tego, że wcześniejsze wersje RPi (ale również i CM4) wykorzystują inne procedury uruchamiające. 

W przypadku Raspberry Pi 4B kod inicjujący jest zapisamy bezpośrednio w pamięci EEPROM (4 MBit / 512 KB). I tam też jest uruchamiany.

Ponieważ artykuł ten przeznaczony jest przede wszystkim dla początkujących użytkowników Raspberry Pi powiem tylko tyle, że możliwości konfiguracyjne bootloadera są IMO dość duże.

Można je poznać czytając artykuł Fundacji RPi omawiający parametry konfiguracyjne. Uważam, że warto go przeczytać już po... zebraniu (co najmniej podstawowych) doświadczeń. 

"Macanie na oślep" może zaprowadzić na manowce! Lekiem na te "manowce" jest skorzystanie z możliwości jakie daje RPI Imager - (ratunkowa!) rekonfiguracja bootloadera.

A na wstępie domyślne ustawienia bootloadera zdają się być w zupełności wystarczające ;)

Aktualizacja bootloadera - czym?

Zacznijmy od najprostszego przypadku: Raspberry Pi z Raspbian (32b/64b). Aktualizację bootloadera możemy przeprowadzić na 3 sposoby:

  • wykorzystując opcję RPi Imagera,
  • korzystając w oknie terminala z polecenia: sudo raspi-config (Advanced Options>>Bootloader Version>>"Default" (dla domyślnych ustawień fabrycznych) lub "Latest" (dla najnowszej stabilnej wersji),
  • instalowanie określonego obrazu bootloadera (z pliku) w pamięci EEPROM RPi przy pomocy komendy: rpi-eeprom-update.