Android TV Box Transpeed 8k618-t VFD対応 (kernel 6.12.11)
Transpeed 8k618-tは電源ランプが無いので、前面パネルの時計表示(7セグメントLED)が点灯していないと、
外見上は、電源が入っているのかどうか分からない。
これまでNickAlilovic氏のOSイメージ
https://github.com/NickAlilovic/build
ブランチ名 V20240726 (Kernel 6.7.12) を使っていたが、今回はv20250306 (Kernel 6.12.11) がリリースされていたので、
動作確認を行っていた。とはいえ、メインはOpenVFDが動作するかの確認。
結果は残念ながら、openvfd_drv.c のコンパイルでエラーが発生。私ではソース修正を行える知識もなく、
改めて、Kernel 6.12.11 で動作可能な、OpenVFDに似たソフトを探して見る事にした。
OSイメージの入手先
Transpeed 8k618-t のOSイメージを配布されている。(配布タイミングは不定期)
現在、自分が知っている唯一のサイトである。。
NickAlilovic /build
https://github.com/NickAlilovic/build
https://github.com/NickAlilovic/build/releases
〇 本体
Armbian-unofficial_25.05.0-trunk_Transpeed-8k618-t_bookworm_edge_6.12.11_server.img.xz
〇 kernel-header
linux-headers-edge-sunxi64_25.05.0-trunk_arm64__6.12.11-S62b2-Da873-P8a5c-C1abcH02eb-HK01ba-Vc222-B9bbb-R448a.deb
githubのリリースより上記2つをダウンロードして作業を進めいくが、モジュールのロードテスト時に下記エラーが発生
# insmod /home/dev/WORK/tm16xx-display/tm16xx.ko insmod: ERROR: could not insert module /home/dev/WORK/tm16xx-display/tm16xx.ko: Invalid module format
googleっても解決できそうに無かったので、本体をビルドする事に・・・・
インストール
〇 OSイメージの再作成
当該機でリビルドすると、かなり時間を要するために以前作成したVM環境でクロスコンパイルする。
参考 android tv box transpeed 8k618-t 構築メモ
今回はOpenVFDソフトは利用しないので改修箇所はないので、サクサクとコマンドを叩いていく。
https://github.com/NickAlilovic/build
$ git clone -b v20250306 https://github.com/NickAlilovic/build.git $ cd build $ ./compile.sh build \ BOARD=transpeed-8k618-t \ BRANCH=edge \ BUILD_DESKTOP=no \ BUILD_MINIMAL=no \ KERNEL_CONFIGURE=no \ RELEASE=bookworm \ KERNEL_BTF=no
リビルドが完了すると、outputディレクトリに以下のファイルが作成される。
output/ |-- debs | |-- armbian-bsp-cli-transpeed-8k618-t-edge_25.05.0-trunk_arm64__1-PCb6af-Vf6a0-H01ba-B6e44-R89c9.deb | |-- armbian-firmware_25.05.0-trunk_all__1-SA4050-B6c7f-R448a.deb | |-- armbian-plymouth-theme_25.05.0-trunk_all__1-Bfe25-R448a.deb | |-- armbian-zsh_25.05.0-trunk_all__1-SAbfee-B6e0d-R448a.deb | |-- extra | | `-- bookworm-utils | | `-- base-files_25.05.0-trunk-12.4+deb12u10-bookworm_arm64__1-bookworm-1armbian1-Baa17-U12.4--deb12u10-R55fa.deb | |-- linux-dtb-edge-sunxi64_25.05.0-trunk_arm64__6.12.11-S62b2-Da873-P065a-C1abcHec47-HK01ba-Vc222-B9bbb-R448a.deb | |-- linux-headers-edge-sunxi64_25.05.0-trunk_arm64__6.12.11-S62b2-Da873-P065a-C1abcHec47-HK01ba-Vc222-B9bbb-R448a.deb | |-- linux-image-edge-sunxi64_25.05.0-trunk_arm64__6.12.11-S62b2-Da873-P065a-C1abcHec47-HK01ba-Vc222-B9bbb-R448a.deb | |-- linux-libc-dev-edge-sunxi64_25.05.0-trunk_arm64__6.12.11-S62b2-Da873-P065a-C1abcHec47-HK01ba-Vc222-B9bbb-R448a.deb | `-- linux-u-boot-transpeed-8k618-t-edge_25.05.0-trunk_arm64__2025.01-S6d41-P65b3-H8869-Va3a9-Bb703-R448a.deb |-- images | |-- Armbian-unofficial_25.05.0-trunk_Transpeed-8k618-t_bookworm_edge_6.12.11.img | |-- Armbian-unofficial_25.05.0-trunk_Transpeed-8k618-t_bookworm_edge_6.12.11.img.sha | `-- Armbian-unofficial_25.05.0-trunk_Transpeed-8k618-t_bookworm_edge_6.12.11.img.txt |-- info |-- logs | |-- archive | | |-- log-build-0f50b462-2981-4dfb-a065-394080307e6e.log.ans.zst | | |-- log-build-0f50b462-2981-4dfb-a065-394080307e6e.log.zst | | `-- summary-build-0f50b462-2981-4dfb-a065-394080307e6e.md.zst | |-- log-build-882215fb-c1fb-4ca6-9adf-1063d85f4fd1.log | |-- log-build-882215fb-c1fb-4ca6-9adf-1063d85f4fd1.log.ans | `-- summary-build-882215fb-c1fb-4ca6-9adf-1063d85f4fd1.md `-- packages-hashed |-- armbian-bsp-cli-transpeed-8k618-t-edge_1-PCb6af-Vf6a0-H01ba-B6e44-R89c9_arm64.tar |-- extra | `-- bookworm-utils |-- global `-- kernel-sunxi64-edge_6.12.11-S62b2-Da873-P065a-C1abcHec47-HK01ba-Vc222-B9bbb-R448a_arm64.tar
今回は、
・ images/Armbian-unofficial_25.05.0-trunk_Transpeed-8k618-t_bookworm_edge_6.12.11.img ・ debs/linux-headers-edge-sunxi64_25.05.0-trunk_arm64__6.12.11-S62b2-Da873-P065a-C1abcHec47-HK01ba-Vc222-B9bbb-R448a.deb
を利用する。
〇 Transpeed 8k618-t OS起動
前述で作成したイメージファイルをSDカードに焼き、本体SDスロットに挿して電源ON。
起動すると初期設定スクリプトが動作するので入力して完了させる。
(1) kernelのバージョンがアップデートされないようにしておく
dpkg –get-selections | grep hold
にて確認したが、初期設定ではholdされていない模様
[方法1] armbian-config にて設定
armbian-config を実行して、
System → Updates → 「SY202 Disable Armbian firmware upgrades」を実行。
実行完了したら、<Back> → <Back> → <Exit>
# dpkg –get-selections | grep hold
linux-dtb-edge-sunxi64 hold linux-image-edge-sunxi64 hold
[方法2] apt-mark hold で手動設定
# apt-mark hold linux-dtb-edge-sunxi64
# apt-mark hold linux-image-edge-sunxi64
# dpkg –get-selections | grep hold
linux-dtb-edge-sunxi64 hold linux-image-edge-sunxi64 hold
(2) armbian-upgrade で(kernel系以外を)最新へ
# armbian-upgrade
(3) カーネルヘッダーのインストール
※ 事前にクロスコンパイル環境からファイルを転送しておく。
# apt install ./linux-headers-edge-sunxi64_25.05.0-trunk_arm64__6.12.11-S62b2-Da873-P065a-C1abcHec47-HK01ba-Vc222-B9bbb-R448a.deb
(4) ソフトダウンロードとデバイスツリー情報の作成
jefflessard / tm16xx-display
https://github.com/jefflessard/tm16xx-display
手順は、README.mdに書かれているので、その通りに実行する
$ cd
$ git clone https://github.com/jefflessard/tm16xx-display.git
$ cd tm16xx-display
$ ls devices/
当該機種名.dtso (transpeed-8k618-t-allwinner-h6.dtso)を確認。
$ make transpeed-8k618-t-allwinner-h6.dtbo
# mkdir /boot/overlay-user/
# cp -i release/transpeed-8k618-t-allwinner-h6.dtbo /boot/overlay-user/tm16xx.dtbo
# vi /boot/armbianEnv.txt
以下を追加。(場所は適当)
user_overlays=tm16xx
# shutdown -r now
(5) カーネルモジュール作成とサービス起動
$ cd tm16xx-display
$ make module
# insmod ./tm16xx.ko
(VFD 前面パネルが 88:88 で表示される)
# lsmod | grep tm
tm16xx 28672 0
# rmmod tm16xx
(VFD 前面パネルが 消灯)
# make module-install
# make service-install
display.service が起動して、VFD 前面パネルで時刻表示される。
以上で終了
残課題
- カーネルのバージョンアップのタイミング。
Android TV Boxは市販されているPCやサーバーと違い、利用者がカスタマイズ出来るように設計されていない。
よって、Armbianのメインフレームで提供するKernelを適用すると、再起動後に何らかの不具合が発生する可能性大。
HDMIや無線LAN/優先LAN、BLueToothなどのドライバがメインフレームでの提供対象外だからである。
ここはNickAlilovic氏のリリース状況に応じて、対応する事になるだろう。
- カーネルのバージョンアップ方法
現状、リビルドすればoutputディレクトリに、パッケージ debファイルが出来上がる。
これを1台1台ファイル転送してアップデートして適用するは面倒くさい。
専用のレポジトリーサーバーを立ち上げて、aptコマンドでアップデート出来たら良さそう。(あくまで構想)