LoginSignup
5
5

More than 5 years have passed since last update.

Edison@Debian(ubilinux)でusb0なネットワークを使う。With Ubuntu14.04

Posted at

usb0なネットワークの使い方がわかったので記録。
ちなみにここのホストPCはUbuntu14.04なので注意。

これは何?

これはAndroidでもusbテザリングに使われるもののようで
ホストマシンのusbにEdisonをOTGポートにつなぐと出現する。
Edison側にもusb0ネットワークデバイスが出現する。
ただし、ホストになった場合はデバイス側に機能がないと出現しない。

使い方

さて、これを使用する場合
debian系なので/etc/network/interfaceをいじる。

USBファンクション機(Edison)

nano /etc/network/interface

/etc/network/interface
auto usb0
iface usb0 inet static
    address 192.168.2.15
    netmask 255.255.255.0

USBホスト機(Ubuntu14.04なマシン)

自動的に出現するのでipアドレスとネットマスクのみを変更しファンクション機とネットワークセグメントを合わせる。
sudo ifconfig usb0 192.168.2.2 netmask 255.255.255.0
恒久的に使用したければ、ファンクション機同様に/etc/network/interfaceにエントリーを書く

EdisonをUSB経由で外に繋ぎたい場合は?

上記の設定ではUSBホスト機とUSBファンクション機の間でしか通信はできません。
やってないのですがUSBホスト機側でブリッジを形成するか、natエントリーをIptablesかfirewalldに作成することになります。

前提条件
Edison側

無線LANを無効化するか、ルーティングテーブルをいじってデフォルトゲートウェイをusb0側にします。
まあ目的が持ち歩きなら無効化するほうが省電力でいいかと思われます。
一時的にやるなら以下のコマンドでOK
ifconfig wlan0 down

  • natの場合はネットワークセグメントをホスト機のつながっているネットワークと別にします。
  • ブリッジの場合はネットワークセグメントを同じにして、他に使われていないアドレスにします。もちろんデフォルトゲートウェイも参加先のネットワークに合わせます。
USBホスト機(Ubuntu14.04相当)

ipv4でやります、Linuxカーネルへipv4パケットをリレーすることを許可します。
sudo nano /etc/sysctl.conf
以下の行のコメントを外す。

/etc/sysctl.conf
net.ipv4.ip_forward=1

即座に反映(本当は再起動した方がよい)
sudo sysctl -p
確認
cat /proc/sys/net/ipv4/ip_forward
1が帰ってくればOK

  • nat(masquerade)を構成する場合。
    以下を参考にします。
    http://qiita.com/Kshi-Kshi/items/2fa1436248f1d4938861
    ここでは以下のように設定します。
    sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -j MASQUERADE
    再起動後のことを考えないならこちらがお手軽です。
    間違えた場合、以下で行番号を確認
    sudo iptables -t nat -L --line-numbers
    指定の行番号を削除、確認は上のコマンドで再度行ってください。
    sudo iptables -t nat -D POSTROUTING 行番号

  • bridgeを恒久的に構成する場合。
    bridge-utilsのbrctlコマンドを使えば一時的にも可能です
    ブリッジは固定でWifiのインターフェイス(dhcp)に設定して、
    このブリッジに対してusb0のインターフェイスを参加させていく方法を考える。

/etc/network/interface
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports wlan0
bridge_maxwait 0
bridge_df 0
bridge_stp off

動的にインターフェイスの追加行う

console
sudo brctl addif br0 usb0
sudo ifconfig usb0 0.0.0.0

多分、これで使えるはずです。※試してないので試したら追記します。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5