USB modem ne vždy po zapojení funguje

USB modem ne vždy po zapojení funguje
« kdy: 29. 05. 2022, 10:54:54 »
Má rPi 4 s posledními aktualizacemi. Do USB má strčený LTE modem Alcatel IK40. Mám s ním následující problém. Někdy po bootu je sice vidět, ale nemá načtené ovladače (rndis):

Výpis dmesg
[    2.350745] usb 1-1.1: New USB device found, idVendor=1bbb, idProduct=f000, bcdDevice=10.00
[    2.350800] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.350852] usb 1-1.1: Product: Mobilebroadband
[    2.350890] usb 1-1.1: Manufacturer: Alcatel
[    2.350920] usb 1-1.1: SerialNumber: 1234567890ABCDE
[    2.368285] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[    2.404840] scsi host0: usb-storage 1-1.1:1.0

# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=, 480M

# usb-devices
T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1bbb ProdID=f000 Rev=10.00
S:  Manufacturer=Alcatel
S:  Product=Mobilebroadband
S:  SerialNumber=1234567890ABCDE
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)

Vždy danou situaci vyřeším odpojení a znovupřipojením modemu do USB, nicméně potřebuji, aby to fungovalo samo, bezobslužně. Zkoušel jsem použít i obezličku a vypínat USB softwarově (tedy emulovat vypojení/připojení):
Citace
echo "1-1.1" >/sys/bus/usb/drivers/usb/unbind
uhubctl --action off
echo "off" > /sys/bus/usb/devices/1-1.1/power/level

Nefungovalo nic. Mj. jsem čekal, že na modemu zhasne LED, že bude reálně zcela bez proudu, ale není. Zkoušel jsem i ručně načíst moduly:
Citace
modprobe cdc_ether
modprobe rndis_host

Načetly se, ale nefungovalo nic.

Po ručním vypojení a zapojení modemu do USB je samozřejmě vše OK.

Výpis  dmesg
[ 1175.102780] usb 1-1.1: New USB device found, idVendor=1bbb, idProduct=0195, bcdDevice= 2.42
[ 1175.102802] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1175.102820] usb 1-1.1: Product: Mobilebroadband
[ 1175.102837] usb 1-1.1: Manufacturer: Alcatel
[ 1175.102854] usb 1-1.1: SerialNumber: 1234567890ABCDE
[ 1175.132411] usb-storage 1-1.1:1.2: USB Mass Storage device detected
[ 1175.133055] scsi host0: usb-storage 1-1.1:1.2
[ 1175.172311] usbcore: registered new interface driver cdc_ether
[ 1175.204133] rndis_host 1-1.1:1.0 usb0: register 'rndis_host' at usb-0000:01:00.0-1.1, RNDIS device, 26:0b:ee:28:29:c7
[ 1175.204297] usbcore: registered new interface driver rndis_host
[ 1176.167040] scsi 0:0:0:0: Direct-Access     ONETOUCH KEY40            2.31 PQ: 0 ANSI: 2
[ 1176.168026] sd 0:0:0:0: Attached scsi generic sg0 type 0

# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 6, If 0, Class=Wireless, Driver=rndis_host, 480M
        |__ Port 1: Dev 6, If 1, Class=CDC Data, Driver=rndis_host, 480M
        |__ Port 1: Dev 6, If 2, Class=Mass Storage, Driver=usb-storage, 480M

# usb-devices
T:  Bus=01 Lev=02 Prnt=04 Port=00 Cnt=01 Dev#=  6 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1bbb ProdID=0195 Rev=02.42
S:  Manufacturer=Alcatel
S:  Product=Mobilebroadband
S:  SerialNumber=1234567890ABCDE
C:  #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
I:  If#=0x2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

Ideální by bylo přijít na to, proč se někdy modem tváří jen jako usb-storage a jiny jako wlcon+data+storage. Mám trochu podezření, že je to na straně toho modemu, který se někdy ohlásí tak a jindy jinak a Linux holt jen použije to, comu modem nabídne. Ale i kdyby tomu tak bylo, pořád nechápu, proč se nedaří skutečně nasimulovat vypojení/odpojení od USB, aby se to "chytilo".

Poradí někdo? Minimálně ten softwarový re-plug (ale komplet, vč. komplet odpojení modemu od produ) by hodně bodnul. Díky


RDa

  • *****
  • 1 775
    • Zobrazit profil
    • E-mail
Re:USB modem ne vždy po zapojení funguje
« Odpověď #1 kdy: 29. 05. 2022, 12:00:20 »
zkus se podivat na vec zvanou usb mode switch, jako alternativu k tomu pokusu o sw replug:
https://forums.raspberrypi.com/viewtopic.php?t=234921

Re:USB modem ne vždy po zapojení funguje
« Odpověď #2 kdy: 29. 05. 2022, 15:14:26 »
K tomu náhodnému chování: možná by poradil Wireshark (s usbmon, nebo jak se to nazývá), pokud to chcete ladit.