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 つのデバイス) のみをリストeth0
しlo
ます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
、およびを使用してリストを確認し、関連するものをマウントするか、上記の手順を実行してからマウントしてください。