從 Android 裝置取得 USB 網路共享以在 Debian 8 上運行

從 Android 裝置取得 USB 網路共享以在 Debian 8 上運行

我正在嘗試讓 USB 網路共享在 Nexus 5 手機(運行 CM11)和運行 Debian 8 的桌面之間工作。

[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

該設備也被列為lsusbNexus 4:

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

(那是問題嗎?)

但是,我沒有獲得 USB0 網路介面或任何其他可能的介面。ifconfig僅列出了先前存在的接口,即eth0lo以及tunOpenVPN 提供的兩個設備。

我搜尋了這不起作用的可能原因,但它們圍繞著太舊的核心(從 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 的計算機上嘗試了這一點,並且成功了。據我所知,區別在於加載了另外兩個模組: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

好吧,看來我已經弄清楚了。這些命令使它工作:

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

如果您的系統是 16.04 之後的 ubuntu,您可能需要變更介面的名稱:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

並在重新啟動後

sudo ifconfig enusb01 up

如果沒有任何效果,請嘗試使用 來查看列表ifconfig -a | grep Link,然後嘗試安裝相關的列表,或執行上述步驟,然後將其安裝。

相關內容