快轉到主要內容

Termux:從0到1安裝Arch Linux桌面系統+一鍵啟動指令稿

智慧型手機 Termux教學 Proot-Distro Arch Linux
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

🇺🇸 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

1. 事前準備
#

要跑Arch Linux,手機需要至少4GB RAM,圖形界面至少6GB,免得系統崩潰。

儲存空間需準備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、Pulse Audio、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. 安裝yay作為AUR Helper,需要花點時間編譯
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後面的數字改成手機處理器核心數的二倍,加快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 --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 &
  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 Xwayland 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 --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
  1. 到手機桌面,新增小工具 → 選取Termux Widget,可以看到剛才寫的捷徑出現在列表中。

  2. 點選按鈕,Termux就會自動開啟登入桌面了。

延伸閱讀
#

相關文章

Termux如何安裝Debian系統 (圖形界面+中文化+音訊+一鍵啟動指令稿)
智慧型手機 Termux教學 Proot-Distro Debian
Udroid:Termux快速安裝Ubuntu系統的指令稿 (Termux Proot)
智慧型手機 Termux教學 Ubuntu Proot-Distro
Termux終端機使用教學:Android手機跑Linux指令
智慧型手機 Termux教學 Linux Termux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。