Androidのchrootでネットワーク
文鎮化したAndroidタブレットが復活したんで、またchrootでLinuxをやってみた。
前はネットワークを使う方法がわからなくて、操作ミスって文鎮化させてしまったが、理解できた。
Arch LinuxはSDカード上に展開してあるので、ファーム焼き直ししたがすぐ復活。
まず、chrootの前に。
chrootでカーネルはAndroidの物を使うので、カーネルが作る上記ディレクトリをAndroidからハードリンク。
で、chroot。
envコマンドの引数で更にコマンドを指定できるので、bashを起動。
この状態でネットワークが利用できない。
アンドロイドアプリと同じように制限されて。
権限を与えるにはidが3003のグループにユーザーを入れる必要がある。
この時点で最初からプロンプトが[#]だが、chrootしたArchのrootとは違う?ぽい。
これでネットワークが使えた。
root以外の一般ユーザもidが3003のグループに入れればネットワークが使えるようになる。
X導入までしてみたい。
DEはUbuntuがタッチパネルに力入れてたから使いやすいのかもだが、重いよなw
Xfce辺り入れようと思う。
前はネットワークを使う方法がわからなくて、操作ミスって文鎮化させてしまったが、理解できた。
Arch LinuxはSDカード上に展開してあるので、ファーム焼き直ししたがすぐ復活。
まず、chrootの前に。
# mount -o bind /dev .linux/dev
# mount -o bind /proc .linux/proc
# mount -o bind /sys .linux/sys
.linuxディレクトリにarmv7版のArch Linuxを展開してある。# mount -o bind /proc .linux/proc
# mount -o bind /sys .linux/sys
chrootでカーネルはAndroidの物を使うので、カーネルが作る上記ディレクトリをAndroidからハードリンク。
で、chroot。
# busybox busybox chroot .linux env -i /usr/bin/sh
chrootの引数でコマンドを実行できるが、[env -i]で環境変数を初期化。envコマンドの引数で更にコマンドを指定できるので、bashを起動。
この状態でネットワークが利用できない。
アンドロイドアプリと同じように制限されて。
権限を与えるにはidが3003のグループにユーザーを入れる必要がある。
# groupadd -g 3003 aid_inet
# gpasswd -a root aid_inet
前はこの時点でrootでネットワークが使えると思ってしまったのだが、# gpasswd -a root aid_inet
この時点で最初からプロンプトが[#]だが、chrootしたArchのrootとは違う?ぽい。
# su
suでrootになったらArchのrootになるぽい。これでネットワークが使えた。
root以外の一般ユーザもidが3003のグループに入れればネットワークが使えるようになる。
X導入までしてみたい。
DEはUbuntuがタッチパネルに力入れてたから使いやすいのかもだが、重いよなw
Xfce辺り入れようと思う。