メインコンテンツへスキップ

Termux:Arch Linuxデスクトップ環境をゼロから構築+ワンタップ起動スクリプト

·
カテゴリー スマートフォン Termuxチュートリアル
タグ Proot-Distro Arch Linux
目次

この記事では、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)

  1. 先にこちらを読んでください:Termux基礎教學

  2. 続いてTermux X11をインストールします

  3. ハードウェアアクセラレーションを設定します。Termux以virglrenderer達成GPU 3D硬體加速

2. Proot Arch Linux基本システムをインストールする
#

Termuxを実行中に通知欄を下へスワイプし、ACQUIRE WAKELOCKを押してバックグラウンドで動き続けるようにします。

  1. まずproot-distro、PulseAudio、vimをインストールします
pkg update
pkg install proot-distro pulseaudio vim
  1. Arch Linuxをインストールします
proot-distro install archlinux
  1. ダウンロード後、以下のコマンドでArch Linuxにログインします。--userパラメータは指定したアカウントでログインすることを表し、ここではrootです。--shared-tmpはTermuxのtmpディレクトリをproot内部にマウントし、Xサーバーのリソースを共有します。
proot-distro login archlinux --user root --shared-tmp
  1. システムパッケージを更新します。yを入力して更新を確認します。
pacman -Syu
  1. Prootシステムを終了するには、exitを入力してログアウトします。

3. Arch Linuxパッケージリポジトリのミラーを変更する
#

これは任意の手順です。Arch Linux ARM公式サイトでミラーを探すと、ダウンロードを高速化できます。

  1. 例として台湾国内のミラーを使います。viで/etc/pacman.d/mirrorlistを編集します。
vi /etc/pacman.d/mirrorlist
  1. 台湾サーバーServer = http://tw2.mirror.archlinuxarm.orgのコメントアウトを外します。

  2. 変更後、もう一度システムを更新します

pacman -Syu

4. 一般ユーザーを追加する
#

  1. rootパスワードを変更します
passwd
  1. 一般ユーザーuserを追加し、wheelグループに追加してからパスワードを変更します
pacman -S sudo vim
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash user
passwd user
  1. 一般ユーザーアカウントに管理者権限を付与します。/etc/sudoersを編集します
vim /etc/sudoers

# `root ALL=(ALL) ALL`の次の行に以下を追加します:

user ALL=(ALL) ALL
  1. 続いてuserアカウントでログインします。以後はrootではなく、一般ユーザーアカウントでシステムにログインします。
su user
cd

5. デスクトップ環境とよく使うツールをインストールする
#

  1. Firefox、中国語フォント、SSHをインストールします
sudo pacman -S vim firefox networkmanager xorg xorg-server pulseaudio noto-fonts-cjk git openssh fakeroot base-devel
  1. AUR Helperとしてyayをインストールします。ビルドに少し時間がかかります
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
  1. vimで/etc/makepkg.confを編集し、MAKEFLAGS="-j2"のコメントアウトを外します。さらに-jの後ろの数字をスマホのCPUコア数の2倍に変更すると、AURパッケージのビルドを高速化できます。

  2. 次にデスクトップ環境をインストールします。現在TermuxではGNOMEデスクトップを起動できず、KDEはややリソースを食いすぎます。ここでは軽量で実用的なXFCE4を入れます。

sudo pacman -S xfce4 xfce4-goodies lightdm

6. タイムゾーン、中国語、入力メソッドを設定する
#

Termux X11はスマホのキーボードから直接文字入力できますが、外付けキーボードを使う場合は中国語入力メソッドのインストールが必要です。

  1. systemdがないため、シンボリックリンクでタイムゾーンを台湾・台北に設定します
sudo ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
  1. vimで/etc/hostname/etc/hostsを編集し、ホスト名を付けてlocalhostを置き換えます

  2. vimで/etc/locale.genファイルを編集し、zh_TW.UTF-8のコメントアウトを外します。

  3. その後、ロケール設定ファイルを生成します

sudo locale-gen
sudo echo "LANG=zh_TW.UTF-8" >> /etc/locale.conf
  1. それでも中国語が表示されない場合は、~/.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=
  1. Fcitx5と新酷音をインストールします
sudo pacman -S fcitx5-config-qt fcitx5-chewing fcitx5-qt fcitx5-gtk fcitx5-chinese-addons
  1. vimで~/.profileを編集し、以下を追加します。
fcitx5 &
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
  1. 次回Prootへログインしたら、アプリケーション一覧からFcitx5を起動します。右上のシステムトレイにあるキーボードアイコンを右クリックし、新酷音入力メソッドを追加します。

7. 手動でデスクトップ環境に入る方法
#

この節は仕組みを理解するためのものです。知る必要がなければ次の節へ進んでください。

インストール完了後、Termuxを終了してアプリを再起動します。

以後Arch Linuxへログインする手順は以下の通りです。

  1. Termuxを再起動します。Termux X11を開き、バックグラウンドで開いたままにします。

  2. 次に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 &
  1. Arch Linuxにログインします。ここでは一般アカウントuserでログインする点に注意してください
proot-distro login archlinux --user user --shared-tmp
  1. PulseAudio、Fcitx5、XFCE4デスクトップ環境を順に起動します
export DISPLAY=:0
PULSE_SERVER=tcp:127.0.0.1
fcitx5 &
dbus-launch --exit-with-session startxfce4 &
  1. Termux X11の画面に切り替えると、デスクトップ環境が表示されるはずです。Termux X11のフローティングウィンドウをタップし、権限を取り消すと全画面になります。

8. ワンタップ起動用デスクトップ環境スクリプトを設定する
#

Termux+Termux X11+virglserverの起動手順をワンタップで実行し、デスクトップ環境を自動起動します。

  1. Termux Widgetをインストールします

  2. システム設定を開き、Termuxに「他のアプリの上に重ねて表示」を許可します

  3. Termuxを開き直し、以下のコマンドでショートカットを作成します(proot-distro内ではありません)

mkdir .shortcuts
vim .shortcuts/startproot_arch.sh
  1. 以下の内容を入力します
#!/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"
  1. 実行権限を付与します
chmod +x .shortcuts/startproot_arch.sh
  1. スマホのホーム画面でウィジェットを追加し、Termux Widgetを選択すると、先ほど作成したショートカットが一覧に表示されます。

  2. ボタンをタップすると、Termuxが自動で開いてデスクトップへログインします。

参考資料
#

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。