Android の chroot を使って Debian を動かす (2)
Android の chroot を使って Debian を動かす (1) で作成した chroot の debian を設定する。 Android 上の chroot だと、ネットワークや X を動かすには chroot 環境で設定をする必要がある。
ネットワーク
/etc/resolv.conf
chroot の環境でインターネットを使用するには DNS の設定をしなければならない。 /etc/resolv.conf に Google の DNS を設定した。
nameserver 8.8.8.8
nameserver 8.8.4.4
/etc/apt/sources.list
debian のリポジトリを設定する。
echo "deb http://ftp.jp.debian.org/debian/ testing main contrib non-free" >> /etc/apt/sources.list
echo "deb http://ftp.jp.debian.org/debian testing-updates main contrib" >> /etc/apt/sources.list
これで apt でソフトウェアをインストールできる。
アカウント
root のパスワードの設定
passwd
で設定する。
一般のアカウントを追加する
chroot の環境といえども、さすがに root で使うのは良くないので、 一般のアカウントを追加する。
add user USERNAME
でアカウントを追加する。UID が Android の UID (アプリ毎に持ってる?)とかぶると まずい気がするのだが、何番の ID ならかぶらないのかわからなかったので 特に何もせずにアカウントを作成した(UID は 1000)。
このままでは権限の問題で、このアカウントを使用しているとインターネットにつながらない。
groupadd -g 3001 aid_net_bt_admin
groupadd -g 3002 aid_net_bt
groupadd -g 3003 aid_inet
groupadd -g 3004 aid_net_raw
groupadd -g 3005 aid_net_admin
groupadd -g 3006 aid_net_bw_stats
groupadd -g 3007 aid_net_bw_acct
groupadd -g 3008 aid_net_bt_stack
で Android のグループに対応するグループを chroot の環境に追加する。 とりあえず、アカウントをネットワーク関係のグループに追加する。
usermod -a -G aid_inet,aid_net_raw USERNAME
他のグループはどういう場合に使うのかは、まだ調べていないのでよくわからない。
su USERNAME
で作成したアカウントに変更する。
X
LXDE をインストールして Android の X で動かしてみる。
LXDE
chroot の方で
apt-get install lxde-core
としてインストールする。
X server
X server は Google Play で探すといくつかみつかる。 XServer XSDL をインストールした。
まず、Android の方で XServer XSDL を実行する。 LXDE を実行するにはchroot の端末で
export DISPLAY=:0.0
として環境変数を設定する。
startlxde
で XServer XSDL に LXDE が実行される。
キーボードの不具合
Bluetooth キーボードを使用しているのだが、 XServer XSDL は英語キーボードしかサポートしてないようで Android で日本語配列を指定しているとうまく動かないキーがある。