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

投稿

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 . 続いてメニューに対象機が選択できるようにしておきます。 cd /usr/src/armbian/build-h728 cat > config/boards/x96q-pro-plus.tvb これで準備はOKですのでビルドします。 ./compile.sh メニューが出てきますので、カーネルのコンフィグを変える場合は、"Show a kernel c...
最近の投稿

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...

debootstrap を使い amd64 機から arm64 機用に Debian13 を新規インストール

ようやく Debian13/trixie がリリースされましたね。そこで古い arm64 機(OrangePi PC 2)があるので腕試しにamd64機を作業PCにして Debian13 for arm64を sd カードにインストールしてみました。なお対象機に加え、SDカードリーダとUSBシリアルコンバーターが必要です。 以下作業内容です。まず初めに必要なパッケージを作業用PCにインストールしておきます。 sudo apt-get install git bison flex gcc-aarch64-linux-gnu python3-setuptools \ swig python3-dev libssl-dev build-essential device-tree-compiler \ gcc-or1k-elf u-boot-tools qemu-utils qemu-user-static gcc-or1k-elfはOpen RISC 1000用のコンパイラで今回の OrangePi PC 2 にのみ必要なパッケージです。 つづいて OrangePi PC 2 用のu-bootをクロスコンパイルしますが、trusted-firmware-a と crust が必要になるので、こちらもクロスコンパイルしておきます。 # trusted-firmware-a のビルド cd /usr/src sudo mkdir TF-A sudo chown YourUID:YourGID TF-A cd /usr/src/TF-A git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git cd trusted-firmware-a make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=0 bl31 # 成果物 /usr/src/TF-A/trusted-firmware-a/build/sun50i_a64/release/bl31.bin # crust のビルド cd /usr/src sudo mkdir crust sudo chown YourUID:YourGID crust cd crust ...

Debian 12 を armhf 機でインストーラを起動しインストール

対象は RapsberryPI でも OrangePIでもなくNanoPI M1 という allwinner H3/armhf の 512MB メモリの機種です。作業は こちらのDebianの文書 をもとにしましたが、一部をのぞきほぼ説明通りにしたところOKでした。 なお u-boot のコンパイルは作業用PC(amd64)でクロスコンパイルしました。また、インストーラ MicroSDを作成するにあたり、USBカードリーダーを使いました。さらに、インストール対象となるインストーラとは別のMicroSDカードを用意し、それをUSBカードリーダに差し込んでUSBハブに接続し、インストーラを立ち上げてそこにインストールしました。 以下作業内容です。 # on amd64(作業用PCで) sudo apt-get install git bison flex gcc-arm-linux-gnueabihf python3-setuptools swig python3-dev libssl-dev build-essential cd /usr/src sudo mkdir u-boot sudo chown YourUID:YourGID u-boot cd u-boot git clone https://source.denx.de/u-boot/u-boot.git cd u-boot git checkout v2025.07 mkdir ../u-boot-build make CROSS_COMPILE=arm-linux-gnueabihf- O=../u-boot-build/ nanopi_m1_defconfig cd ../u-boot-build make CROSS_COMPILE=arm-linux-gnueabihf- -j20 # on amd64(作業用PCにて)インストーラ MicroSD card の作成(カードリーダ要) fdisk /dev/sdx #以下コマンドで 先頭1Gに W95 FAT32 (LBA) パーティションを作成 o n # enter # enter # enter +1G t c #残りをパーティション タイプ linux にしておく(使いませんが) n # enter # enter # e...

aptly を使ってレポジトリを作成し自前パッケージを管理する

