So funktioniert USB-Tethering vom Android-Gerät unter Debian 8

So funktioniert USB-Tethering vom Android-Gerät unter Debian 8

Ich versuche, USB-Tethering zwischen einem Nexus 5-Telefon (mit CM11) und meinem Desktop mit Debian 8 zum Laufen zu bringen. Ich habe das Telefon über USB mit dem Computer verbunden und diese Meldungen erhalten:

[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

Nachdem ich USB-Tethering auf dem Telefon aktiviert habe, erhalte ich zusätzlich:

[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

Das Gerät wird auch von aufgeführt lsusb, allerdings als Nexus 4:

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

(Ist das ein Problem?)

Ich bekomme jedoch keine Netzwerkschnittstelle usb0 oder sonst etwas angezeigt, was es sein könnte. ifconfiglistet nur die zuvor vorhandenen Schnittstellen auf, nämlich eth0, lo, sowie zwei tunvon OpenVPN bereitgestellte Geräte.

Ich habe nach möglichen Gründen gesucht, warum das nicht funktioniert, aber sie drehen sich um einen zu alten Kernel (aus der 2.6-Zeit). Mein Kernel ist 3.16.0, von dem ich annehmen würde, dass er USB-Tethering unterstützt. Ich erinnere mich auch, dass ich USB-Tethering mit einem Sony Ericsson-Telefon zum Laufen gebracht habe, indem ich es einfach angeschlossen habe, und das war vor Jahren.

Soweit ich das beurteilen kann, sind alle relevanten Kernelmodule geladen:

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

Was muss ich tun, um die USB0-Netzwerkschnittstelle zu erhalten?


Aktualisieren:Ich habe dies auf einem anderen Computer mit Debian 8 versucht und es hat funktioniert. Soweit ich das beurteilen kann, besteht der Unterschied darin, dass zwei andere Module geladen werden: rndis_wlanund mii. Obwohl das manuelle Laden dieser Module über modprobefehlerfrei zu funktionieren scheint, usb0fehlt immer noch.

Nach einigem Googeln fand ich heraus, dass ich mit Informationen zu Netzwerkschnittstellen erhalten sollte ip link. Die Ausgabe lautet:

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

Es scheint also, dass es usb0das doch gibt. Ich habe es dann versucht ifup usb0, aber es heißt

Ignoring unknown interface usb0=usb0.

Ich habe das Ganze auch mit einem Nexus 7 (1. Generation) gemacht, mit den gleichen Ergebnissen.

Antwort1

Ok, es scheint, ich habe es herausgefunden. Mit diesen Befehlen hat es funktioniert:

ip link set usb0 up
dhclient usb0

Komischerweise ifup usb0wird mir immer noch angezeigt, dass diese Schnittstelle unbekannt ist, und: vor dem Ausführen funktioniert dhclientnicht einmal ping 8.8.8.8eins.

Mich würde dennoch interessieren, wie ich dies automatisieren kann oder warum dies bei einer anderen Debian-8-Installation automatisch geschieht.

Antwort2

Fügen Sie dies zur /etc/network/interfacesKonfigurationsdatei hinzu:

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

und nach dem Neustart

sudo ifconfig usb0 up

Wenn Ihr System Ubuntu nach 16.04 ist, müssen Sie möglicherweise den Namen der Schnittstelle ändern:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

und nach dem Neustart

sudo ifconfig enusb01 up

Wenn nichts davon funktioniert, sehen Sie sich die Liste mit ifconfig -a | grep Linkund an und versuchen Sie dann, das Relevante zu mounten oder führen Sie die obigen Schritte aus und mounten Sie es dann.

verwandte Informationen