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. ifconfig
lista apenas as interfaces presentes anteriormente, que são eth0
, lo
, bem como dois tun
dispositivos 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_wlan
e mii
. No entanto, embora o carregamento manual desses módulos modprobe
pareça funcionar sem erros, usb0
ainda 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 usb0
existe, 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 usb0
ainda me diz que essa interface é desconhecida, e: antes de rodar dhclient
, nem ping 8.8.8.8
funciona.
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/interfaces
arquivo 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 Link
e e tente montar o relevante ou execute as etapas acima e monte-o.