ARM64 8コアCPU で、メモリ16Gまで積める、Rock5B で遊んでいます。
開発元 Radxa の公式イメージが Ubuntu 20.04 ベースであり、ちょっと古いため、Ubuntu 22.04 を使うべく、ARM SBC用Linuxイメージをビルドできる Armbian を試しています。Armbian において現在 Rock5B は 公式サポートがされる状態になっています。
しかし、このビルドを試してデスクトップを使おうとしたところ、Apple MagicTrackpad 2 のドライバが含まれていない Linux Kernel となっていて、マウスとしか反応せず右クリックやスクロールが行えない状態になっていました。
そこで、Armbian で、このドライバを有効にするようにカーネルをビルドしようと思いました。
Armbian は docker でビルドできる
Armbian のイメージの作成自体は、amd64 マシンで実施できます。かつ、すべてのツールを収めたDockerコンテナ内でもビルドできるようになっています。
それには、ビルドするスクリプトの第一引数に docker とつけるだけでできました。
./compile.sh docker
userpatches ディレクトリが便利
armbian はリリースされるものと、ユーザ自身でカスタマイズできるものを、ディレクトリで分けており、ユーザ自身でカスタマイズするものは userpatches ディレクトリに集められます。最初にビルドを行うと、userpatches ディレクトリの作成が行われます。以後、userpatches ディレクトリを別途 git 管理して作業をしていました。
kernel configuration をいじる
armbian では、TUI を使って、Kernel の Configuration を設定することもできますが、毎回 TUI で操作するのは面倒です。
デフォルトというか、メンテナンスされている kernel configuration は以下のファイルで管理されています。
https://github.com/armbian/build/blob/test/config/kernel/linux-rockchip-rk3588-legacy.config
このファイルをコピーして、 userpatches/linux-rockchip-rk3588-legacy.config に配置すると、ビルド時に利用してくれることがわかりました。
これを使って、Apple Magic Trackpad 2 関連のドライバを有効化させました。
Rock5B のイメージしか作らないので、ビルドすると Rock5B がビルドされるようにする
TUI でターゲットとするSBCと、OSと、追加で入れるアプリを設定するは繰り返しするのは疲れます。 これをスクリプトで自動的に選択するには、userpatches/config-default.conf で以下のように追記すると行うことができました。
これで、Rock5Bで、Kernel 5.10(Legacy)を使って、Ubuntu 22.04、Gnome Desktop 付きでビルドされるようになります。
# userpatches/config-default.conf BOARD="rock-5b" BRANCH="legacy" RELEASE="jammy" BUILD_DESKTOP="yes" DESKTOP_ENVIRONMENT="gnome" DESKTOP_ENVIRONMENT_CONFIG_NAME="config_base" DESKTOP_APPGROUPS_SELECTED=""
最初からいくつものパッケージをインストールしておく
fan control や、Mali Driverの有効化など、毎回パッケージをインストールするのは骨が折れます。 あとは、ホームディレクトリを rsync するだけくらいに持っていきたいと思いました。
userpatches/customize-image.sh がそれをするためのシェルスクリプトであり、ここに様々なインストールを追加しました。 これで、これらがインストールされた状態のイメージができ上がります。
install -D -o root -g root -m 644 /tmp/overlay/etc_apt_keyrings/* /etc/apt/keyrings/ install -D -o root -g root -m 644 /tmp/overlay/etc_apt_source.list.d/* /etc/apt/sources.list.d/ apt-get update apt dist-upgrade -y apt install -y \ mali-g610-firmware \ rockchip-multimedia-config cd /root/ curl -OL https://github.com/pymumu/fan-control-rock5b/releases/download/1.1.0/fan-control-rock5b.1.1.0.arm64.deb apt install ./fan-control-rock5b.1.1.0.arm64.deb systemctl enable fan-control apt install -y \ fcitx5-frontend-qt5 \ tabby-terminal \ code \ chromium-browser \ fcitx5 \ fcitx5-mozc \ fcitx5-config-qt \ curl \ unar \ neovim \ gh \ python3 \ python3-pip \ pipx \ gnome-tweaks \ libinput-tools \ fonts-noto-core \ fonts-noto-cjk \ fonts-noto-extra \ fonts-noto-ui-core \ fonts-noto-ui-extra \ fonts-noto-color-emoji \ fonts-noto-mono \ gimp \ inkscape \ language-pack-ja \ language-pack-ja-base \ language-pack-gnome-ja \ language-pack-gnome-ja-base \ eog \ fcitx5-frontend-gtk2 \ fcitx5-frontend-gtk3 \ fcitx5-frontend-gtk4 \ fcitx5-frontend-qt5 \ language-pack-gnome-ja \ language-pack-ja \ shutter \ vim
しかし Linux Desktop 力が足りなくて挫折
Rock5B のGUI体験は非常に良いのですが、私自身のLinux Desktop力が足りなくて、結局サーバでしか使わなくなってしまい、それなら公式イメージでいいじゃんとなってしまいました。
普段は Ryzen2700(8コア16スレッド)、メモリ16G、GTX1080 の強めのマシンを Ubuntu 22.10、Gnome、X11 で使っているのですが、これの体験が良すぎて、これと同等の Ubuntu Desktop のカスタマイズ(22.04、Gnome、xwayland)ができず、挫折しました(最後の挫折ポイントは、Ubuntu の Dark モードがGnomeにちゃんと当たらなくて辛い、でした)。
しかし、ビルドするところまでは Armbian の体験は非常に良かったので、これからも暇を見つけてトライしていこうと思います。
なお、自分のカスタマイズした userpatches ディレクトリは以下に上げてあります。