自前パッケージを作成するだけだとレポジトリがないので依存関係のインストールに apt が使えないのでかなり面倒です。一つのパッケージならまだしも複数パッケージを管理するならなおさらです。また、ある自前パッケージに依存する別のパッケージをビルドする場合、ビルドする機材自体に自前パッケージのレポジトリがないとこれも一々手動で対応する必要があるので、これもまた面倒です。 そこで aptly を使ってレポジトリを作成したところほぼ期待通りの環境ができたので備忘録として挙げてみました。 早速設定です。最初は aptly をインストールし aptly の設定を行います。 sudo apt-get install aptly sudo mkdir /srv/aptly sudo chown -R user1000:user1000 /srv/aptly #edit ~/.aptly.conf # --snip root_dir: /srv/aptly # --snip 続いて鍵を生成します。なおビルドおよびaptlyを実行するユーザはuser1000というユーザでおこなっています。 #login as user1000 gpg --full-generate-key Please select what kind of key you want: (1) RSA and RSA # --snip Your selection? 1 RSA keys ay be between 1024 and 4096 bits long. What keysize do you want? (3072) 4096 Please specify how long the key should be valid. #--snip Key is valid for? (0) 3y Key expires at Sun 23 Jul 2028 07:59:17 PM JST Is this correct? (y/N) y Real name: Example Stable Release Key Email address: example-release@example.com Comment: 13/trixie You selected this USER-ID: ...

x11 でノートパソコンの2ボタントラックパッドの右ボタンと中ボタンエミュレーションを入れ替える

x11でのコピペは、ホイール付きのマウスを使っている場合、左ボタンで選択するだけでコピーとなり、ホイールボタンが中ボタンとして機能するのでホイールボタンをクリックすればペースト(貼り付け)できるので問題はないのですが、ノートパソコンの場合だと中ボタンのないものがあります。この場合、左右のボタンを同時に押し下げると中ボタンのエミュレーションになり、ペースト(貼り付け)できるのですが、これがかなり面倒で、windows ターミナルのように左ボタン選択でコピー、右ボタンで貼り付けできないかなと思い調べたところ、xmodmap (x11-xserver-utils パッケージに収録) で物理ボタンのボタンコード番号を入れ替えることができるとのことだったので、早速やってみました。 apt-get install x11-xserver-utils # 右ボタンと中ボタン(エミュレーション)を入れ替える xmodmap -e 'pointer = 1 3 2 4 5 6 7 8 9 10' # 確認 xmodmap -pp 筆者の場合、メインの端末は Debian + mint wm でホイール付きのマウスを使っていて、サブ端末のwindowsノートパソコンは2ボタントラックパッドで、メイン端末にssh経由でx11をフォワードしているのですが、一々コマンドをたたくのは面倒なので、~/.bashrcに以下のような記述を追加し試したところ上手くいきました。 if [ -n "$SSH_CONNECTION" ]; then export DISPLAY=`echo $SSH_CONNECTION | awk '{print $1}'`:0.0  if xhost >& /dev/null; then xmodmap -e 'pointer = 1 3 2 4 5 6 7 8 9 10' fi fi ちなみに、VcXsrvの場合、フォワードされたX11アプリでコピーしたテキストは、windowターミナルにペーストできました。その逆は、windows terminal の設定を以下のように変更することで、windows terminal から フォワードされたX11アプリにペース...

ssh x11 フォワード して Windows 上の VcXsrv で uim mozc を使う

今使っている GUIはDebianのmintデスクトップなのですが、imがibusではなくuimになっていました。なので以前投稿したibusのスクリプトはそのままでは当然使えないのでスクリプトを書き換えることで Windows上のVcXsrv で日本語入力できたので備忘録として挙げてみることにしました。 設定ですが、まずフォワード元のsshdのx11forwardを確認します。 # /etc/ssh/sshd_config X11Forwarding yes 有効になっていなければ変更してsshdを再起動してください。 つづいてフォワード元の.bashrcに以下のようにして処理を追加します。 cat >> ~/.bashrc <<EOF if [ -n "$SSH_CONNECTION" ]; then export DISPLAY=`echo $SSH_CONNECTION | awk '{print $1}'`:0.0 export GTK_IM_MODULE=uim export XMODIFIERS=@im=uim export QT_IM_MODULE=uim export NO_AT_BRIDGE=1 if xhost >& /dev/null; then xset -r 49 if test `ps auxw | grep $USER | grep -v grep | grep "uim-xim" 2> /dev/null | wc -l` -ge 1; then for pid in $(ps auxw | grep $USER | grep -v grep | grep "uim-xim" 2> /dev/null | awk '{print $2}');do disp=$(cat /proc/${pid}/environ --show-nonprinting | sed 's,\^@,\n,g' | grep DISPLAY) if [ "$disp" = "$D...