AirBox を Ubuntu 26.04 にできるか。カーネルを 5.4 に留める ION と、4 つの道の評価

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

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

手元の AirBox は Ubuntu 20.04 のまま 6 年が経っていた。 セキュリティ更新が届かない状態をどう解くか、26.04 まで進める道を調べた。 本記事は調査の記録で、実施はしていない。 結論を先に書くと、カーネルは動かせず、動かせるのはユーザー空間だけである。

いま動いているもの

部品 版 備考
カーネル 5.4.217(ベンダ版、2024 年 5 月ビルド) dpkg の管理外。FIT イメージの中にある
TPU ランタイム libsophon 0.5.0 SDK V23.10.01 相当
ffmpeg と opencv sophon-mw 0.7.1 ハードウェアコーデック対応
TPU ドライバ bmtpu、vpu、jpu の 3 本 樹外モジュール。libsophon の deb に同梱され、起動時に insmod される

カーネルのソースは全量が公開されていた。 埋め込まれた commit を GitHub で照合すると、Radxa の公開ブランチの先頭と一致し、ベンダ本流に Radxa の 5 commit(AirBox 向けのデバイスツリーなど)を重ねたものだと判った。

メモリは 16 GB のうち Linux に約 3 GB だけが渡り、残りはデバイスツリーの予約領域から ION heap として確保される。 NPU 7168 MiB、VPU 2048 MiB、VPP 3072 MiB である。 TPU ランタイムのデバイスメモリ確保は、この ION heap 経由で行われる。 この一点が、以後の判断を支配した。

カーネルを動かせない理由

ION は Android 由来のメモリアロケータで、mainline では 2020 年に削除パッチが出て 5.11 で消えた。 後継は DMA-BUF heaps だが、TPU のドライバとランタイムは ION を前提に書かれている。

ベンダの側にも動きが無い。 2026 年 5 月の SDK v26.03.01 でもカーネルは 5.4.217 のままで、rootfs も Ubuntu 20.04 のままだった。 mainline には BM1684X のデバイスツリーもドライバも存在しない。 Radxa の AirBox 向けイメージも 20.04 ベースの 2 種類だけで、22.04 以降は確認できなかった。

つまり、新しいカーネルを待つ道も、mainline に乗り換える道も無い。 ベンダのパッチを新しいカーネルへ移植する道は、ION の置き換えを含む数人月の仕事で、TPU を失う危険が高い。

ユーザー空間だけなら動かせる

26.04 の systemd 259 は、カーネル 5.4 を最低ラインとして公式に支えている(v258 で cgroup v1 の削除と同時に下限を 5.4 に定めた)。 したがって「カーネルは 5.4 のまま、ユーザー空間だけ 26.04」は成立の余地がある。

ただし現行カーネルの設定には穴があった。 cgroup v2 に必要なコントローラ、namespace、seccomp、overlayfs、BPF の syscall は有効だが、CONFIG_CGROUP_BPF と CONFIG_BPF_JIT が無効である。 26.04 の systemd は cgroup v2 だけで動き、v2 ではデバイスのアクセス制御を cgroup BPF で実装する。 この設定のままでは、systemd の DeviceAllow は効かず、Docker のコンテナ作成も失敗すると推定した(機構からの推定で、実機では未検証)。 現行の 20.04 は cgroup v1 で動いているので、今は表面化していないだけである。

4 つの道の評価

道 追加で要るもの 作業量 TPU を失う危険 後戻り 判定
a. ベンダか Radxa の新 BSP を待つ 存在しない – – – 不成立
b-1. 26.04 のコンテナ 無し 小 無し 容易 第一段
b-2. rootfs の差し替え 無し 数週間 低から中 SD からの全書きで可 条件付きの第二段
c. ベンダのパッチを新カーネルへ移植 無し 数人月 高 困難 不採用
d. mainline と樹外ドライバ 前提が無い – 確実に失う – 不採用

b-1 は、ホストをそのままにして 26.04 の arm64 コンテナに TPU のデバイスノード(/dev/bm-tpu0、/dev/bmdev-ctl、/dev/ion、/dev/vpu、/dev/jpu)と /opt/sophon を渡す形である。 Docker は既に稼働しており、ホストが cgroup v1 のままなので設定の穴は影響しない。 Radxa 自身が AirBox のアプリ群を Ubuntu ベースのコンテナとして配布しており、実績のある形でもある。 後戻りはコンテナの破棄だけで済む。

b-2 は、rootfs を 26.04 の arm64 に置き換える形で、成立条件が 3 つある。 CONFIG_CGROUP_BPF=y での同一版カーネルの再ビルドと 3 本のドライバの再ビルド、TPU のランタイム一式の 26.04 上での再ビルド、ベンダ rootfs 由来のサービスの選別移植である。 いずれも公開ソースと盤上の現物でまかなえるが、検証込みで数週間かかる。

推奨

第一段として 26.04 のコンテナを先行させる。 glibc、python、ツールチェーンの新しさはこれでほぼ満たせて、ホスト、TPU、ファン制御、稼働中のデモのどれにも触れない。 素の OS を 26.04 にすること自体が要件になった場合に限り、第二段の rootfs 差し替えへ進む。

「TPU スタックが入手できる」という前提の中身も確定した。 ドライバのソース、firmware、ランタイムのソースはすべて公開されているか盤上にある。 前提の実体は「ベンダから何かを入手すること」ではなく、「公開ソースを 26.04 向けに自前で再ビルドして検証する工数を払うこと」である。

この記事で扱った機材

Radxa Fogwise AirBox(SOPHON BM1684X)

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