Я пытаюсь настроить 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
Ок, кажется, я разобрался. Эти команды заставили это работать:
ip link set usb0 up
dhclient usb0
Как ни странно, ifup usb0
мне все равно говорит, что этот интерфейс неизвестен, и: до запуска dhclient
, даже не ping 8.8.8.8
работает.
Мне все равно было бы интересно узнать, как это автоматизировать или почему это происходит автоматически в другой установке Debian 8.
решение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
и , а затем попытаться смонтировать соответствующий или выполните шаги, описанные выше, а затем смонтируйте его.