(2022/Sep/23追記:以下のエントリの四苦八苦はWi-Fiルーターの設定ミスが原因でした。苦労しなくて済む設定方法については次回のエントリを参照してください)
先日とりあえずのブートを果たした手元のRaspberry Pi Zero 2 Wですが、現在その先で苦戦しております。
やりたいことは「RasPi Zero 2 W とETH/USB HUB HAT(B)をスタックし、Ubuntu Server 22.04 をSSDからブート」させることです。これが難しい。
まずUbuntu Server 22.04ですが、インストールしたままだとRasPi Zero 2 WのWiFiが使えません。WiFiを使うにはアップデートする必要があります。幸いETH/USB HUB HAT(B)にはEhternetポートがありますのでこれを自宅の有線ネットワークと接続すればUbuntu Serverをアップデートできます。先週はここまでSDカードブートでできました。
今週実験したのはUSB SSDからのブートです。
USBブートをするにはEEPROMの書き換えが必要です(と聞いています)。
RasPi のUbuntuのブートローダーはx86版と同じく/bootディレクトリに格納されています。SDカードでブートし、/boot/config.txtの最後に次の一文を追加すると、次回Boot時にEEPROMが書き換えられてSDカードが無い時にUSBに接続されているストレージデバイスからのブートをRasPiが試みます(と聞いています)。
program_usb_boot_mode=1
試してみたところ、確かにUSB SSDから起動するようになりました。ここまではOKです。
ところが、ETH/USB HUB HAT(B)に接続したUSB SSDからブートすると同HUBの有線Ethernetを認識しません。これは以下のいずれのOSでも同じでした。
- Ubuntu Server 22.04.1
- Raspberry Pi OS (22-09-06)
現象を調べてみると、いずれのOSでも同じ問題が起きていました。ETH/USB HUB HAT(B)に接続したSSDあるいはUSBメモリからブートすると、どういうわけか同HUB上のRTL8152を誤ってRTL8151と認識してしまっています。この問題はSDカードからのブートでは発生しません。
結局、SSDからブートするとWiFiを動かすために必要なアップデートができないです。
さて、どうしましょう。
とりあえずSDカードでブートするシステムをアップデートしてWiFiアクセス可能にし、その後SSDにDDで移すことが可能か考えてみます。できそうではあります。