🇺🇸 English version
這篇文章說明如何在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
要跑Arch Linux,手機需要至少4GB RAM,圖形界面至少6GB,免得系統崩潰。
儲存空間需準備10GB。
請先閱讀:Termux基礎教學
接著安裝Termux X11
設定硬體加速。Termux以virglrenderer達成GPU 3D硬體加速
Termux執行時通知欄下滑,按ACQUIRE WAKELOCK
使其保持在背景執行。
- 首先,安裝proot-distro、Pulse Audio、vim
1
2
| pkg update
pkg install proot-distro pulseaudio vim
|
- 安裝Arch Linux
1
| proot-distro install archlinux
|
- 下載後使用以下指令登入Arch Linux,
--user
參數表示登入指定帳戶,目前是root。--shared-tmp
則是將Termux的tmp目錄掛載至proot內部以共享X伺服器資源。
1
| proot-distro login archlinux --user root --shared-tmp
|
- 更新系統套件,輸入y確認更新。
- 要退出Proot系統,請輸入
exit
登出。
此為選擇性步驟。到Arch Linux ARM官網找一個鏡像站加快下載速度。
- 例如使用台灣國內的鏡像。用vi編輯
/etc/pacman.d/mirrorlist
:
1
| vi /etc/pacman.d/mirrorlist
|
將台灣伺服器Server = http://tw2.mirror.archlinuxarm.org
取消註解。
修改後再更新一次系統
- 變更root密碼
- 新增一般使用者
user
,將其加入wheel
群組,再修改密碼
1
2
3
| pacman -S sudo vim
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash user
passwd user
|
- 賦予一般使用者帳戶系統管理者權限。編輯
/etc/sudoers
1
2
3
4
5
| vim /etc/sudoers
# 在`root ALL=(ALL) ALL`的下一行加入以下內容:
user ALL=(ALL) ALL
|
- 接著登入user這個帳號。以後都是使用一般使用者帳號登入系統,不要使用root。
- 安裝Firefox、中文字體、SSH
1
| sudo pacman -S vim firefox networkmanager xorg xorg-server pulseaudio noto-fonts-cjk git openssh fakeroot base-devel
|
- 安裝yay作為AUR Helper,需要花點時間編譯
1
| sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
|
用vim編輯/etc/makepkg.conf
,將MAKEFLAGS="-j2"
取消註解,並將-j
後面的數字改成手機處理器核心數的二倍,加快AUR套件的編譯速度。
再來安裝桌面環境。目前Termux尚無法啟動GNOME桌面,KDE有點太吃資源了,我裝XFCE4,輕量與實用的選擇:
1
| sudo pacman -S xfce4 xfce4-goodies lightdm
|
Termux X11可以直接用手機鍵盤輸入文字,但若外接鍵盤就需要安裝中文輸入法。
- 因為沒有systemd,使用軟連結設定時區為台灣台北
1
| sudo ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
|
用vim編輯/etc/hostname
和/etc/hosts
,給主機取名,將localhost
替換掉
用vim編輯/etc/locale.gen
檔案,將zh_TW.UTF-8
取消註解。
然後生成語言設定檔
1
2
| sudo locale-gen
sudo echo "LANG=zh_TW.UTF-8" >> /etc/locale.conf
|
- 如果還是沒看到中文,在
~/.profile
加入以下參數:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 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和新酷音
1
| sudo pacman -S fcitx5-config-qt fcitx5-chewing fcitx5-qt fcitx5-gtk fcitx5-chinese-addons
|
- 用vim編輯
~/.profile
,加入以下內容:
1
2
3
4
5
6
| fcitx5 &
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
|
- 下次登入Proot後,在應用程式列表啟動Fcitx5,對右上角應用程式匣的鍵盤圖示按右鍵,新增新酷音輸入法。
此節是為了讓您認識原理之用,如果不想知道請直接跳下一節。
在安裝完成後,退出Termux再重新啟動應用程式。
以後登入Arch Linux的步驟如下。
重啟Termux。開啟Termux X11,保持在背景開啟。
接著回到Termux,執行PulseAudio、執行Termux X11、執行virgl server
1
2
3
4
5
6
7
| pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --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
1
| proot-distro login archlinux --user user --shared-tmp
|
- 依序啟動PulseAudio、Fcitx5、桌面環境XFCE4
1
2
3
4
| export DISPLAY=:0
PULSE_SERVER=tcp:127.0.0.1
fcitx5 &
dbus-launch --exit-with-session startxfce4 &
|
- 切換至Termux X11的畫面應可看到桌面環境。對Termux X11的懸浮視窗按一下,將權限撤回就能全螢幕。
一鍵跑完啟動Termux+Termux X11+virglserver的程序,自動啟動桌面環境。
安裝Termux API與Termux Widget
點選系統設定,給Termux開啟「允許顯示在其他應用程式上層」權限

重新開啟Termux,輸入以下指令建立捷徑 (不是proot-distro內)
1
2
| mkdir .shortcuts
vim .shortcuts/startproot_debian.sh
|
- 填入以下內容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #!/bin/bash
# 中止所有舊行程
killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android termux-wake-lock
# 啟動Termux X11
termux-toast "Starting 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 --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --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
|
到手機桌面,新增小工具 → 選取Termux Widget,可以看到剛才寫的捷徑出現在列表中。
點選按鈕,Termux就會自動開啟登入桌面了。