Obtenha o tethering USB do dispositivo Android para funcionar no Debian 8

Obtenha o tethering USB do dispositivo Android para funcionar no Debian 8

Estou tentando fazer com que o tethering USB funcione entre um telefone Nexus 5 (executando CM11) e meu desktop executando Debian 8. Conectei o telefone ao computador via USB e recebi estas mensagens:

[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

Depois de ativar o tethering USB no telefone, recebo adicionalmente:

[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

O dispositivo também é listado pela Google lsusb, embora como um Nexus 4:

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

(Isso é um problema?)

No entanto, não recebo uma interface de rede usb0 ou qualquer outra coisa que possa ser. ifconfiglista apenas as interfaces presentes anteriormente, que são eth0, lo, bem como dois tundispositivos fornecidos pelo OpenVPN.

Procurei possíveis motivos pelos quais isso não funciona, mas eles giram em torno de um kernel muito antigo (de 2,6 dias). Meu kernel é 3.16.0, que eu presumo que suporta tethering USB. Também me lembro que consegui que o tethering USB funcionasse com um telefone Sony Ericsson apenas conectando-o, e isso foi há anos.

Pelo que sei, todos os módulos relevantes do kernel estão carregados:

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

O que preciso fazer para obter a interface de rede usb0?


Atualizar:Eu tentei isso em outro computador rodando Debian 8 e funcionou. Pelo que sei, a diferença é que dois outros módulos são carregados: rndis_wlane mii. No entanto, embora o carregamento manual desses módulos modprobepareça funcionar sem erros, usb0ainda está faltando.

Depois de pesquisar no Google, descobri que deveria obter informações sobre interfaces de rede usando ip link. A saída é:

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

Então parece que isso usb0existe, afinal. Eu então tentei ifup usb0, mas diz

Ignoring unknown interface usb0=usb0.

Fiz tudo também com um Nexus 7 (1ª geração), com os mesmos resultados.

Responder1

Ok, parece que descobri. Esses comandos fizeram funcionar:

ip link set usb0 up
dhclient usb0

Estranhamente, ifup usb0ainda me diz que essa interface é desconhecida, e: antes de rodar dhclient, nem ping 8.8.8.8funciona.

Eu ainda estaria interessado em saber como posso automatizar isso ou por que isso acontece automaticamente em outra instalação do Debian 8.

Responder2

Adicione isto ao /etc/network/interfacesarquivo de configuração:

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

e depois de reiniciar

sudo ifconfig usb0 up

se o seu sistema for Ubuntu após 16.04, talvez seja necessário alterar o nome da interface:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

e depois de reiniciar

sudo ifconfig enusb01 up

Se nada funcionar, tente ver a lista com ifconfig -a | grep Linke e tente montar o relevante ou execute as etapas acima e monte-o.

informação relacionada