Nexus 7で有線LANを使ってネットワーク接続を行なってみました
- Nexus 7
- USBホスト変換アダプタケーブル(MicroBオス-Aメス)
- USB2.0 有線LANアダプタ
Android 4.2.2 + rooted + BusyBox
サンワサプライ AD-USB18
http://www.sanwa.co.jp/product/syohin.asp?code=AD-USB18
PLANEX Wii/MacBookAir対応 USB2.0 有線LANアダプタ UE-100TX-G3
http://www.planex.co.jp/product/adapter/ue-100tx-g3/
最初は物理的に接続しても認識してくれませんでしたが、再起動を行うことで認識してくれました。
一度認識できれば次回からは自動で認識してくれるので、毎回再起動は必要ありません。
さてネットワーク環境内にDHCP Serverがあれば、そのままIP自動取得でネットワーク接続ができますが、DHCPサーバが無い場合が使用することができません。
- 有線LANアダプタを接続した状態
- 有線LANコネクタにLANケーブルを接続
有線LANはeth0として認識されているがIPは設定されていない
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root@android:/ # busybox ifconfig eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wlan0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 <strong>inet addr:192.168.1.11</strong> Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a60:6eff:feab:0000/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:44008 errors:0 dropped:202 overruns:0 frame:0 TX packets:27540 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:56069361 (53.4 MiB) TX bytes:2922243 (2.7 MiB) |
DHCP ServerからIPが割り当てられる。この状態で無線LANを無効にしても有線LANでネットワークが利用できます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
root@android:/ # busybox ifconfig eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::222:cfff:fee4:0000/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:756 (756.0 B) TX bytes:1064 (1.0 KiB) wlan0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a60:6eff:feab:0000/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:44027 errors:0 dropped:202 overruns:0 frame:0 TX packets:27548 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:56072683 (53.4 MiB) TX bytes:2923027 (2.7 MiB) |
さてDHCP Serverが無くても静的IPを割り当ててネットワークが利用できるようにコマンドを試してみました。
以下、rootでの作業になります。ちなみにwlan0は無線LAN,eth0は有線LAN
1 |
u0_a120@android:/ $ su |
- IP address設定
- Routing Table設定
- DNS設定
この場合はtoolboxのifconfigを使用する方が入力する文字数も少なくていいです(笑)
IPがClass A,B,Cの場合はnetmaskを特に指定する必要はありません。CIDRの場合はnetmaskを指定して下さい
1 |
root@android:/ # ifconfig eth0 192.168.10.12 |
1 |
root@android:/ # ifconfig eth0 172.16.1.12 netmask 255.255.255.0 |
経路情報を設定します
1 |
root@android:/ # route add default gw 192.168.1.254 dev eth0 |
DNSを設定します
1 2 |
root@android:/ # setprop net.eth0.dns1 192.168.1.1 root@android:/ # setprop net.dns1 192.168.1.1 |
それぞれの確認は
- IP確認
- Routing Table確認
- DNS確認
Busyboxがインストールされていれば busybox ifconfig eth0で確認できます
Busyboxがない場合は標準のコマンド netcfgで確認できます
1 2 3 4 5 6 7 8 |
root@android:/ # netcfg lo UP 127.0.0.1/8 0x00000049 dummy0 DOWN 0.0.0.0/0 0x00000082 sit0 DOWN 0.0.0.0/0 0x00000080 ip6tnl0 DOWN 0.0.0.0/0 0x00000080 p2p0 DOWN 0.0.0.0/0 0x00001042 wlan0 DOWN 0.0.0.0/0 0x00001002 eth0 UP 192.168.1.12/24 0x00001003 |
Busyboxがインストールされていれば busybox routeで確認できます
1 2 3 4 5 |
root@android:/ # busybox route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 192.168.10.0 * 255.255.255.0 U 0 0 0 eth0 |
1 2 3 4 |
root@android:/ # getprop | grep dns [net.dns1]: [192.168.1.1] [net.eth0.dns1]: [192.168.1.1] [net.eth0.dns2]: [] |
これでconnectbotなどは接続できたのですが、Firefoxなど一部アプリではoff lineのままで接続できませんでした。
同じ有線LANでDHCP接続した場合は問題なく使えているので静的IPの設定以外に何か設定箇所があるかもしれません。
【続報】
改めて上記方法で静的IPを割り当てたところ接続できなかったFirefoxも動作しました。
いろいろ弄っていたので勘違いしていたのかも。なおDNS設定は
1 |
root@android:/ # setprop net.dns1 192.168.1.1 |
だけで大丈夫そうです