Получить 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> .... Имя сразу после номера должно быть устройством, которое вы ищете.
v.tralala
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и, а затем попробуйте смонтировать соответствующий или выполнить действия, описанные выше, а затем смонтировать его.

Эдуард Флоринеску
источник