スキップしてメイン コンテンツに移動

投稿

Android TV Box X96Q Pro Plus にて a527 向けBSP 5.15カーネルを使いDebianのGNOMEをWaylandで実行:その4

今回は sunxi-fel を使い usb ブートで起動する方法です。まず、最初に用意するものは、USB Type A オス Tyep A オスケーブルです。筆者はアマゾンで購入したのですが、参考までに リンクはこちら になります。次に fel モードでブートさせるためにイヤホンジャック奥のスイッチを押すための爪楊枝などの非導電性の棒を用意してください。あとは8GB以上のUSBメモリで物理的に必要なものは以上です。 続いて u-boot をコンパイルします。 前回 とほぼ同じなのですが、USBの差し替えができるようにusbをresetするまで10秒待つようにさせます。以下、おさらいの意味も兼ねて修正・再掲しました。 mkdir -P /usr/src/h728usb chown YourUserID /usr/src/h728 git clone https://github.com/jernejsk/arm-trusted-firmware -b a523 git clone https://github.com/u-boot/u-boot -b v2025.10 cd arm-trusted-firmware make PLAT=sun55i_a523 DEBUG=0 bl31 cp build/sun55i_a523/release/bl31.bin ../u-boot cd ../u-boot.c cat > wait-for-10seconds-befoer-starting-usb.patch #include #include +#include #ifdef CONFIG_USB_STORAGE static int usb_stor_curr_dev = -1; /* current device */ @@ -610,6 +611,8 @@ if (strncmp(argv[1], "start", 5) == 0) { if (usb_started) return 0; /* Already started */ + printf("wait for 10 seconds before starting USB...\n"); + udelay...
最近の投稿

Android TV Box X96Q Pro Plus にて a527 向けBSP 5.15カーネルを使いDebianのGNOMEをWaylandで実行:その3

前回 とほぼ同じなんですが、今回はブートローダを ストックロムから抜き出したものではなく、h728(a523)向けのu-bootをコンパイルし、これを使ってSDカードからブートさせる方法です。注意点としては今回の方法だとPSCIチェッカーが通らないのですが、サスペンドおよびサスペンドからの復帰は背面イーサネットコネクタの横のボタンで可能でした。その他は変わりません。 さっそくですが、設定です。まず ATF(arm-trusted-firmware)とu-boot のビルドからです。以下のようにしました。 mkdir -P /usr/src/h728 chown YourUserID /usr/src/h728 cd /usr/src/h728 git clone https://github.com/jernejsk/arm-trusted-firmware -b a523 git clone https://github.com/u-boot/u-boot -b v2025.10 cd arm-trusted-firmware make PLAT=sun55i_a523 DEBUG=0 bl31 cp build/sun55i_a523/release/bl31.bin ../u-boot cd ../u-boot make CROSS_COMPILE=aarch64-linux-gnu- x96q_pro_plus_defconfig make CROSS_COMPILE=aarch64-linux-gnu- -j 40 これでブートローダー (u-boot-sunxi-with-spl.bin)は生成できました。続いて 前回 と同じように PhoenixCard用のイメージを作成しますが、今回のブートローダはカーネルのコンフィグを変えないとブートエラーが発生しますので、 こちらからコンフィグを変えた diana.01.tar.gz をダウンロードし以下のようにして、解凍してください。 cd /usr/src/h728/radxa/radxa.tina/repo/device/config/chips/a527 cp ~/Downloads/diana.01.tar.gz . tar xzpf diana.01.tar.gz 解凍がすんだら、ク...

Android TV Box X96Q Pro Plus にて a527 向けBSP 5.15カーネルを使いDebianのGNOMEをWaylandで実行:その2

