我正在嘗試讓 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
該設備也被列為lsusb
Nexus 4:
Bus 003 Device 006: ID 18d1:4ee3 Google Inc. Nexus 4 (tether)
(那是問題嗎?)
但是,我沒有獲得 USB0 網路介面或任何其他可能的介面。ifconfig
僅列出了先前存在的接口,即eth0
、lo
以及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 的計算機上嘗試了這一點,並且成功了。據我所知,區別在於加載了另外兩個模組:rndis_wlan
和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
好吧,看來我已經弄清楚了。這些命令使它工作:
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
,然後嘗試安裝相關的列表,或執行上述步驟,然後將其安裝。