Próbuję uruchomić tethering przez USB między telefonem Nexus 5 (z CM11) a moim komputerem z systemem Debian 8. Podłączyłem telefon do komputera przez USB i otrzymałem te wiadomości:
[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
Po włączeniu modemu USB w telefonie otrzymuję dodatkowo:
[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
Urządzenie jest również wymienione przez lsusb
, choć jako Nexus 4:
Bus 003 Device 006: ID 18d1:4ee3 Google Inc. Nexus 4 (tether)
(Czy to problem?)
Nie dostaję jednak interfejsu sieciowego usb0 ani niczego innego, co mogłoby to być. ifconfig
jedynie wymieniono wcześniej obecne interfejsy, które są eth0
, lo
jak również dwa tun
urządzenia przewidziane OpenVPN.
Szukałem możliwych przyczyn, że to nie działa, ale obracają się wokół zbyt starego jądra (od 2.6 dni). Moje jądro to 3.16.0, które, jak zakładam, obsługuje tethering przez USB. Pamiętam też, że tethering przez USB po prostu podłączam do telefonu Sony Ericsson, i to było lata temu.
O ile wiem, ładowane są wszystkie odpowiednie moduły jądra:
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
Co muszę zrobić, aby uzyskać interfejs sieciowy USB0?
Aktualizacja: Wypróbowałem to na innym komputerze z systemem Debian 8 i działało. O ile mogę stwierdzić, różnica polega na tym, że załadowane są dwa inne moduły: rndis_wlan
i mii
. Jednak mimo, że ręczne ładowanie tych modułów przez modprobe
wydaje się działać bez błędów, usb0
nadal brakuje.
Po pewnym googlowaniu stwierdziłem, że powinienem uzyskać informacje o korzystaniu z interfejsów sieciowych ip link
. Dane wyjściowe to:
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
Wygląda na to, że jednak usb0
istnieje. Potem spróbowałem ifup usb0
, ale mówi
Ignoring unknown interface usb0=usb0.
Zrobiłem to wszystko również z Nexusem 7 (1. generacji), z tymi samymi wynikami.
źródło
ip link set usb0 up
plonyCannot find device "usb0"
mnie tworzą: /usb0
na nazwę swojego urządzenia. Można go znaleźć, porównując dane wyjściowe poleceniaip link
przed i po podłączeniu urządzenia z Androidem i aktywacji modemu USB. Po podłączeniu i aktywowaniu modemu USB ostatni wiersz powinien brzmieć mniej więcej tak37: usb0: <BROADCAST,MULTICAST> ...
. Nazwą zaraz po numerze powinno być urządzenie, którego szukasz.Dodaj to do
/etc/network/interfaces
pliku konfiguracyjnego:i po ponownym uruchomieniu
jeśli twój system jest Ubuntu po 16.04, być może będziesz musiał zmienić nazwę interfejsu:
i po ponownym uruchomieniu
Jeśli żadne z nich nie działa, spróbuj wyświetlić listę za pomocą,
ifconfig -a | grep Link
a następnie spróbuj zamontować odpowiedni plik lub wykonaj powyższe kroki, a następnie podłącz go.źródło