AirBox のカーネル更新で失ったものと取り戻したもの。Wi-Fi、USB オーディオの電源、再起動をまたいだ検証

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

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

カーネルを stock の SOPHON ビルドに進めると、Radxa が独自に足していたものが消える。 DTB は移植したので DTB 由来のものは残ったが、カーネル由来のものは 2 つ失われた。 本記事は、失ったものの正体と戻し方、再起動をまたいだ検証、そして残した課題を記録する。

失ったもの 1。Wi-Fi

RTL8852BE 用のドライバ rtw89 は、Radxa が backport で足していたもので、stock の設定には無い。 この盤では Wi-Fi は元から使っておらず、有線で運用しているので、戻していない。

失ったもの 2。内蔵オーディオの電源

内蔵の USB オーディオコーデックが列挙されなくなった。 DTB の audio-regulator は regulator-fixed として正しく書かれ、常時 ON と active-high の指定も持っている。 しかし stock のカーネルは CONFIG_REGULATOR 自体を持たない。 ノードを誰も要求しないので、電源の GPIO(gpiochip0 の 7 番、全体では 487 番)が low のまま残り、コーデックに電源が入らない。

GPIO 487 を high にすると、コーデックは即座に戻った。 そこで、起動時に export、direction、value を順に打つ systemd unit を置いた。

[Unit]Description=Drive the vcc_audio rail (the stock kernel has no regulator support)After=sysinit.target [Service]Type=oneshotExecStart=/bin/sh -c 'echo 487 > /sys/class/gpio/export; echo out > /sys/class/gpio/gpio487/direction; echo 1 > /sys/class/gpio/gpio487/value'RemainAfterExit=yes [Install]WantedBy=multi-user.target

Bluetooth と USB オーディオのドライバ自体は失われていない。 CONFIG_BT_HCIBTUSB と CONFIG_SND_USB_AUDIO は stock にも組み込まれている。 失われたのは電源の制御だけだった。

再起動をまたいだ検証

一連の更新を終えてから再起動した。 起動はカーネル 7.2 秒、ユーザー空間 49.6 秒である。

対象 結果
カーネルと model 新しいビルド、Radxa AICore BM1684x IO Board
libsophon と sophon-mw 0.5.1 と 0.10.0
ION の配分 NPU 7168 MiB、VPU 2048 MiB、VPP 3072 MiB
LED と PWM 三色とも認識、pwmchip0 あり
内蔵オーディオ unit が成功し、サウンドカードとして登録
bm-smi 一般ユーザーの素の実行で通る
TPU の実推論 bmrt_test が NPU 1138 us で完走
Docker 3 つのコンテナが自動で復帰
failed な unit 0

細かい点を 2 つ残す。 bmrt_test は bmodel を読み書きで開くので、読み取り権限だけでは足りない。 所有者以外で動かすときは、書き込み権限のある複製を渡す。 bm-smi を一般ユーザーで使うには、/dev/ion が root:sudo の 0664 で作られるため、利用者を sudo グループに入れる必要がある(libsophon 0.5.0 の頃から同じ挙動である)。

バックアップ

盤上の NVMe に、次を残した。

  • SPI flash の全域ダンプ(6 MiB)。実機に焼かれている内容の唯一の写し
  • 更新前の /boot 一式と /opt/sophon 一式(libsophon 0.5.0 を含む)
  • Radxa 版 DTB のソース
  • 現在稼働している組み直し済みの FIT

/boot の .bak には更新前の Radxa 版 FIT が残っている。 新しい FIT の読み込みか bootm が失敗すれば、U-Boot はここへ自動で戻る。 bootm を通過したあとの停止には働かないので、その場合は物理的な復旧が要る。

残した課題と、26.04 へ

SPI flash のブートローダは更新していない。 全域ダンプは取ったが、失敗したときの復旧には物理作業が要るので、遠隔では投入しない。

Ubuntu は 20.04.6 で止まる。 調査で確かめたとおり、カーネルは 5.4 系列から動かせないので、22.04 以降の素の OS をこの盤に入れる道は、rootfs の差し替えと自前のカーネル再ビルドを伴う数週間の仕事になる。 新しいユーザー空間が要るときは、26.04 のコンテナに TPU のデバイスノードと /opt/sophon を渡す形で得る。 ホストと TPU に触れず、後戻りはコンテナの破棄だけで済む。 この盤で LLM のデモを動かし続けながら新しい道具を使うには、それで足りる。

この記事で扱った機材

Radxa Fogwise AirBox(SOPHON BM1684X)

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