この記事では、Androidスマホにデスクトップ環境付きのUbuntuシステムをインストールする方法を紹介します。Root権限は不要です。
Termuxのproot-distroツールを使い、Ubuntuの中国語デスクトップ環境を手動で構築します。すべての設定が終わったら、記事の最後にワンタップ起動用スクリプトも用意します。
Ubuntuを手動で設定したくない場合は、community scriptsを使って自動インストールしてください。
1. 前提条件#
スマホでUbuntuのグラフィカル環境を動かすには、最低6GB RAMが必要です。
プロセッサはQualcomm Snapdragon 845以上のクラスを推奨します。
ストレージ容量は最低10GB用意してください。
私の端末:Sony Xperia 10 V,Android 13
Termuxをインストールします
Termux X11をインストールします
GPUハードウェアアクセラレーションvirglrendererを設定します
2. Ubuntu最小ファイルシステムをインストールする#
ここでいう最小ファイルシステムとは、proot-distroのメンテナーが提供しているrootfsのことです。彼らがメンテナンスしているrootfsにはLTS版がなく、その年の最新Ubuntuが常に使われます。
- Termuxを開き、Proot-distroとPulseAudioをインストールします
pkg update
termux-setup-storage
pkg install proot-distro pulseaudio vim- proot Ubuntuをインストールします
proot-distro install ubuntu- Ubuntuにログインします。
--userパラメータはrootでログインすることを表します。--shared-tmpはTermuxのtmpディレクトリをproot内部にマウントし、後でXサーバーのリソースを共有できるようにします。
proot-distro login ubuntu --user root --shared-tmp- ログイン後、まずsudo、vim、PPAツールをインストールします。インストール中にタイムゾーンを聞かれる場合があるので、数字で回答してください。
apt update
apt install sudo vim software-properties-common- Androidにはsystemdがないため、以下のコマンドでUbuntuのSnapパッケージシステムを無効にします
cat <<EOF | sudo tee /etc/apt/preferences.d/nosnap.pref
# リポジトリパッケージがSnapのインストールを引き起こさないように、
# このファイルではAPTによるsnapdのインストールを禁止します。
# 詳細: https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html
Package: snapd
Pin: release a=*
Pin-Priority: -10
EOF- 続いてMozillaのパッケージリポジトリからFirefoxをインストールします。
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt-get update
sudo apt-get install firefox-esr- prootシステムを終了するには、
exitを入力してログアウトします。
3. Ubuntuパッケージリポジトリのミラーを変更する#
これは任意の手順です。パッケージリポジトリのミラーを変更すると、パッケージのダウンロード速度を上げられます。
世界各地のパッケージリポジトリミラーはOfficial Archive Mirrors for Ubuntuを参照してください。
- 例として、以下のコマンドで
/etc/apt/sources.list内のports.ubuntu.comURLをすべて台湾NCHCのURLに置き換えます。
sudo sed -i 's/ports.ubuntu.com/free.nchc.org.tw/g' /etc/apt/sources.list- もう一度パッケージ一覧を更新します
apt update4. 一般ユーザーを作成する#
通常、rootでシステムを操作することはありません。そのため一般ユーザーアカウントを追加し、システム変更が必要なとき(aptコマンド実行など)だけsudoコマンドで一時的に権限を昇格します。
- rootパスワードを変更します
passwd- wheelとvideoグループを追加します
groupadd storage
groupadd wheel
groupadd video- 一般アカウント
userを追加し、パスワードを変更します。
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash user
passwd useruserをsudoグループに追加します。visudoコマンドを実行し、root ALL=(ALL:ALL) ALLを探して、その次の行に以下を追加します。
user ALL=(ALL:ALL) ALL- 一般ユーザーに切り替えます
su user
cd5. デスクトップ環境をインストールする#
テキストだけの画面で操作できるなら、デスクトップ環境はインストールしなくてもかまいません。
デスクトップ環境は次の3つから選びます。
XFCE#
- XFCE(Xubuntu構成)をインストールします。
keyboard layoutを聞かれたら1を入力し、lighdmを選択します
sudo apt install xubuntu-desktop- デフォルトのターミナルエミュレーターを設定します。
xfce4-terminalの番号を入力してください
sudo update-alternatives --config x-terminal-emulatordbusで起動するコマンドはstartxfce4です。後ほど説明します。
KDE#
- KDE(Kubuntu構成)をインストールします
sudo apt install kubuntu-desktop- デフォルトのターミナルエミュレーターを設定します。
konsoleの番号を入力してください
sudo update-alternatives --config x-terminal-emulatordbusでKDEを起動するコマンドはstartplasma-x11です。後ほど説明します。
GNOME(実験的)#
GNOMEをインストールします
sudo apt install ubuntu-desktopGNOMEの起動コマンド:export XDG_CURRENT_DIR=GNOME && service dbus start && gnome-shell --x11
6. タイムゾーン、中国語、入力メソッドを設定する#
- タイムゾーンを台湾・台北に設定します
sudo ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime- localesとFcitx5入力メソッドをインストールします(Fcitx5の新酷音入力メソッドを使うには外付けキーボードが必要です)
sudo apt install locales fcitx5* fonts-noto-cjkvim /etc/locale.genで編集し、繁体字中国語を探して先頭のコメント(#)を外します。
zh_TW.UTF-8 UTF-8- 繁体字中国語ロケールを生成します
locale-gen
echo "LANG=zh_TW.UTF-8" > /etc/locale.conf- VIMで
.profileを編集します
vim ~/.profile- ファイル末尾に以下を追加し、言語を繁体字中国語に設定して、入力メソッドに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をワンタップで起動し、デスクトップ環境を自動起動するショートカットを設定します。
- proot環境を終了し、Termuxも終了します
exit
exit
exitTermux Widgetをインストールします
スマホのシステム設定を開き、Termuxに「他のアプリの上に重ねて表示」を許可します

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

ボタンをタップすると、Termuxが自動で開いてデスクトップへログインします。
Termux X11の画面で戻るボタンを押すと、スマホのキーボードを呼び出せます。Ubuntuの操作にはHacker’s Keyboardの利用をおすすめします。
スマホの通知欄を下へスワイプし、Termux X11の
Preferencesを押すと、タッチ操作を模擬タッチパッドに変更できます。これでマウスを呼び出せます。
デスクトップアイコンが少し小さすぎる場合があります。Display resolution modeを
Scaledに変更し、好みに合わせて拡大縮小してください。
なお、Linuxのシステム設定で画面ロックとスクリーンセーバーを無効にしておくこともおすすめします。prootではスクリーンセーバーを解除できないためです。
外付けキーボードがある場合は、システムトレイのFcitx5アイコンをクリックします(見つからない場合は、アプリケーション一覧のfictx5をクリックして手動起動してください)。右クリックで設定を開き、新酷音入力メソッドを追加します。CTRL+スペースで注音入力に切り替えます。

Ubuntuの実行を終了するには、スマホの通知欄でExitを押して終了します。その後、TermuxとTermux X11を強制停止します。


