令和4年、2022年12月現在。Raspberry Pi 4のブートローダーは、このような画面なのですね。ふむふむ。
公式のRaspberry Pi OSや、先日リリースされたFedora 37をUSB起動するにあたり。
書き換え可能なEEPROMのブートローダーを搭載した、Raspberry Pi 4のブートローダーの更新手順を記録しておこうと思います。
目次
Raspberry Pi 4のEEPROM更新手順
使用する機材
Raspberry Pi 4はメモリー4GBを使用しましたが。8GB版も同様かと思います。更新は、microSDカードを使用しました。容量64GBで問題なく更新できました。
最低読み書き速度30MB/sが保証され、かつランダムアクセスも高速な「UHS-I U3 V30 A2」対応がお勧めです。
Raspberry Pi Imagerのインストール
microSDカードにRaspberry Pi OSを書き込み、起動したいと思います。
手持ちのPCに、Raspberry Pi Imagerをインストールしました。
公式サイトからダウンロードさせて頂きました。
https://www.raspberrypi.com/software/
Raspberry Pi OS起動用SDカード作成
EEPROMの更新は、Raspberry Pi OSを使用します。
32-bit版を選択しました。「書き込む」ボタンをクリックすると、イメージのダウンロードが開始されますが。
ホスト名、SSHの有効化、ユーザー名とパスワード、Wi-Fi設定、ロケール設定が可能のようです。(後から気づきました
こちらをあらかじめ設定しておけば、ディスプレイ・キーボード・マウスを接続せず、LANのみ接続して設定することも可能のようです。作成したmicroSDカードをRaspberry Pi 4にセットします。
Raspberry Pi OS起動
ディスプレイ・キーボード・マウスを接続して起動しました。
ターミナルでEEPROMバージョンを確認
EEPROMの更新手順は、こちらの公式ガイドに従って行いますが。
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html
資料を拝見しますと。既定の状態で、rpi-eeprom-updateというsystemdサービスがスタートして、新しいイメージがあれば、自動でマイグレートしてくれるという記述があります。
Raspberry Pi 4をネットワークに接続し、Raspberry Pi OSを最新の状態に更新後、再起動することで、最新のEEPROMに更新されるそうです。
sudo apt update
sudo apt upgrade -y
sudo reboot
Raspberry Pi OS再起動後、次のコマンドで状態を確認してみます。
sudo rpi-eeprom-update
vcgencmd bootloader_version
vcgencmd bootloader_config
ブートローダーは、バージョン1670423055が有効になっています。
VL805 EEPROMは「up to date」最新版の表記があります。
- 現在のバージョン:000138a1
- 最新バージョン:000138a1
ふむふむ。
※22.12.29追記:1台目のRaspberry Pi 4は、自動で更新されたようですが。
2台目を試したところ更新されなかったため、以下のコマンドで手動で更新しました。
こちらのコマンドで手動で更新するほうが確実かと思います。
# ブートローダーの手動更新コマンド
sudo rpi-eeprom-update -a
sudo reboot
# 再起動完了後、バージョンを再度確認
sudo rpi-eeprom-update
vcgencmd bootloader_version
vcgencmd bootloader_config
これで確かに、Raspberry Pi 4のブートローダー、EEPROMが最新版に更新されました。
更新後のブートローダーの画面で実際に確認すると、bootloaderの日付が2022/12/07と最新になっていることが確認できました。
起動順(ブート・オーダー)の確認
Raspberry Pi 4を起動するとき、microSD/USB/ネットワークのどのメディアから起動するか。その順番を決めるBOOT_ORDERの値を確認します。
公式資料を拝見しますと。
- 0xf41
- Try SD first, followed by USB-MSD then repeat (default if BOOT_ORDER is empty)
- 最初にSDカードから起動できるか確認して、続いてUSBとMicroSDを繰り返して確認とあります。
- 0xf14
- try USB first, followed by SD then repeat
- 最初にUSBから起動。続いてSDカード
このあたりの設定を有効にしておけば、microSDカードまたはUSB接続のストレージから起動できそうです。
手持ちのRaspberry Pi 4はBOOT_ORDER=0xf41のため、特に変更せずそのまま使用する予定です。
値の書き換えは、raspi-configを使用します。
sudo raspi-config
6 Advanced Options→A6 Boot Order
- B1 SD Card Boot
- B2 USB Boot
- B3 Network Boot
このような感じで、Raspberry Pi 4のEEPROMを、現状の最新の状態に更新してみました。
https://github.com/raspberrypi/firmware
GithubのRaspberry Pi firmwareを拝見しますと。
リリースノートを見ると、頻繁に細かい修正が行われている事がわかります。
microSDカードやUSBストレージ等、新しいデバイスを使用する場合や。
新しくリリースされたOSを起動する場合など。
EEPROMを更新してから起動したほうが、トラブルに悩むリスクが減らせると思います。
さて。準備ができたところで。次は、起動してみたいOSを準備しようと思います。
Raspberry Pi OS(64ビット)はこちらになります。
公式サポートされたFeodra 37はこちらです。