Я намагаюся змусити USB-прив’язку працювати між телефоном Nexus 5 (під керуванням CM11) та моїм робочим столом під керуванням Debian 8. Я підключив телефон до комп'ютера через USB і отримав ці повідомлення:
[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
Після ввімкнення USB-зв’язку на телефоні я додатково отримую:
[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
Цей пристрій також перелічено lsusb
, хоча і Nexus 4:
Bus 003 Device 006: ID 18d1:4ee3 Google Inc. Nexus 4 (tether)
(Це проблема?)
Однак я не отримую мережевий інтерфейс usb0 або щось інше, що може бути ним. ifconfig
перелічує лише наявні раніше інтерфейси, які є eth0
, lo
а також два tun
пристрої, надані OpenVPN.
Я шукав можливі причини, що це не працює, але вони обертаються навколо занадто старого ядра (від 2,6 днів). Моє ядро становить 3.16.0, що, як я б припустив, підтримує USB-прив’язку. Я також пам’ятаю, що я отримав USB-зв’язок для роботи з телефоном Sony Ericsson, просто підключивши його, і це було років тому.
Наскільки я можу сказати, всі відповідні модулі ядра завантажуються:
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
Що мені потрібно зробити, щоб отримати мережевий інтерфейс usb0?
Оновлення: Я спробував це на іншому комп'ютері під керуванням Debian 8, і воно спрацювало. Наскільки я можу сказати, різниця полягає в тому, що завантажуються два інші модулі: rndis_wlan
і mii
. Однак, хоча завантаження цих модулів вручну через, modprobe
здається, працює без помилок, usb0
все ж відсутнє.
Після деякого гуглінгу я виявив, що мені слід отримати інформацію про мережеві інтерфейси за допомогою ip link
. Вихід:
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
Тож виявляється, що все-таки usb0
існує. Я тоді спробував ifup usb0
, але це говорить
Ignoring unknown interface usb0=usb0.
Я все це робив також із Nexus 7 (1-й рід) з такими ж результатами.