LINUX.ORG.RU
решено ФорумAdmin

Ubuntu 22.04 LTS теряет сетевой коннект с USBNET-устройством

 , , usblan,


0

1

Собственно ближе к сути: есть интересный мобильный девайс Motorola MING A1200e, внутри которого крутится Linux с поддержкой технологии USBNET, благодаря которому при подключении по USB телефон видится сетевой карточкой и позволяет заходить внутрь себя по Telnet, FTP, Samba, SSH и VNC.

При подключении устройства ситуация в dmesg:

$ sudo dmesg
...
[ 8986.727030] usb 2-1.2: new high-speed USB device number 12 using ehci-pci
[ 8986.841739] usb 2-1.2: New USB device found, idVendor=22b8, idProduct=6027, bcdDevice= 0.00
[ 8986.841751] usb 2-1.2: New USB device strings: Mfr=5, Product=2, SerialNumber=0
[ 8986.841755] usb 2-1.2: Product: Motorola USBLAN
[ 8986.841758] usb 2-1.2: Manufacturer: Motorola
[ 8986.845071] usb 2-1.2: bad CDC descriptors
[ 8986.845926] zaurus 2-1.2:1.0 usb0: register 'zaurus' at usb-0000:00:1d.0-1.2, pseudo-MDLM (BLAN) device, 1a:01:5d:2f:1c:2d

По ip a следующая картина:

$ ip a
...
usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1494 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 1a:01:5d:2f:1c:2d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::44c0:ae0e:9ea3:de0a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Назначаю IP-адрес:

$ sudo ip a add 192.168.16.1/255.255.255.0 dev usb0

Картина после этой команды в ip a следующая:

$ ip a
...
usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1494 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 1a:01:5d:2f:1c:2d brd ff:ff:ff:ff:ff:ff
    inet 192.168.16.1/24 scope global usb0
       valid_lft forever preferred_lft forever
    inet6 fe80::44c0:ae0e:9ea3:de0a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Теперь я могу подключаться к устройству через любой нужный мне протокол, к примеру, telnet 192.168.16.2, ftp 192.168.16.2 и др.

Но через несколько секунд подключение рвётся, в ip a при этом снова так, теряется IPv4 адрес:

usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1494 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 1a:01:5d:2f:1c:2d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::44c0:ae0e:9ea3:de0a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Выполняю ещё раз sudo ip a add 192.168.16.1/255.255.255.0 dev usb0, соединение восстанавливается даже «на горячую», в ip a такая картина:

usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1494 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 1a:01:5d:2f:1c:2d brd ff:ff:ff:ff:ff:ff
    inet 192.168.16.1/24 scope global usb0
       valid_lft forever preferred_lft forever

Спустя несколько подобных итераций по потере соединения и IP-адреса, а потом после ввода той команды назначения снова, коннект больше не рвётся и остаётся стабильным.

В чём может быть проблема? Она точно не в этом устройстве, а где-то в Ubuntu 22.04 LTS, потому что в Fedora 33 таких проблем с этим же устройством у меня не было, коннект был стабильный и постоянный.

★★★★★

Последнее исправление: EXL (всего исправлений: 5)

Попробуй обновить на Ubuntu ядро (драйвер).

Т.е. проблема либо в некорректной работе драйвера устройства, а он в ядре, либо некорректной работе некоторого сетевого компонента в ядра, ну либо например на сетевом интерфейсе запускается DHCP клиент и т.к. DHCP сервера нет сбрасывает параметры сети.

Удостоверься, что нет запущенного DHCP клиента на интерфейсе и попробуй загрузить Ubuntu с ядром от Fedora.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Попробуй обновить на Ubuntu ядро (драйвер).

Т.е. проблема либо в некорректной работе драйвера устройства, а он в ядре, либо некорректной работе некоторого сетевого компонента в ядра

А куда обновляться-то, оно там довольно свежее, в Fedora 33 было старее или примерно такое же. Драйвера используются стандартные из поставки Linux, это zaurus.ko, который очень давно не обновлялся, вряд ли там что-либо сломали бы…

При переподключениях кстати в dmesg глухо, ничего нет.

