スマホでLinux開発環境を動かしたい人が増えています。TermuxとPRoot-Distroを使えばそれが実現できます。しかし環境構築にはいくつかのハマりポイントがあります。そこで今回は実際に詰まりやすい点と回避策をまとめました。
TermuxとPRoot-Distroの基本を押さえる
TermuxはAndroid上で動くターミナルエミュレータです。root権限なしでLinuxコマンドが使えます。さらにPRoot-Distroを使うとUbuntuやDebianを導入できます。つまりスマホが本格的な開発マシンになります。また、Alpine Linuxなど軽量ディストリも選べます。特にpkg install proot-distroだけで導入が始まります。
よくあるハマりポイントと対策
最初のハマりポイントはAndroid 12以降のProcess 9エラーです。しかしADB設定の調整で回避できます。また、X11アプリが初回起動時にフリーズすることがあります。そのためTermuxを強制終了して再起動するのが有効です。さらにSamsung端末ではOne UI 6.1以降で音声出力に問題が出ます。具体的にはPulseAudioの設定変更が必要です。加えてSystem V IPC機能がクラッシュの原因になる場合もあります。
パフォーマンスの限界と最適化
PRoot-Distroはptrace()による変換を行うため動作が遅くなります。実際にネイティブ実行と比べると大きなオーバーヘッドがあります。そのため6GB以上のRAMを搭載した端末が推奨です。また、ストレージも10GB以上の空きが必要です。特にSnapdragon 845以降のプロセッサが望ましいです。さらにvirglrendererでGPU描画を改善できます。
GUI環境とネットワークの注意点
デスクトップ環境にはXFCE4やKDEが選べます。しかしスクリーンセーバーはproot内で解除できません。したがって事前に無効化しておくべきです。また、VNCやRDPでリモート接続する方法もあります。なおDNSはAndroidのホスト設定を引き継ぎます。そのためネットワーク関連のトラブルは少ないです。
PRoot-Distroの根本的な制約を理解する
PRoot-Distroはfake rootで動作します。つまり権限が偽装されているだけで実際のrootではありません。そのためハードウェアへの直接アクセスはできません。また、FUSEマウントやSnapも利用不可です。しかし開発用途には十分な環境が構築できます。このようにTermuxとPRoot-Distroは制約を理解すれば強力なツールです。