この記事では、Androidスマホ上でTermuxのproot-distroパッケージを使い、デスクトップ環境付きのArch Linux ARMを手動で設定する方法を説明します。音楽や動画の再生、デスクトップLinux向けアプリの利用もできます。
Arch Linuxはシンプルさを重視するLinuxディストリビューションで、ユーザーが必要に応じてシステムを組み上げる方針なので、インストール作業ではコマンドを手入力します。Arch Linux ARMは、本家Arch Linux(x86アーキテクチャ中心)の派生版です。x86版にある一部パッケージはARM側で見つからない場合がありますが、AURは同じように利用できます。
この記事ではArch Linuxを手動でインストールする方法を紹介します。手動設定が面倒な場合は、ワンタップインストール用スクリプトの安裝Termux Proot-distroを使ってください。
1. 事前準備#
Arch Linuxを動かすには、スマホに最低4GB RAM、グラフィカル環境では最低6GB RAMが必要です。足りないとシステムがクラッシュしやすくなります。
ストレージ容量は10GB用意してください。
私の端末:小米Poco F1, Lineage OS 20 (Android 13)
先にこちらを読んでください:Termux基礎教學
続いてTermux X11をインストールします
ハードウェアアクセラレーションを設定します。Termux以virglrenderer達成GPU 3D硬體加速
2. Proot Arch Linux基本システムをインストールする#
Termuxを実行中に通知欄を下へスワイプし、ACQUIRE WAKELOCKを押してバックグラウンドで動き続けるようにします。
- まずproot-distro、PulseAudio、vimをインストールします
pkg update
pkg install proot-distro pulseaudio vim- Arch Linuxをインストールします
proot-distro install archlinux- ダウンロード後、以下のコマンドでArch Linuxにログインします。
--userパラメータは指定したアカウントでログインすることを表し、ここではrootです。--shared-tmpはTermuxのtmpディレクトリをproot内部にマウントし、Xサーバーのリソースを共有します。
proot-distro login archlinux --user root --shared-tmp- システムパッケージを更新します。
yを入力して更新を確認します。
pacman -Syu- Prootシステムを終了するには、
exitを入力してログアウトします。
3. Arch Linuxパッケージリポジトリのミラーを変更する#
これは任意の手順です。Arch Linux ARM公式サイトでミラーを探すと、ダウンロードを高速化できます。
- 例として台湾国内のミラーを使います。viで
/etc/pacman.d/mirrorlistを編集します。
vi /etc/pacman.d/mirrorlist台湾サーバー
Server = http://tw2.mirror.archlinuxarm.orgのコメントアウトを外します。変更後、もう一度システムを更新します
pacman -Syu4. 一般ユーザーを追加する#
- rootパスワードを変更します
passwd- 一般ユーザー
userを追加し、wheelグループに追加してからパスワードを変更します
pacman -S sudo vim
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash user
passwd user- 一般ユーザーアカウントに管理者権限を付与します。
/etc/sudoersを編集します
vim /etc/sudoers
# `root ALL=(ALL) ALL`の次の行に以下を追加します:
user ALL=(ALL) ALL- 続いて
userアカウントでログインします。以後はrootではなく、一般ユーザーアカウントでシステムにログインします。
su user
cd5. デスクトップ環境とよく使うツールをインストールする#
- Firefox、中国語フォント、SSHをインストールします
sudo pacman -S vim firefox networkmanager xorg xorg-server pulseaudio noto-fonts-cjk git openssh fakeroot base-devel- AUR Helperとしてyayをインストールします。ビルドに少し時間がかかります
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -sivimで
/etc/makepkg.confを編集し、MAKEFLAGS="-j2"のコメントアウトを外します。さらに-jの後ろの数字をスマホのCPUコア数の2倍に変更すると、AURパッケージのビルドを高速化できます。次にデスクトップ環境をインストールします。現在TermuxではGNOMEデスクトップを起動できず、KDEはややリソースを食いすぎます。ここでは軽量で実用的なXFCE4を入れます。
sudo pacman -S xfce4 xfce4-goodies lightdm6. タイムゾーン、中国語、入力メソッドを設定する#
Termux X11はスマホのキーボードから直接文字入力できますが、外付けキーボードを使う場合は中国語入力メソッドのインストールが必要です。
- systemdがないため、シンボリックリンクでタイムゾーンを台湾・台北に設定します
sudo ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtimevimで
/etc/hostnameと/etc/hostsを編集し、ホスト名を付けてlocalhostを置き換えますvimで
/etc/locale.genファイルを編集し、zh_TW.UTF-8のコメントアウトを外します。その後、ロケール設定ファイルを生成します
sudo locale-gen
sudo echo "LANG=zh_TW.UTF-8" >> /etc/locale.conf- それでも中国語が表示されない場合は、
~/.profileに以下のパラメータを追加します。
LANG=zh_TW.UTF-8
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8
LC_COLLATE=zh_TW.UTF-8
LC_MONETARY=zh_TW.UTF-8
LC_MESSAGES=zh_TW.UTF-8
LC_PAPER=zh_TW.UTF-8
LC_NAME=zh_TW.UTF-8
LC_ADDRESS=zh_TW.UTF-8
LC_TELEPHONE=zh_TW.UTF-8
LC_MEASUREMENT=zh_TW.UTF-8
LC_IDENTIFICATION=zh_TW.UTF-8
LC_ALL=- Fcitx5と新酷音をインストールします
sudo pacman -S fcitx5-config-qt fcitx5-chewing fcitx5-qt fcitx5-gtk fcitx5-chinese-addons- vimで
~/.profileを編集し、以下を追加します。
fcitx5 &
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus- 次回Prootへログインしたら、アプリケーション一覧からFcitx5を起動します。右上のシステムトレイにあるキーボードアイコンを右クリックし、新酷音入力メソッドを追加します。
7. 手動でデスクトップ環境に入る方法#
この節は仕組みを理解するためのものです。知る必要がなければ次の節へ進んでください。
インストール完了後、Termuxを終了してアプリを再起動します。
以後Arch Linuxへログインする手順は以下の通りです。
Termuxを再起動します。Termux X11を開き、バックグラウンドで開いたままにします。
次にTermuxへ戻り、PulseAudio、Termux X11、virgl serverを起動します
pulseaudio --start --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
export DISPLAY=:0
termux-x11 :0 &
virgl_test_server_android &- Arch Linuxにログインします。ここでは一般アカウント
userでログインする点に注意してください
proot-distro login archlinux --user user --shared-tmp- PulseAudio、Fcitx5、XFCE4デスクトップ環境を順に起動します
export DISPLAY=:0
PULSE_SERVER=tcp:127.0.0.1
fcitx5 &
dbus-launch --exit-with-session startxfce4 &- Termux X11の画面に切り替えると、デスクトップ環境が表示されるはずです。Termux X11のフローティングウィンドウをタップし、権限を取り消すと全画面になります。
8. ワンタップ起動用デスクトップ環境スクリプトを設定する#
Termux+Termux X11+virglserverの起動手順をワンタップで実行し、デスクトップ環境を自動起動します。
Termux Widgetをインストールします
システム設定を開き、Termuxに「他のアプリの上に重ねて表示」を許可します

Termuxを開き直し、以下のコマンドでショートカットを作成します(proot-distro内ではありません)
mkdir .shortcuts
vim .shortcuts/startproot_arch.sh- 以下の内容を入力します
#!/bin/bash
# 古いプロセスをすべて終了
killall -9 termux-x11 pulseaudio virgl_test_server_android termux-wake-lock
# Termux X11を起動
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity
XDG_RUNTIME_DIR=${TMPDIR}
termux-x11 :0 -ac &
sleep 3
# PulseAudioを起動
pulseaudio --start --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
# GPUアクセラレーション用virglserverを起動
virgl_test_server_android &
# proot Arch Linuxにログインし、PulseAudio、Fcitx5、デスクトップ環境を起動
proot-distro login archlinux --user user --shared-tmp -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1; dbus-launch --exit-with-session startxfce4"- 実行権限を付与します
chmod +x .shortcuts/startproot_arch.shスマホのホーム画面でウィジェットを追加し、Termux Widgetを選択すると、先ほど作成したショートカットが一覧に表示されます。
ボタンをタップすると、Termuxが自動で開いてデスクトップへログインします。


