追記
現行のRaspberry Pi OS ではファームウェアを更新さえしていれば下記の対応は不要。また、Ubuntu 20.10も同様。残念ながら20.04LTSは非対応。
RaspberryPi 4はブートの処理がこれまでのものと変わったためにUSBブートができなかったのですが、6月15日に正式公開されたブートローダーでついに対応しました。
が、6/24時点では単純にブートローダーを更新しただけではうまくいかなかったので備忘録。
ブートローダー更新
まずはブートローダーの更新から。
sudo apt update && sudo apt full-upgrade
でまずブートローダーの最新のファイルを取得します。
rpi-eeprom-update
ファイルを開いてステータスを critical
から stable
に。
コマンド: sudo nano /etc/default/rpi-eeprom-update
FIRMWARE_RELEASE_STATUS="critical"
→ FIRMWARE_RELEASE_STATUS="stable"
変更したら rpi-eeprom-update
コマンドでブートローダーを更新。
コマンド: sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-06-15.bin
これでブートローダーがUSBブート対応版になりました。
USBメモリーにOS書き込み
おそらく今SDカードで動いているものをddコマンドなりでUSBメモリーに書き込めば正常に起動すると思いますが、今回は新規にRaspberryPi OS(Raspbianからリブランドしたようで)をUSBメモリーに書き込みます。
USBメモリーに書き込んだらRaspberryPi 4に差し込んで起動してみると、
start4.elf is not compatible
こんなエラーメッセージで起動しないと思います。(6/25時点で提供されているものの場合)
どうやら現時点で提供されているRaspberryPi OSのboot領域にある必要なファイルがまだUSBブートに対応していないのが理由のようです。
なので最新のファイルを取得して書き換える必要があります。
下記のGitHubからdat形式ファイルとelf形式ファイルをダウンロード。
ダウンロードしたファイルをすべてUSBメモリーのbootパーティション領域に上書き保存。
これでUSBブートが行われるようになるはず。
おそらく今後はOSイメージ内のファイルがUSBブート対応版になると思うのでこの方法は一過性のものとなるとは思いますが。