表題の手順についてまとめておくことにしました。まず最初に、radxa社の cubie_a5e向けの tina(allwinner linux sdk)をダウンロードし、 こちらの設定ファイル を解凍し、以下の手順でPhenixCard(allwinner向けのイメージ書き込みツール、Windows用)でSDカードに書き込むことができるイメージができます。 cubie a5e 向けのradxa社のtina linux sdk (約18GB)は こちら からダウンロードできますが、megaは5ギガ毎に無料転送枠が設定されているので全部で20時間ほど4回に渡って転送を再開させるとダウンロードが完了します。 ダウンロードが終わったらビルドマシン(Linux amd64機)で以下のようにします。 sudo mkdir -p /usr/src/h728/radxa/tina.radxa/repo sudo chown -R user1000 /usr/src/h728 cd /usr/src/h728/radxa/tina.radxa #ここにダウロードしたタール玉をコピー #コピーしたら以下のようにして解凍 cd repo tar xzvpf ../t527_tina5.0_aiot_sdk.repo.tar.gz #解凍が済んだら以下のようにしてソースを展開および取得 sudo apt -y install repo git repo sync -l mv target/a527 target/a527.tina.orig git clone https://github.com/radxa/allwinner-target -b target-a527-v1.4.6 target/a527 mv device/config/chips/a527 device/config/chips/a527.tina.orig git clone https://github.com/radxa/allwinner-device -b device-a527-v1.4.6 device/config/chips/a527 mv bsp bsp.tina.orig git clone https://github.com/radxa/allwinner-bsp -b cub...

Android TV Box X96Q Pro Plus にて a527 向けBSP 5.15カーネルを使いDebianのGNOMEをWaylandで実行:その1

そもそもこの機種はCPUがAlleinnert社のh728なのですが、ネット上にはh728向けの直接的なsdkは出回っていません。とはいうものの、h728のダイは a523/a527/t527と同じだということはわかっていたのでまず初めはOrange Pi 4a(t527)向けのSDKと以前に投稿したarmbianを走らす方法でつかったu-boot with spl で起動・画面出力できるところまでは行きました。ですがこの方法だと少しいじっただけでは音声が出ない上にXサーバのアクセラレーションが効かないうえ、動画再生支援機能がないため、実用的ではありませんでした。 そこでorange pi 4aにはandroid 13sdkがあるのでこちらのカーネルを使ってなんとかならないかと試行錯誤しようとしたのですが、そもそもアンドロイドの描画システムは、 Xorg serverで使うようにはなっていないので、こちらはそうそうに諦めました。 しかし、このアンドロイドsdKにはmali gpuドライバーのソースが含まれており、gpuを描画バックエンドにした方法はありだろうと漠然と思っていましたが、アンドロイドのSDKなのでDebianのシステムを構築するようにはなっていません。 そこで今度はRadxa社のCubie a5e(a527)向けのDebian11の既成イメージがあるので、ブートローダだけをストックロムに含まれているものに入れ替えたところ、GUIおよび音声出力ができました。しかし、Xサーバはアクセラレートされておらず、また動画再生支援(cedarx)は使えない上動画を再生しようとするとシステムごと落ちてしまうので、とりあえずソースコードをダウンロードしなんとかならないかと試行錯誤したのですが、既成のイメージと同じところまで来ましたが、相変らず動画のアクセラレーションは無論、ウィンドウの描画アクセラレーションは得られないのでgnomeの動きもカクカクしており実用的ではありませんでした。 そこでふと思いついたのがPCなどではGPUを描画バックエンドにしてXserverは起動しているよなと気がついたのですが、h728/a527向けのアクセラレーション付きのXサーバは調べたところ存在しませんでした。しかし、今一度考えMali GPU DRMは使えるようだったので、カーネル...

parted を使いコマンドラインのみで パーティションを拡大

