web-dev-qa-db-ja.com

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

デバイスは、Nexus 4ですが、lsusbでもリストされます。

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

(問題ありますか?)

しかし、私はusb0ネットワークインターフェイスまたはそれである可能性のある他のものを取得しません。 ifconfigは、以前に存在していたインターフェース、つまりeth0lo、およびOpenVPNによって提供される2つのtunデバイスのみをリストします。

これが機能しない可能性のある理由を検索しましたが、それらは古すぎるカーネル(2.6日以降)を中心に展開しています。私のカーネルは3.16.0で、USBテザリングをサポートしていると思います。また、ソニーエリクソンの電話を接続するだけで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を実行している別のコンピュータでこれを試したところ、うまくいきました。私の知る限り、違いは、他の2つのモジュール、rndis_wlanmiiが読み込まれていることです。ただし、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世代)でも行いましたが、同じ結果が得られました。

13
A. Donda

わかりました。わかったようです。これらのコマンドはそれを機能させました:

ip link set usb0 up
dhclient usb0

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

これを自動化する方法、またはこれが別のDebian 8インストールで自動的に行われる理由を知りたいと思っています。

9
A. Donda

これを/etc/network/interfaces構成ファイルに追加します。

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

そして再起動後

Sudo ifconfig usb0 up

16.04以降のシステムがubuntuの場合は、インターフェースの名前を変更する必要がある場合があります。

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

そして再起動後

Sudo ifconfig enusb01 up

動作しない場合は、ifconfig -a | grep Linkでリストを表示してから、関連するものをマウントするか、上記の手順を実行してからマウントしてください。

2