Reliability with Quectel modem

Peter Naulls peter at chocky.org
Wed Sep 2 14:51:17 UTC 2020


I'm having problems making my modem work consistently - or at all.   I'm 
probably missing some details here, so let me know.

I'm using OpenWrt with some patching to kernel version 5.4.61.  I also
have modemmanager 1.14.2 and libqmi - 1.26.4 just to make sure.

Using notes here of course:

https://openwrt.org/docs/guide-user/network/wan/wwan/ltedongle

Here's the modem:

[   18.092483] cdc_mbim 1-1:1.4: cdc-wdm0: USB WDM device
[   18.093511] cdc_mbim 1-1:1.4 wwan0: register 'cdc_mbim' at 
usb-xhci-hcd.0.auto-1, CDC MBIM, da:cc:29:38:ce:91
[   18.096839] usbcore: registered new interface driver cdc_mbim
[   18.110303] usbcore: registered new interface driver option
[   18.112545] usbserial: USB Serial support registered for GSM modem (1-port)
[   18.118073] option 1-1:1.0: GSM modem (1-port) converter detected
[   18.124997] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[   18.131131] option 1-1:1.1: GSM modem (1-port) converter detected
[   18.138228] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[   18.144050] option 1-1:1.2: GSM modem (1-port) converter detected
[   18.150743] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
[   18.157075] option 1-1:1.3: GSM modem (1-port) converter detected
[   18.163824] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3
[   18.175164] usbcore: registered new interface driver qcserial
[   18.176273] usbserial: USB Serial support registered for Qualcomm USB modem
[   18.182307] kmodloader: done loading kernel modules from /etc/modules.d/*




T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0512 Rev= 3.18
S:  Manufacturer=Quectel
S:  Product=EM12-AW
S:  SerialNumber=0123456789ABCDEF
C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
A:  FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E:  Ad=88(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
I:  If#= 5 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms



The command on the wiki page:

uqmi -d /dev/cdc-wdm0 --get-data-status

This will hang until ctrl-C

^C"Failed to connect to service"


The modem *can* be made to connect, with judicious use of cycling the OpenWrt 
device and the modem itself, but I haven't figure out the magic just yet.

I've also had it work correctly on Ubuntu too, without too much fuss, but it's
still unreliable there.


The second problem is that if it's unplugged, and then replugged, it doesn't 
come back:

(unplug)

[   18.092483] cdc_mbim 1-1:1.4: cdc-wdm0: USB WDM device
[   18.093511] cdc_mbim 1-1:1.4 wwan0: register 'cdc_mbim' at 
usb-xhci-hcd.0.auto-1, CDC MBIM, da:cc:29:38:ce:91
[   18.096839] usbcore: registered new interface driver cdc_mbim
[   18.110303] usbcore: registered new interface driver option
[   18.112545] usbserial: USB Serial support registered for GSM modem (1-port)
[   18.118073] option 1-1:1.0: GSM modem (1-port) converter detected
[   18.124997] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[   18.131131] option 1-1:1.1: GSM modem (1-port) converter detected
[   18.138228] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[   18.144050] option 1-1:1.2: GSM modem (1-port) converter detected
[   18.150743] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
[   18.157075] option 1-1:1.3: GSM modem (1-port) converter detected
[   18.163824] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3
[   18.175164] usbcore: registered new interface driver qcserial
[   18.176273] usbserial: USB Serial support registered for Qualcomm USB modem
[   18.182307] kmodloader: done loading kernel modules from /etc/modules.d/*
[   23.477751] br-lan: port 1(eth0) entered blocking state
[   23.477800] br-lan: port 1(eth0) entered disabled state
[   23.482349] device eth0 entered promiscuous mode
[   23.509663] ess_edma c080000.edma: eth1: GMAC Link is down
[   24.561824] br-lan: port 1(eth0) entered blocking state
[   24.561884] br-lan: port 1(eth0) entered forwarding state
[   24.566356] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[  489.115828] usb 1-1: USB disconnect, device number 2
[  489.116219] option1 ttyUSB0: GSM modem (1-port) converter now disconnected 
from ttyUSB0
[  489.120091] option 1-1:1.0: device disconnected
[  489.128439] option1 ttyUSB1: GSM modem (1-port) converter now disconnected 
from ttyUSB1
[  489.132457] option 1-1:1.1: device disconnected


now replug, and nothing in kernel logs.


Let me know where I need to start looking, what versions to try, etc.

Thanks!


















More information about the libqmi-devel mailing list