本記事にはアフィリエイト広告(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.targetBluetooth と 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 アクセラレータの制約になる。