今回も表題通りなのですが、コマンドラインのみでパーティションを拡大してみました。対象は /dev/sdc とすると以下のようになります。 # 現在のパーティション情報を得る $ sudo parted /dev/sdc print Model: Generic- SD/MMC (scsi) Disk /dev/sdc: 7819MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 37.7MB 71.3MB 33.6MB fat16 boot-resource msftdata 2 71.3MB 88.1MB 16.8MB env msftdata, no_automount 3 88.1MB 155MB 67.1MB boot msftdata, no_automount 4 155MB 4057MB 3901MB ext4 rootfs msftdata, no_automount 5 4057MB 7818MB 3761MB UDISK msftdata, no_automount # 不要なパーティションを削除 $ sudo parted /dev/sdc rm 5 # パーティションを拡大(7818MB を パーティション4の終わりに指定) $ sudo parted /dev/sdc resizepart 4 7818MB # 対象パーティションはext4でフォーマットされているので resize2fsで拡大 $ sudo resize2fs /dev/sdc4 簡単なことなんですが、備忘録として挙げてみました。今回は以上です。それでは。

Android TV Box X96Q Pro Plus で main line kernel (6.17RC3) の Armbian Edgeを起動(要殻割り・はんだ付)

Gigabit Ethernet の Android TV Box で linuxをインストールできそうなものを探していたところ、HDMIとUSB3はまだ使えないのですが、u-bootとmain line カーネルのサポートがあるとのことだったのでX96Q Pro Plusという機種をポチり、 パッチ類を集め armbian をインストールしたところ、殻割り・はんだ付け作業は必要なのですが、シリアルコンソールで動作確認できたので備忘録として載せておくことにしました。 まず初めに、armbianを git clone します。 sudo mkdir -p /usr/src/armbian cd /usr/src/armbian sudo chown YourID . git clone https://github.com/armbian/build build-h728 クローンしただけの状態だとパッチ類はなにも含まれていないので、パッチを適用できるようにしておきます。以下差分です。 cat > update-sun55iw3.conf-to-kernel-v6.17-rc3.patch 続いてパッチ類をコピーしておきます。パッチ類は こちら からダウンロードしました。画面右上の”コードボタン”をクリックして、"ソースコードをダウンロード"以下からダウンロードできます。 mkdir -p /usr/src/armbian/build-h728/patch/kernel/archive/sunxi-dev-6.17 cd /usr/src/armbian/build-h728/patch/kernel/archive/sunxi-dev-6.17 # ダウンロードし解凍したパッチ類をコピー cp -a ~/patches/????-*.patch . 2025/10/14追記:イーサネットの不具合を修正するパッチについて、本稿下部に追記しました。 続いてメニューに対象機が選択できるようにしておきます。 cd /usr/src/armbian/build-h728 cat > config/boards/x96q-pro-plus.tvb これで準備はOKですのでビルドします。 ./compile.sh メニ...

git clone したレポジトリから deian kernel packages をクロスビルド

amd64 以外のアーキテクチャー用にkernel パッケージをdistccを使ってビルドしてみたのですが、思ったより処理が分散されず時間がかかりすぎていました。どうしたものかと思案したのですが、amd64機(20core 40threads)でのネィティブビルドでは3分ほどで済んだので、クロスコンパイルの方が早いかもとおもいやってみたところ、アーキテクチャによっては4分から10分ほどかかりましたが、distccをつかったネィティブビルドよりもずっと早く済んだのでメモ代わりに挙げてみることにしました。 以下、arm64, armhf, riscv64向けクロスビルドの作業内容です。 ## kernel bindeb-pkg cross compile memo sudo mkdir -p /usr/src/linux-build/linux-6.16 sudo chown -R user1000:user1000 /usr/src/linux-build cd /usr/src/linux-build/linux-6.16 git clone https://github.com/torvalds/linux -b v6.16 cp -a linux linux-6.16.bkup ## arm64 sudo dpkg --add-architecture arm64 sudo apt-get update sudo apt install crossbuild-essential-arm64 libssl-dev:arm64 export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu- cd /usr/src/linux-build/linux-6.16/linux time make distclean time make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig time make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j 40 bindeb-pkg -- real 10m53.514s user 325m48.438s sys 48m1.326s ## armhf sudo d...