快轉到主要內容

Android手機免Root安裝Ubuntu系統 (Termux圖形桌面+中文化+音訊+一鍵啟動指令稿)

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

🇺🇸 English version

這篇文章介紹如何在Android手機安裝帶桌面環境的Ubuntu系統,免Root權限。

Ubuntu + KDE Plasma on Android

我們將利用Termux的proot-distro工具,手動建立Ubuntu中文桌面環境。在一切就緒後,文末我會附上一鍵啟動的指令稿。

如果您不想手動設定Ubuntu,請改用 社群製作的指令稿自動安裝。

1. 前置條件
#

手機要跑Ubuntu圖形界面至少需要6GB RAM。

處理器建議Qualcomm Snapdragon 845以上等級。

儲存空間需準備至少10GB。

我的裝置:Sony Xperia 10 V,Android 13

  1. 安裝 Termux

  2. 安裝 Termux X11

  3. 設定GPU硬體加速 virglrenderer

2. 安裝Ubuntu最小檔案系統
#

這裡的最小檔案系統指的是proot-distro維護者提供的rootfs。他們維護的rootfs沒有LTS版本,一律是當年度最新版的Ubuntu。

  1. 開啟Termux,安裝Proot-distro和PulseAudio
pkg update
termux-setup-storage
pkg install proot-distro pulseaudio vim
  1. 安裝proot Ubuntu
proot-distro install ubuntu
  1. 登入Ubuntu。--user參數表示登入root。--shared-tmp則是將Termux的tmp目錄掛載至proot內部,以便日後共享X伺服器資源。
proot-distro login ubuntu --user root --shared-tmp
  1. 登入後先安裝sudo、vim、PPA工具。安裝的時候可能會問您的時區,輸入數字回答。
apt update
apt install sudo vim software-properties-common
  1. 因為Android沒有Systemd,請輸入以下指令停用Ubuntu的Snap套件系統
cat <<EOF | sudo tee /etc/apt/preferences.d/nosnap.pref
# To prevent repository packages from triggering the installation of Snap,
# this file forbids snapd from being installed by APT.
# For more information: https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html
Package: snapd
Pin: release a=*
Pin-Priority: -10
EOF
  1. 再透過Mozilla的套件庫安裝Firefox:
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt-get update
sudo apt-get install firefox-esr
  1. 要退出proot系統,請輸入exit登出。

3. 更換Ubuntu套件庫鏡像站
#

此為選擇性步驟。更改套件庫鏡像站可加快套件下載速度。

全球套件庫鏡像站請見 Official Archive Mirrors for Ubuntu

  1. 例如,使用以下指令,將/etc/apt/sources.listports.ubuntu.com網址全部替換成台灣國網中心的網址:
sudo sed -i 's/ports.ubuntu.com/free.nchc.org.tw/g' /etc/apt/sources.list
  1. 再更新套件列表
apt update

4. 建立一般使用者
#

通常我們不會用root操作系統,為此需要新增一般使用者帳戶,並在需要變更系統時(例如執行apt指令)加上sudo指令暫時提昇權限。

  1. 修改root密碼
passwd
  1. 新增wheel和video群組
groupadd storage
groupadd wheel
groupadd video
  1. 新增一般帳戶"user",並修改密碼。
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash user
passwd user
  1. 將user加入sudo群組。執行visudo指令,找到root ALL=(ALL:ALL) ALL,在下一行加入以下內容:
user ALL=(ALL:ALL) ALL
  1. 切換成一般使用者
su user
cd

5. 安裝桌面環境
#

如果您會操作純文字界面,那麼桌面環境可以不用裝。

桌面環境三選一。

XFCE
#

  1. 安裝XFCE(Xubuntu的配置)。出現keyboard layout的問題的時候輸入1,並選取使用lighdm
sudo apt install xubuntu-desktop
  1. 設定預設終端機模擬器,輸入xfce4-terminal的編號
sudo update-alternatives --config x-terminal-emulator

用dbus啟動的指令是為startxfce4。下面會談到。

KDE
#

  1. 安裝KDE(Kubuntu的配置)
sudo apt install kubuntu-desktop
  1. 設定預設終端機模擬器,輸入konsole的編號
sudo update-alternatives --config x-terminal-emulator

用dbus啟動KDE的指令是為startplasma-x11。下面會談到。

GNOME (實驗性)
#

安裝GNOME

sudo apt install ubuntu-desktop

啟動GNOME的指令:export XDG_CURRENT_DIR=GNOME && service dbus start && gnome-shell --x11

6. 設定時區、中文、輸入法
#

  1. 設定時區為台灣台北
sudo ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
  1. 安裝locales和Fcitx5輸入法(Fcitx5的新酷音輸入法需要外接鍵盤才能用)
sudo apt install locales fcitx5* fonts-noto-cjk
  1. 編輯:vim /etc/locale.gen,找到正體中文,去除前面的註解(#):
zh_TW.UTF-8 UTF-8
  1. 生成正體中文語言
locale-gen
echo "LANG=zh_TW.UTF-8" > /etc/locale.conf
  1. 用VIM編輯.profile
vim ~/.profile
  1. 在檔案尾端加入以下內容,設定語言為正體中文,並指定輸入法使用Fcitx5
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=

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

fcitx5 &

7. 設定一鍵啟動桌面環境指令稿
#

此處我們會設定採用一鍵啟動Termux、Termux X11、virglserver、XFCE4的捷徑,自動啟動桌面環境。

  1. 退出proot環境,退出Termux
exit
exit
exit
  1. 安裝 Termux Widget

  2. 開啟手機系統設定,給Termux開啟「允許顯示在其他應用程式上層」權限

  3. 重新開啟Termux,輸入以下指令建立捷徑

mkdir .shortcuts
vim .shortcuts/startproot_ubuntu.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 Ubuntu並啟動桌面環境,注意最後面的startxfce4是用於啟動XFCE4桌面的。
proot-distro login ubuntu --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_ubuntu.sh
  1. 到手機桌面,新增小工具 → 選取Termux Widget,可以看到剛才寫的捷徑出現在列表中。

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

  3. 在Termux X11的界面按上一頁就會喚醒手機鍵盤,這裡我推薦用 Hacker’s Keyboard方便操作Ubuntu。

  4. 手機通知欄滑下來,按Termux X11的Preferences,可將觸控改為模擬觸控板,這樣就能叫出滑鼠。

  5. 桌面圖示可能有點太小了,將Display resolution mode改為Scaled,依照喜好縮放。

  6. 另外建議在Linux系統設定停用螢幕鎖定和螢幕保護程式,因為proot無法解鎖螢幕保護。

  7. 有外接鍵盤情況下,點選系統匣的Fcitx5圖示(若沒看到,請點應用程式列表的fictx5手動啟動),右鍵按設定,加入新酷音輸入法。並按CTRL+空白鍵切換注音輸入。

  8. 若要終止執行Ubuntu,在手機通知欄按Exit退出。再強制停止Termux與Termux X11。

延伸閱讀
#

相關文章

Udroid:Termux快速安裝Ubuntu系統的指令稿 (Termux Proot)
智慧型手機 Termux教學 Ubuntu Proot-Distro
Termux如何安裝Debian系統 (圖形界面+中文化+音訊+一鍵啟動指令稿)
智慧型手機 Termux教學 Proot-Distro Debian
Termux:從0到1安裝Arch Linux桌面系統+一鍵啟動指令稿
智慧型手機 Termux教學 Proot-Distro Arch Linux

留言板

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

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

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