Android 8で動作するようにAndroidデバイスからUSBテザリングを取得する


13

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リストのみを先に存在するインターフェイス、eth0lo、ならびに2つtunのOpenVPNにより提供装置。

これが機能しない可能性のある理由を検索しましたが、それらは古すぎるカーネル(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世代)でも行いましたが、結果は同じでした。

回答:


9

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

ip link set usb0 up
dhclient usb0

不思議なことに、ifup usb0このインターフェイスは不明でありdhclient、実行前は動作しませんping 8.8.8.8

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


1
「ifup usb0はまだこのインターフェースが不明であることを教えてくれます」-結局これは成功しなかったと思います。この質問が正しい答えとしてマークされているのはなぜですか?それ以来、他に何か知りましたか?adbはUDPポートをまだポートフォワードできない(TCPをポートフォワードおよびリバースポートフォワードすることができる)ため、USBデバッグを介してネットワーク接続をセットアップしたいのですが。だから私はこれを達成する方法に非常に興味があります
Csaba Toth

1
ip link set usb0 upイールドさえCannot find device "usb0"私を形成します:/
Csaba Toth

usb0デバイス名に置き換えます。ip linkAndroidデバイスを接続してUSBテザリングをアクティブ化する前と後のコマンドの出力を比較することで、それを見つけることができます。USBテザリングを接続して有効にすると、最後の行はのようになり37: usb0: <BROADCAST,MULTICAST> ...ます。番号の直後の名前は、探しているデバイスにする必要があります。
v.tralala

2

これを構成/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から、関連するものをマウントするか、上記の手順を実行してからマウントしてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.