Android デバイスから USB テザリングを Debian 8 で動作させる

Android デバイスから USB テザリングを Debian 8 で動作させる

Nexus 5 スマートフォン (CM11 を実行) と Debian 8 を実行しているデスクトップの間で USB テザリングを機能させようとしています。スマートフォンを USB 経由でコンピューターに接続すると、次のメッセージが表示されました。

[14972.580738] usb 3-2: new high-speed USB device number 6 using xhci_hcd
[14972.709236] usb 3-2: New USB device found, idVendor=18d1, idProduct=4ee3
[14972.709239] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14972.709240] usb 3-2: Product: Nexus 5
[14972.709242] usb 3-2: Manufacturer: LGE
[14972.709243] usb 3-2: SerialNumber: 04a0ba5813aff0d4

携帯電話で USB テザリングを有効にすると、さらに次のようになります:

[14972.710663] rndis_host 3-2:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-2, RNDIS device, 02:04:67:3f:31:35

lsusbこのデバイスは、Nexus 4 としてではあるが、にもリストされています。

Bus 003 Device 006: ID 18d1:4ee3 Google Inc. Nexus 4 (tether)

(問題ありますか?)

ただし、usb0 ネットワーク インターフェイスや、それに相当するその他のインターフェイスは取得できません。 は、ifconfig以前存在していたインターフェイス (、、および OpenVPN によって提供される 2 つのデバイス) のみをリストeth0loますtun

これが機能しない理由を探してみましたが、カーネルが古すぎる (2.6 時代の) ことが原因のようです。私のカーネルは 3.16.0 で、USB テザリングをサポートしていると思います。また、Sony Ericsson の携帯電話を接続するだけで USB テザリングが機能したことを覚えていますが、それは何年も前のことでした。

私の知る限り、関連するカーネル モジュールはすべてロードされています。

rndis_host             12698  0 
cdc_ether              12564  1 rndis_host
usbnet                 30844  2 rndis_host,cdc_ether
usbcore               195340  8 xpad,rndis_host,ehci_hcd,ehci_pci,usbhid,usbnet,xhci_hcd,cdc_ether
usb_common             12440  1 usbcore

usb0 ネットワーク インターフェイスを取得するには何をする必要がありますか?


アップデート:Debian 8 を実行している別のコンピューターでこれを試したところ、うまくいきました。私が知る限り、違いは、rndis_wlanとという 2 つの他のモジュールがロードされていることですmii。ただし、 を介してこれらのモジュールを手動でロードするとmodprobeエラーなく動作するように見えますが、usb0はまだありません。

グーグルで検索してみたところ、 を使用してネットワーク インターフェイスに関する情報を取得できることがわかりましたip link。出力は次のようになります。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 30:85:a9:f6:24:cd brd ff:ff:ff:ff:ff:ff
31: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none 
32: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none 
37: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 0e:21:59:43:d3:ca brd ff:ff:ff:ff:ff:ff

usb0結局、は存在するようです。 を試してみましたifup usb0が、

Ignoring unknown interface usb0=usb0.

Nexus 7 (第 1 世代) でも同じことを実行しましたが、結果は同じでした。

答え1

わかりました。どうやら解決したようです。次のコマンドで動作しました:

ip link set usb0 up
dhclient usb0

不思議なことに、ifup usb0はまだこのインターフェースが不明であると表示され、 を実行する前はdhclientさえもping 8.8.8.8機能しません。

これを自動化する方法や、別の Debian 8 インストールでこれが自動的に発生する理由を知りたいです。

答え2

/etc/network/interfacesこれを設定ファイルに追加します:

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

再起動後

sudo ifconfig usb0 up

システムが Ubuntu 16.04 以降の場合、インターフェースの名前を変更する必要があるかもしれません。

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

再起動後

sudo ifconfig enusb01 up

どれも機能しない場合はifconfig -a | grep Link、およびを使用してリストを確認し、関連するものをマウントするか、上記の手順を実行してからマウントしてください。

関連情報