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

13

Estou tentando fazer com que o tethering USB funcione entre um telefone Nexus 5 (executando o CM11) e minha área de trabalho executando o Debian 8. Conectei o telefone ao computador via USB e recebi as seguintes 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 compartilhamento 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 por lsusb, embora seja 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, lobem como dois tundispositivos fornecidos pelo OpenVPN.

Procurei por possíveis razões para isso não funcionar, mas elas giram em torno de um kernel muito antigo (a partir dos 2,6 dias). Meu kernel é a 3.16.0, que eu diria que suporta tethering USB. Também me lembro que consegui o tethering USB para funcionar com um telefone da Sony Ericsson apenas conectando-o, e isso foi há anos.

Até onde eu 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 devo fazer para obter a interface de rede usb0?


Atualização: tentei isso em outro computador executando o Debian 8 e funcionou. Até onde eu sei, a diferença é que dois outros módulos estão carregados: rndis_wlane mii. No entanto, apesar de carregar esses módulos manualmente via modprobeparecer funcionar sem erros, usb0ainda está faltando.

Depois de pesquisar no Google, achei 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

Parece que usb0, afinal, existe. Eu tentei ifup usb0, mas diz

Ignoring unknown interface usb0=usb0.

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

A. Donda
fonte

Respostas:

9

Ok, parece que eu descobri. Estes comandos fizeram funcionar:

ip link set usb0 up
dhclient usb0

Estranhamente, ifup usb0ainda me diz que essa interface é desconhecida e: antes de executar 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.

A. Donda
fonte
11
"ifup usb0 ainda me diz que essa interface é desconhecida" - então acho que isso não teve êxito, afinal. Por que essa pergunta está marcada como a resposta certa e você descobriu mais alguma coisa desde então? Gostaria de configurar a conexão de rede através da depuração USB, porque o adb ainda não pode portar portas UDP de encaminhamento (embora seja possível portar o TCP de encaminhamento e reversão de porta). Então, eu ficaria super interessado como fazer isso
Csaba Toth
11
Até ip link set usb0 uprendimentos Cannot find device "usb0"me formam: /
Csaba Toth 08/08
substitua usb0pelo nome do seu dispositivo. Você pode encontrá-lo comparando a saída do comando ip linkantes e depois de conectar seu dispositivo Android e ativar o tethering USB. Depois de conectar e ativar o tethering USB, a última linha deve ser semelhante a 37: usb0: <BROADCAST,MULTICAST> .... O nome logo após o número deve ser o dispositivo que você está procurando.
precisa saber é o seguinte
2

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

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

e depois da reinicialização

sudo ifconfig usb0 up

se o seu sistema for ubuntu após 16.04, pode ser necessário alterar o nome da interface:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

e depois da reinicialização

sudo ifconfig enusb01 up

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

Eduard Florinescu
fonte