让 Android 设备的 USB 网络共享在 Debian 8 上运行

让 Android 设备的 USB 网络共享在 Debian 8 上运行

我正在尝试让 USB 网络共享在 Nexus 5 手机(运行 CM11)和运行 Debian 8 的桌面之间运行。我通过 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仅列出以前存在的接口,即eth0、,lo以及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,然后尝试安装相关的列表,或者执行上述步骤,然后安装它。

相关内容