loog

Raspberry Pi 4 Model B USB Boot(公式)

June 17, 2021

Raspberry Pi 4 Model B もいよいよ正式に USB Boot できるようになったようなので試してみました。

Jetson シリーズもSSDで安定動作しますので、やはり RPI4 もSSDで動かしたいところです。

公式ドキュメント

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

Boot loader の Version 確認

Boot loader の特定の Version から可能になった・・・はずですが、肝心の Version の境目がわかりません。

少なくとも、下記の Sep 3 2020 13:11:43 は NG です。

$ vcgencmd bootloader_version
Sep  3 2020 13:11:43
version c305221a6d7e532693cc7ff57fddfc8649def167 (release)
timestamp 1599135103
update-time 0
capabilities 0x00000000

rpi-eeprom-update コマンド

Boot loader の Version up には、rpi-eeprom-update コマンドを使用します。

コマンドヘルプ

$ sudo rpi-eeprom-update -h

Options:
   -a Automatically install bootloader and USB (VLI) EEPROM updates.
   -A Specify which type of EEPROM to automatically update (vl805 or bootloader)
   -b Outputs the path that pending EEPROM updates will be written to.
   -d Use the default bootloader config, or if a file is specified using the -f
      flag use the config in that file. This option only applies when a
      bootloader EEPROM update is needed; if the bootloader EEPROM is up to date
      then its config will not be changed.
   -f Install the given file instead of the latest applicable update
      Ignores the FREEZE_VERSION flag in bootloader and is intended for manual
      firmware updates.
   -h Display help text and exit
   -i Ignore package checksums - for rpi-eeprom developers.
   -j Write status information using JSON notation (requires -m option)
   -l Returns the full path to the latest available EEPROM image file according
      to the FIRMWARE_RELEASE_STATUS and FIRMWARE_IMAGE_DIR settings.
   -m Write status information to the given file when run without -a or -f
   -r Removes temporary EEPROM update files from the boot partition. This also
      cancels a pending update.
   -s Skips silent, automatic upgrades for default releases if the current
      bootloader release is newer than the version specified by
      BOOTLOADER_AUTO_UPDATE_MIN_VERSION 1599135103
   -u Install the specified VL805 (USB EEPROM) image file.

アップデート可能かどうかチェック

$ sudo rpi-eeprom-update
*** UPDATE AVAILABLE ***
BOOTLOADER: update available
   CURRENT: 2020年  9月  3日 木曜日 12:11:43 UTC (1599135103)
    LATEST: 2021年  4月 29日 木曜日 16:11:25 UTC (1619712685)
   RELEASE: default (/lib/firmware/raspberrypi/bootloader/default)
            Use raspi-config to change the release.

  VL805_FW: Dedicated VL805 EEPROM
     VL805: up to date
   CURRENT: 000138a1
    LATEST: 000138a1

UPDATE AVAILABLE と出ました。

いざ更新!

$ sudo rpi-eeprom-update -a
*** INSTALLING EEPROM UPDATES ***

BOOTLOADER: update available
   CURRENT: 2020年  9月  3日 木曜日 12:11:43 UTC (1599135103)
    LATEST: 2021年  4月 29日 木曜日 16:11:25 UTC (1619712685)
   RELEASE: default (/lib/firmware/raspberrypi/bootloader/default)
            Use raspi-config to change the release.

  VL805_FW: Dedicated VL805 EEPROM
     VL805: up to date
   CURRENT: 000138a1
    LATEST: 000138a1
   CURRENT: 2020年  9月  3日 木曜日 12:11:43 UTC (1599135103)
    UPDATE: 2021年  4月 29日 木曜日 16:11:25 UTC (1619712685)
    BOOTFS: /boot

EEPROM updates pending. Please reboot to apply the update.
To cancel a pending update run "sudo rpi-eeprom-update -r".

まだ戻れる!

ペンディング状態なので、sudo rpi-eeprom-update -r でキャンセルできます。

reboot すると確定するようです。

再移動とバージョン確認

$ sudo reboot

$ vcgencmd bootloader_version
Apr 29 2021 17:11:25
version c2f8c388c4ee37ad709ace403467d163e8dd91ce (release)
timestamp 1619712685
update-time 1623808414
capabilities 0x0000001f

というわけで、ブートローダーが更新されました。

Boot order

Raspy-config から、boot order を設定できます。

Raspberry Pi Software Configuration Tool (raspi-config)
B1 SD Card Boot Boot from SD Card if available, otherwise boot from USB                                    
B2 USB Boot     Boot from USB if available, otherwise boot from SD Card
B3 Network Boot Boot from network if SD card boot fails 

めでたく、USB Boot が現れています。

SSD に OS を焼き付ける

ケーブルの問題

少し調べてみると、USB3 – SSD のケーブルで、相性的な問題が生じるようです。

そこで、動作実績の有る下記のケーブルを購入しました。

https://www.amazon.co.jp/gp/product/B08X6NCHF5/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

先に書きますが、動くけれども安定しない、、、という結果でした。
おそらく、電力不足です。

焼き付ける

Raspberry pi imager で OS の ISO を SSD に焼き付けます。

初期化及びフォーマットするにあたっては、**ケーブルでは私のPCでは電力供給が安定しないようだったので、電力供給式のUSBアダプターで接続したうえでインストールしました。

起動

OSインストール後、ケーブルを戻し、起動しました。

  1. MBRで設定
  2. Erase で Fat32 にフォーマット
  3. 一旦抜き差し(これをしないと Write error がでました)
  4. OS を選択して焼付け
  5. SSDをUSBで接続して起動(micro-sdなし)

起動はしました。

だが、キーボードの入力がカクカクする。

そこで、電力供給式のUSBアダプターに変更したところ、正常に動作する。
やはり、電力が足りていない。