Отримайте підключення USB з пристрою Android для роботи на Debian 8


13

Я намагаюся змусити 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-й рід) з такими ж результатами.

Відповіді:


9

Гаразд, здається, я це зрозумів. Ці команди змусили його працювати:

ip link set usb0 up
dhclient usb0

Як не дивно, ifup usb0все ж кажуть, що цей інтерфейс невідомий, і: перед запуском dhclientнавіть не ping 8.8.8.8працює.

Мені все одно цікаво дізнатись, як я можу це автоматизувати, або чому це відбувається автоматично в іншій установці Debian 8.


1
"ifup usb0 все ще каже мені, що цей інтерфейс невідомий" - тому я думаю, що це не було успішним. Чому це питання позначене як правильну відповідь, і чи дізналися ви ще з того часу? Я хотів би встановити мережеве з'єднання через USB-налагодження, оскільки adb ще не може переадресувати передні порти UDP (однак він може переносити прямий і зворотний порт вперед TCP). Тож мені було б дуже цікаво, як цього досягти
Csaba Toth

1
Навіть ip link set usb0 upврожайність Cannot find device "usb0"формує мене: /
Csaba Toth

замініть usb0на ім’я свого пристрою. Ви можете знайти його, порівнявши висновок команди ip linkдо та після підключення пристрою Android та активуючи прив’язку USB. Після підключення та активації прив’язки USB в останньому рядку слід прочитати щось на кшталт 37: usb0: <BROADCAST,MULTICAST> .... Назва відразу після номера має бути пристроєм, який ви шукаєте.
в.тралала

2

Додайте це до /etc/network/interfacesконфігураційного файлу:

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

і після перезавантаження

sudo ifconfig usb0 up

якщо у вас система ubuntu після 16.04, можливо, вам доведеться змінити назву інтерфейсу:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

і після перезавантаження

sudo ifconfig enusb01 up

Якщо нічого не працює, спробуйте переглянути список із, ifconfig -a | grep Linkа потім спробуйте підняти відповідний або виконайте кроки вище, а потім встановіть його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.