前回のパッチの欠点を改善したものを作った。一応patchと、jarを固めたzipをここに置いてある。
このパッチにできることは、次のとおり。
- 一度だけAndroidとPCに設定をしておけば、USBケーブルを刺したときに通信できるようになる。
- 逆USBテザリングと通常の正方向のUSBテザリングを切り替えられる。
これで晴れて快適な逆USBテザリング生活?ができるようになった。
必要な設定は
- PC
USB RNDIS (Ubuntuだとusb0)のPC側IPアドレスを固定アドレスにする。
- Android
システムプロパティを設定する。
- usb.reverse.dns1 ... DNSアドレス
- usb.reverse.gw ... PC側のusb0のアドレス
これらのプロパティのいずれかが空のとき、通常のUSBテザリングになる。
RNDISドライバさえあれば他のOSでも動くはずだが、試していない。
以下、設定方法。
ここに記述してあることは当然上記パッチをAndroidに焼かないと動作しないので、あしからず。
AndroidをUSBで接続したときに現れるusb0インターフェースのIPアドレスを固定する。
Ubuntu Desktopに標準インストールされるNetwork Managerとethtoolではこれができなかった。なぜなら、usb0のMACアドレスは接続するたびに変化する。Network Managerが前回接続したことのあるインターフェースであると認識せず、usb0に施したはずの設定が反映されない。
ということで、Network Managerは消して、/etc/network/interfaces での運用に変更する。
# Network Managerと共存する方法があるかもしれないが、私は上手く行っていない。
# apt-get remove network-manager
これは私の環境のinterfaces。usb0 以外の設定は、環境に合わせて変更する必要がある。
usb0 のPC側アドレスは 192.168.42.100 とする。192.168.42.0/24 のうち、192.168.42.129 以外なら他のアドレスでも良い。
PC: /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto usb0
iface usb0 inet static
address 192.168.42.100
netmask 255.255.255.0
Androidで次のファイルを作成する。system partitionなのでadb remountや、recovery modeで変更する。
android: /data/local.prop:
net.dns1=
usb.reverse.dns1=
usb.reverse.gw=
Androidを再起動する。
PCからadbでシステムプロパティの値を設定する。
192.168.3.254 はDNSのアドレスなので、環境に合わせて変更する。
adb shell setprop usb.reverse.dns1 192.168.3.254
adb shell setprop usb.reverse.gw 192.168.42.100
以上で設定完了。
この状態でAndroidをUSBケーブルでPCに接続し、USBテザリングを有効にしてWebブラウザ等が使用できるかを確認する。
なお、Android Marketでダウンロードできないときは、Google Talkに一度ログインするとダウンロードが開始するかもしれない。
通常の正方向のUSBテザリングに戻したいときは、usb.reverse.dns1かusb.reverse.gwを空にすれば良い。
adb shell setprop usb.reverse.gw ""
このパッチでも不便な点がある。
それは複数の異なるLAN上のPCに接続するとき、DNSとゲートウェイの設定を変更しなければならないことだ。
0 件のコメント:
コメントを投稿