AirBox の起動の仕組みと、遠隔で安全に触れる境界。SPI flash、FIT、自動フォールバック

本記事にはアフィリエイト広告(Amazon アソシエイト)が含まれます。

実測日: Sat Aug 22 2026 09:00:00 GMT+0900 (Japan Standard Time)

カーネルを更新する前に、この盤がどう起動し、失敗したらどこまで戻れるかを調べた。 遠隔でしか触れない機械では、復旧の境界を知らずに手を出すわけにはいかない。 本記事は起動の経路と、復旧の三段、着手前に固定すべきものを記録する。

起動の経路

boot ROM  -> SPI flash(Arm Trusted Firmware + U-Boot 2022.10)  -> eMMC p1 の boot.scr.emmc  -> p3(misc)の旗が normal なら emmcboot.itb(FIT、27 MB)     recovery なら p2 の recovery.itb  -> FIT の中から config-pcb<板種> を選ぶ(板種は EEPROM から)  -> カーネル 5.4.217 + DTB + initramfs  -> initramfs が p4(読み取り専用)と p5(書き込み)を overlay に組む

ブート ROM が最初に読むのは eMMC ではなく SPI flash である。 FIT はカーネル、リカバリ兼用の initramfs、約 30 枚のデバイスツリーを 1 ファイルに束ねた複合イメージで、U-Boot は EEPROM の板種から config-pcb139 のような構成名を組み立てて選ぶ。 ブートログに booting #config-pcb139 と残っていた。

rootfs は overlay である。 p4 が読み取り専用の下層、p5 が書き込みの上層で、カーネルの引数は console だけ、組み立ては initramfs が行う。

領域 大きさ 用途
eMMC p1(FAT) 117 MB /boot。FIT、boot script、SPI flash 内容の複製
eMMC p2 3 GB /recovery(recovery.itb)
eMMC p3 10 MB misc。起動モードの旗。OTA にも使う
eMMC p4 3.4 GB rootfs の下層(読み取り専用)
eMMC p5 51.7 GB rootfs の上層(書き込み。使用 11 GB)
NVMe 931.5 GB /data

復旧の三段

  • 第一段。FIT の読み込みか bootm が失敗した範囲では、boot.scr.emmc が emmcboot.itb.bak で再試行する。/boot には FIT、boot script、SPI flash 内容のそれぞれに .bak が置かれている。
  • 第二段。misc の旗を recovery にすると、p2 の recovery.itb で起動する。
  • 第三段。SD カードにイメージを書いて挿し、電源投入で eMMC 全体を書き直す。Radxa の正規手順で、シリアルコンソールで監視する。全消去を伴う。

第一段には穴がある。 bootm を通過したあとにカーネルが停止した場合、U-Boot に制御は戻らない。 記憶装置や網が上がらないまま止まった場合も同じである。 この範囲は遠隔では回復できず、物理的な作業が要る。

それでも、eMMC の内容をどれだけ壊しても SD からの全書きで戻せる。 文鎮になるのは SPI flash を壊した場合だけで、どの案でも SPI flash には書かないと決めた。

着手前に固定するもの

  • eMMC 全体(58.2 GB、5 パーティション)の dd イメージ。特に p3 と p1 の boot script は手では再現しにくい
  • /boot の現物一式(FIT、boot script、SPI flash の複製と各 .bak)
  • 盤上に残っていた BSP 一式(実行中カーネルの image と headers の deb を含む)。盤の外にも複製する
  • /opt/sophon 一式と EEPROM の情報(model と product sn)
  • 稼働中の Llama3-8B デモの構成(スクリプトと bmodel)

SD のスロットはデバイスツリー上に存在し、カードは挿さっていない。 第三段は全消去を伴うので、上のバックアップを取ることが着手の条件になる。

次に進む前に

この調査で、遠隔で安全に進められる境界は SPI flash の手前にあると判った。 FIT の差し替えは第一段の保険の内側に収まる。 次の記事では、まず Ubuntu の遅れを解消し、そのあとでカーネルの世代を 5.4 系列の中で進める。

この記事で扱った機材

Radxa Fogwise AirBox(SOPHON BM1684X)

BM1684X 搭載の小型 AI ボックス。Ubuntu 20.04 ベースの BSP で、glibc の古さが USB アクセラレータの制約になる。