How to verify usb serial option driver is working for arm-linux board?

Goal:

I am using TS7970 Linux board and trying to enable LTE modem using Quectel LTE EG25-G Mini PCIe. I am very new to linux systems.

Expected and actual result:

Modem’s document tells that we need to modify the linux driver files - option.c, qcserial.c, usb_wwan.c. Modification mainly has addition of new VID and PID details of the modem for usb-serial to detect. Quectel provides c files and Makefile of these drivers with necessary modifications for my kernal version of linux 4.9.11 (Debian buster running). My linux board has little memory and didnot have linux-headers nor source on the board memory system (i.e no build folder exists in /lib/modules/4.9.11-g09a125b5724d/

I learnt how to cross-compile these files by downloading my kernal source files on to another ubuntu PC. While generating new option.ko, qcserial.ko, usb_wwan.ko, I used KDIR = compiled/kernal/path.

Now I replace these new kernal modules onto my linux board and reboot. Quectel driver userguide tells that I should be able to see ‘option’ as a usb driver. But it is not shown. qmi_wwan and cdc-wdm modems are detected which is good news. But option is not shown.

PCI modem is shown under lsusb also. But it is not detected as a ttyUSB0,ttyUSB1 etc. I believe ‘option’ driver missing in above list is the problem. Can anyone help me understand why its not listed?

  1. cat /sys/kernel/debug/usb/devices view driver enumeration:
    image
  2. busybox microcom /dev/ttyUSB2
    at
    OK

I have similar problem with EC200T with Raspberry Pi compute module 3 with latest Bullsyes OS. I get Driver=(none)

pi@raspberrypi:~ $ sudo cat /sys/kernel/debug/usb/devices
...
T:  Bus=01 Lev=03 Prnt=13 Port=02 Cnt=03 Dev#= 17 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=6026 Rev= 3.18
S:  Manufacturer=Android
S:  Product=Android
S:  SerialNumber=0000
C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
E:  Ad=85(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
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=(none)
E:  Ad=8c(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0d(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=8a(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

driver_none

Please install the driver provided by quectel, i will send it to you via email soon.

Thanks, I got it and it solved the problem.

Can you please also provide me Linux USB drivers for BG-95 M3 on 5.16.3?

ok,i will send it to you via email soon.

I’m trying to install quectel driver in my linux, but now the issue is how to install driver manually and use it in linux… as well as it can shown on the linux networking interface.
At last, I’m using quectel RM500Q-GL…have some solution for me and many thanks!!

Please refer to the driver user guide to use module driver.

Hi Isaac, i get the same problem. Pls give me a guide to fix it.

Hello Isaac, I’m currently attempting to use a RMU500EK on Linux, if you could e-mail me the drivers too it would really help. Thank you!