Obtenga la conexión USB del dispositivo Android para trabajar en Debian 8

13

Estoy tratando de hacer que la conexión USB funcione entre un teléfono Nexus 5 (que ejecuta CM11) y mi computadora de escritorio con Debian 8. Conecté el teléfono a la computadora a través de USB y recibí estos mensajes:

[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

Después de habilitar la conexión USB en el teléfono, también obtengo:

[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

El dispositivo también aparece en la lista lsusb, aunque como Nexus 4:

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

(¿Es eso un problema?)

Sin embargo, no obtengo una interfaz de red usb0 ni nada que pueda ser. ifconfigenumera solo las interfaces presentes anteriormente, que son eth0, loasí como dos tundispositivos proporcionados por OpenVPN.

Busqué posibles razones por las que esto no funciona, pero giran en torno a un núcleo demasiado antiguo (de los 2.6 días). Mi kernel es 3.16.0, que supongo que admite la conexión USB. También recuerdo que obtuve la conexión USB para trabajar con un teléfono Sony Ericsson simplemente conectándolo, y eso fue hace años.

Por lo que puedo decir, todos los módulos del núcleo relevantes están cargados:

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

¿Qué debo hacer para obtener la interfaz de red usb0?


Actualización: probé esto en otra computadora con Debian 8, y funcionó. Por lo que puedo decir, la diferencia es que se cargan otros dos módulos: rndis_wlany mii. Sin embargo, aunque cargar estos módulos manualmente modprobeparece funcionar sin errores, usb0todavía falta.

Después de buscar en Google, descubrí que debería obtener información sobre las interfaces de red que utilizo ip link. El resultado es:

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

Entonces parece que usb0existe después de todo. Luego lo intenté ifup usb0, pero dice

Ignoring unknown interface usb0=usb0.

Hice todo esto también con un Nexus 7 (1a generación), con los mismos resultados.

A. Donda
fuente

Respuestas:

9

Ok, parece que lo he descubierto. Estos comandos lo hicieron funcionar:

ip link set usb0 up
dhclient usb0

Por extraño que parezca, ifup usb0todavía me dice que esta interfaz es desconocida, y: antes de ejecutar dhclient, ni siquiera ping 8.8.8.8funciona.

Todavía estaría interesado en saber cómo puedo automatizar esto, o por qué esto sucede automáticamente en otra instalación de Debian 8.

A. Donda
fuente
1
"ifup usb0 todavía me dice que esta interfaz es desconocida", así que supongo que esto no fue exitoso después de todo. ¿Por qué esta pregunta está marcada como la respuesta correcta, y descubriste algo más desde entonces? Me gustaría configurar la conexión de red a través de la depuración USB porque adb aún no puede reenviar puertos UDP (aunque puede reenviar puertos y revertir puertos TCP). Así que estaría muy interesado en cómo lograr esto
Csaba Toth
1
Incluso los ip link set usb0 uprendimientos Cannot find device "usb0"me forman: /
Csaba Toth
reemplace usb0con el nombre de su dispositivo. Puede encontrarlo comparando la salida del comando ip linkantes y después de enchufar su dispositivo Android y activar la conexión USB. Después de enchufar y activar la conexión USB, la última línea debería leer algo así 37: usb0: <BROADCAST,MULTICAST> .... El nombre justo después del número debe ser el dispositivo que está buscando.
v.tralala
2

Agregue esto al /etc/network/interfacesarchivo de configuración:

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

y después de reiniciar

sudo ifconfig usb0 up

Si su sistema es ubuntu después de 16.04, es posible que deba cambiar el nombre de la interfaz:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

y después de reiniciar

sudo ifconfig enusb01 up

Si ninguno funciona, intente ver la lista con ifconfig -a | grep Linky luego intente montar el relevante o siga los pasos anteriores y luego monte eso.

Eduard Florinescu
fuente