loog
Raspberry pi 4 を USB Boot させる | 株式会社バンコム

Raspberry pi 4 を USB Boot させる

May 29, 2020

ついに来たという感じです。

ありがとう Andreas!

https://www.dropbox.com/s/ugg1mazjhvbooxj/USB%20Boot%20Commands.pdf?dl=0

やってみる

OS image を準備する

まず、
micro SD カードと、SSDの両方に、最新の Buster を焼き付けておく必要があります。

Balena Etcher などを使用して、両方に焼きましょう。

最新版は、 2020-05-27-raspios-buster-armhf ですね。

動画の公開より後の Version の image なのだけど、大丈夫かな?

外付けSSDに、Imageを焼き付ける際には、緊張します。
以前、間違って内蔵ディスクを書き換えてしまったことがあります。
その点、Balena Etcher は、外付け? SSD だけを候補にしてくれるので、安心です。

micro SD カードで起動し、更新する

ファームウェアもアップデートしています。

sudo apt update
sudo apt upgrade
sudo rpi-update
sudo reboot

rpi-eerom のインストールと設定、反映

sudo apt install rpi-eeprom

/etc/default/rpi-eeprom-update を編集する

criticalbeta に変更

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin
reboot

確認する

$ vcgencmd bootloader_version
May 15 2020 11:05:52
version 23a9f59b85f5a81bb2eec455e064ef9905216322 (release)
timestamp 1589537152

May 15th version なのを確認します。

$ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
ENABLE_SELF_UPDATE=1
DISABLE_HDMI=0
SD_BOOT_MAX_RETRIES=1
USB_MSD_BOOT_MAX_RETRIES=1
BOOT_ORDER=0xf41

BOOTORDER=0xF41 なのを確認します。

 4 isfor booting fromUSB and 1 isbooting fromthe sd card.

とのこと。 4と1ってなんだろう?

Pi 4 Bootloader Configuration

0x0 – NONE (stop with error pattern)
0x1 – SD CARD
0x2 – NETWORK
0x3 – USB device boot (usbboot)[https://github.com/raspberrypi/usbboot] – Compute Module only.
0x4 – USB mass storage boot
0xf – RESTART (loop) – start again with the first boot order field.

E.g. 0x21 means try SD first followed by network boot then stop. Whereas 0x2 would mean try network boot and then stop without trying to boot from the SD card.

https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md

なるほど。
41 を指定したから、
まず microSD boot を試み、失敗したら、USB boot に挑戦するということか。

ファイルをコピーする

SSDを刺して、マウントする

sudo mkdir /mnt/mydisk
sudo mount /dev/sda1 /mnt/mydisk

必要なファイルをコピーします

sudo cp /boot/*.elf /mnt/mydisk
sudo cp /boot/*.dat /mnt/mydisk

電源を落とし、microSSDを抜いて、電源を入れて、祈る

Shutdown, remove the SD card, power up, and pray.

祈れって言ってます。

起動後、resizing file system と出て、再起動。
無事に立ち上がりました!