ну либо например на сетевом интерфейсе запускается DHCP клиент и т.к. DHCP сервера нет сбрасывает параметры сети.

Вот это интересное предположение, где бы глянуть подробнее? В какой-то лог ведь должны эти события писаться?

попробуй загрузить Ubuntu с ядром от Fedora

Это вообще возомжно? Тем более Fedora 33 была старая и давно уже отправилась в утиль.

EXL ★★★★★
() автор топика
Ответ на: комментарий от EXL

это zaurus.ko, который очень давно не обновлялся, вряд ли там что-либо сломали бы…

Никто не застрахован от регрессий в ядре, в какой-нибудь подсистеме, который использует драйвер.

Может у тебя вообще проблема с USB драйвером.

Вот это интересное предположение, где бы глянуть подробнее? В какой-то лог ведь должны эти события писаться?

Погугли. Как минимум могут запускать dhcp клиенты, делай что-нибудь вроде:

ps ax | grep dhc

Как посмотреть systend-networkd - не знаю, разбирайся.

Это вообще возомжно? Тем более Fedora 33 была старая и давно уже отправилась в утиль.

Попробуй - узнаешь.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Короче по journalctl -f снял текущие логи системы и заметил, что NetworkManager и DHCP действительно пытаются что-то там сделать с устройством, у них не получается и каждые 45 секунд в течении трёх раз они разрывают соединение и повторяют попытку.

В файл по пути /etc/netplan/01-network-manager-all.yaml добавил следующее:

--- /etc/netplan/01-network-manager-all.yaml_old	2022-07-01 21:50:48.602614357 +0700
+++ /etc/netplan/01-network-manager-all.yaml	2022-07-01 21:32:06.517461102 +0700
@@ -2,3 +2,9 @@
 network:
   version: 2
   renderer: NetworkManager
+  ethernets:
+    usb0:
+      dhcp4: no
+      dhcp6: no
+      addresses:
+        - 192.168.16.1/24

Затем выполнил команды:

sudo netplan generate
sudo netplan apply
sudo systemctl restart NetworkManager

И оно перестало дисконнектить и IP-адрес теперь не нужно задавать ручками.

Не знаю, правильное ли это решение по части сетей, я в них слабо разбираюсь… Подсказал бы какой сетевик, корректно ли сделал.

EXL ★★★★★
() автор топика
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

И какой теперь ipv4 адрес получает usb0 ?

Также покажи файл настроек сети из каталога /etc/netplan/ .

Ещё можно посмотреть настройки сети в самом NetworkManager и там же их поменять, если нужно.

И ещё обратил бы внимание на:

[ 8986.845071] usb 2-1.2: bad CDC descriptors

Также попробуйте поискать в интернете по «pseudo-MDLM (BLAN) device» и «bad CDC descriptors»

Вот одна из выдач по первой поисковой «фразе»: https://forum.motofan.ru/lofiversion/index.php?t163337-1660.html

vdk10
()
Последнее исправление: vdk10 (всего исправлений: 1)
Ответ на: комментарий от vdk10

Также покажи файл настроек сети из каталога /etc/netplan/ .

Он выше постом, это всё его содержимое и это единственный файл в этом каталоге.

И ещё обратил бы внимание на:

[ 8986.845071] usb 2-1.2: bad CDC descriptors

Также попробуйте поискать в интернете по «pseudo-MDLM (BLAN) device» и «bad CDC descriptors»

Да, в интернете говорится о том, что при этой ошибке интерфейс usb0 не появляется при подключении телефона, однако у меня он появляется и всё теперь работает нормально.

Вот одна из выдач по первой поисковой «фразе»: https://forum.motofan.ru/lofiversion/index.php?t163337-1660.html

Там я и отписывался, правда по более новым телефонам на Linux от Motorola, которые уже используют платформу MotoMAGX, а не EZX.

EXL ★★★★★
() автор топика
Ответ на: комментарий от biglpfan

извините за оффтоп, тоже когда-то в юности был минг. Интересно, что вы с ним делаете в 2022-м?

Да ничего особого, хочу воткнуть вот туда какой-нибудь клиент SSH вместе всех этих Telnet, FTP и Samba.

EXL ★★★★★
() автор топика