libraspberrypi-bin をインストールしたらコマンドが入ってくる
sudo apt install libraspberrypi-bin
インストールしてしまえば、通常通り
takuya@ubuntu:~$ sudo vcgencmd bootloader_version Dec 11 2020 11:15:17 version c3f26b6070054bca030366de2550d79ddae1207a (release) timestamp 1607685317 update-time 1615925391 capabilities 0x0000001f
rpi-eepromで状況を把握
rpi-eepromコマンドで、現況をみる
sudo apt install rpi-eeprom
EEPROMについての情報を見ることができる。
takuya@ubuntu:~$ sudo rpi-eeprom-update BCM2711 detected VL805 firmware in bootloader EEPROM BOOTLOADER: up-to-date CURRENT: 2020年 12月 11日 金曜日 11:15:17 UTC (1607685317) LATEST: 2020年 9月 3日 木曜日 12:11:43 UTC (1599135103) FW DIR: /lib/firmware/raspberrypi/bootloader/default VL805: up-to-date CURRENT: 000138a1 LATEST: 000138a1
ブートローダーについては、/lib/firmware/raspberrypi/bootloader/beta/ ディレクトリにあった。
takuya@ubuntu:~$ ls /lib/firmware/raspberrypi/bootloader/beta/ -la total 4820 drwxr-xr-x 2 root root 4096 5月 30 03:04 . drwxr-xr-x 5 root root 4096 5月 30 03:04 .. -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2020-07-16.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2020-07-31.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2020-09-03.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2020-10-02.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2020-10-28.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2020-11-24.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2020-12-11.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2021-01-05.bin -rw-r--r-- 1 root root 524288 1月 13 01:44 pieeprom-2021-01-11.bin -rw-r--r-- 1 root root 106396 1月 13 01:44 recovery.bin -rw-r--r-- 1 root root 99224 1月 13 01:44 vl805-000138a1.bin
フルアップグレード
ubuntu をいれた raspi4 をフルアップグレードするには、次のようにする
sudo apt update sudo apt full-upgrade
eeprom をアップデート
sudo rpi-eeprom-update -a
もっと最新版がほしいときは
初期設定では、default=critical
になっておりとても保守的です。epprom 壊れたら再起不能ですからね。仕方ないすよね。
せめてstable くらいにする
sudo sed -i 's/default/stable/' /etc/default/rpi-eeprom-update sudo rpi-eeprom-update
編集をせずに一時的にbeta でアップデートする
sudo rpi-eeprom-update -a -f beta sudo reboot
USBブートを有効にする。
参考資料によると、0x1 がSDカードを示し、0x41 がSDCard,then,USBらしい。右から順に読まれるそうだ、0xf14 なら、USB,SDCard,Reboot になるのですね。
Take note of the BOOT_ORDER code. The defualt code is 0xf41 and is read right to left to determine the boot order.
- 1 = Check SD card
- 4 = Check USB drive
- f = Start again
This boot order is exactly what we want. If the boot order code is anything other than 0xf41, you can change the boot configuration using this command.
export EDITOR=vim sudo -E rpi-eeprom-config --edit
これで、USBメモリ、USBHDDからのブートを使えるようになる。Ubuntuだけで完結するので良い。
BOOT_ORDERの詳細設定は、Raspiの公式ページに記載があり。
値と意味は次のようになっている。(2023-02-07確認)
Value | Mode | Description |
---|---|---|
0x0 | SD CARD DETECT | Try SD then wait for card-detect to indicate that the card has changed - deprecated now that 0xf (RESTART) is available. |
0x1 | SD CARD | SD card (or eMMC on Compute Module 4). |
0x2 | NETWORK | Network boot - See Network boot server tutorial |
0x3 | RPIBOOT | RPIBOOT - See usbboot |
0x4 | USB-MSD | USB mass storage boot - See USB mass storage boot |
0x5 | BCM-USB-MSD | USB 2.0 boot from USB Type C socket (CM4: USB type A socket on CM4IO board). |
0x6 | NVME | CM4 only: boot from an NVMe SSD connected to the PCIe interface. See NVMe boot for more details. |
0x7 | HTTP | HTTP boot over ethernet. See HTTP boot for more details. |
0xe | STOP | Stop and display error pattern. A power cycle is required to exit this state. |
0xf | RESTART | Restart from the first boot-mode in the BOOT_ORDER field i.e. loop |
よく見ると,HTTPブートやPXEブートも可能になってる。もうSDカードいらんじゃん。
ちなみに、USBブートを無効にすると・・・
USBを挿してもSDカードなしなら起動しなくなる。
ubuntu-server raspi いいね。
raspbian 使ってたけど、64bit 周りや仮想マシン・LXCコンテナ・Dockerやsnap を扱えるのと GUIがないので、ubuntu-serverのほうが、私の好みの動作をしてくれるので気に入ったかもしれない。
参考資料
https://raspberrystreet.com/learn/how-to-boot-raspberrypi-from-usb-ssd