Intel Edisonはチップ上にデュアルチャネルのWi-Fiモジュールを内蔵しているが、Wifi APが利用できない場面もある。このような場合、USB Ethernetアダプタを用いることで有線LAN経由でネットワークに接続することができる。
動作検証したEdison
borad | Arduino Board |
---|---|
/etc/version | weekly-146 |
uname -r | 3.10.17-poky-edison+ |
Edison起動直後の状態
wlan0(内蔵Wi-fi)はネットワークに接続していない。
root@edison01:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 78:4b:87:a0:18:fd brd ff:ff:ff:ff:ff:ff
inet6 fe80::7a4b:87ff:fea0:18fd/64 scope link
valid_lft forever preferred_lft forever
4: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 02:00:86:f0:02:f1 brd ff:ff:ff:ff:ff:ff
USBデバイスは何も接続されていない。
root@edison01:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
USB Ethernetアダプタの挿入
USB Ethernetアダプタに給電する必要があるため、ホストモードでUSBを動作させなければならない。なお今回はUSB Ethernetアダプタとして、手元にあったLogitecの3Port HUB + Ethernet AdapterのLAN-TX/U2H3Sを利用した。
Arduino BoradのUSB-AにLAN-TX/U2H3Sを接続すると、何もせずともUSB Ethernetデバイスとして認識される。
root@edison01:~# lsusb
Bus 001 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0b95:772a ASIX Electronics Corp. AX88772A Fast Ethernet
このバージョンのEdison YoctoOSでは、 enp0s17u1u4
というネットワークインタフェースとして自動認識された。
root@edison01:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 78:4b:87:a0:18:fd brd ff:ff:ff:ff:ff:ff
inet6 fe80::7a4b:87ff:fea0:18fd/64 scope link
valid_lft forever preferred_lft forever
4: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 02:00:86:f0:02:f1 brd ff:ff:ff:ff:ff:ff
6: enp0s17u1u4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:01:8e:b8:5c:20 brd ff:ff:ff:ff:ff:ff
有線LANへの接続
自動認識されたネットワークインタフェースを有効化する。今回有線接続したLANではDHCPが動作しているため、 udhcpc
を用いてIPアドレスを取得することができた。
root@edison01:~# ip link set dev enp0s17u1u4 up
root@edison01:~# udhcpc -i enp0s17u1u4
udhcpc (v1.22.1) started
Sending discover...
Sending select for 192.168.0.5...
Lease of 192.168.0.5 obtained, lease time 3600
/etc/udhcpc.d/50default: Adding DNS 192.168.0.1
今回はDHCPより192.168.0.5が配布された。
root@edison01:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 78:4b:87:a0:18:fd brd ff:ff:ff:ff:ff:ff
inet6 fe80::7a4b:87ff:fea0:18fd/64 scope link
valid_lft forever preferred_lft forever
4: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 02:00:86:f0:02:f1 brd ff:ff:ff:ff:ff:ff
6: enp0s17u1u4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:01:8e:b8:5c:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.5/24 scope global enp0s17u1u4
valid_lft forever preferred_lft forever
接続確認
同一LAN内のマシン(192.168.0.4)に通信できた(あたりまえ)。
root@edison01:~# ping 192.168.0.4
PING 192.168.0.4 (192.168.0.4): 56 data bytes
64 bytes from 192.168.0.4: seq=0 ttl=64 time=0.718 ms
64 bytes from 192.168.0.4: seq=1 ttl=64 time=1.306 ms
また今回実験した有線LANはインターネットゲートウェイに接続されているため、ゲートウェイ経由でインターネットにも通信できた。
root@edison01:~# curl www.google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/?gfe_rd=cr&ei=-oiQVcGbF-X98wfI8pXQBA">here</A>.
</BODY></HTML>