EM9191 MBPL install error

Hello Team,
I tried to buiild the MBPL driver code for qmi modem device. The module is unable to install and got the below error while doing insmod.

~/mbpl-driver/usb$ sudo insmod qcserial.ko

[sudo] password for sbaby:

insmod: ERROR: could not insert module qcserial.ko**: Unknown symbol in module**

~/mbpl-driver/usb

can I know of there is any kernel configuration or some other issue?

Regards
Simon

did you type “sudo make” and “sudo make install” in your platform?

yes I did. Below is the steps I followed.

got code from here : Mobile Broadband Package for Linux (SDK, Drivers, Documentation)

sudo make
sudo make install

i got the below files:

built-in.a modules.order qcserial.c qcserial.mod qcserial.mod.o qmi_wwan.c qmi_wwan.mod qmi_wwan.mod.o readme.txt usb-wwan.h usb_wwan.mod
Makefile Module.symvers qcserial.ko qcserial.mod.c qcserial.o qmi_wwan.ko qmi_wwan.mod.c qmi_wwan.o usb_wwan.c usb_wwan.ko usb_wwan.mod.c

then “sudo make install” already installs in your platform, you don’t need to insmod again

okay. lsmod did not shows any modules loaded.

here is the complete logs. it did not say any difference . with make install or without make install , both time it fails with "unknown symbol in module:

:~/mbpl-driver/usb$ sudo make
[sudo] password for sbaby:
make -C /lib/modules/5.4.0-150-generic/build M=/home/sbaby/mbpl-driver/usb modules
make[1]: Entering directory ‘/usr/src/linux-headers-5.4.0-150-generic’
CC [M] /home/sbaby/mbpl-driver/usb/qcserial.o
CC [M] /home/sbaby/mbpl-driver/usb/usb_wwan.o
CC [M] /home/sbaby/mbpl-driver/usb/qmi_wwan.o
Building modules, stage 2.
MODPOST 3 modules
CC [M] /home/sbaby/mbpl-driver/usb/qcserial.mod.o
LD [M] /home/sbaby/mbpl-driver/usb/qcserial.ko
CC [M] /home/sbaby/mbpl-driver/usb/qmi_wwan.mod.o
LD [M] /home/sbaby/mbpl-driver/usb/qmi_wwan.ko
CC [M] /home/sbaby/mbpl-driver/usb/usb_wwan.mod.o
LD [M] /home/sbaby/mbpl-driver/usb/usb_wwan.ko
make[1]: Leaving directory ‘/usr/src/linux-headers-5.4.0-150-generic’
~/mbpl-driver/usb$ sudo make install
sudo cp qcserial.ko /lib/modules/uname -r/kernel/drivers/usb/serial/qcserial.ko
sudo cp usb_wwan.ko /lib/modules/uname -r/kernel/drivers/usb/serial/usb_wwan.ko
sudo cp qmi_wwan.ko /lib/modules/uname -r/kernel/drivers/net/usb/qmi_wwan.ko
sudo depmod
~/mbpl-driver/usb$ ls
Makefile qcserial.c qcserial.mod.c qmi_wwan.c qmi_wwan.mod.c readme.txt usb_wwan.ko usb_wwan.mod.o
modules.order qcserial.ko qcserial.mod.o qmi_wwan.ko qmi_wwan.mod.o usb_wwan.c usb_wwan.mod usb_wwan.o
Module.symvers qcserial.mod qcserial.o qmi_wwan.mod qmi_wwan.o usb-wwan.h usb_wwan.mod.c
~/mbpl-driver/usb$ insmod qmi_wwan.ko
insmod: ERROR: could not insert module qmi_wwan.ko: Operation not permitted
~/mbpl-driver/usb$ sudo insmod qmi_wwan.ko
insmod: ERROR: could not insert module qmi_wwan.ko: Unknown symbol in module

did it enumerate /dev/ttyUSB port when you connect EM9191 to your platform?

no . It did not enumerate /dev/ttyUSB port when I connect EM9191 to one of the USB port.

Are you testing in ubuntu pc?
Does your module work in windows?

Any message show in dmesg in linux when you connect usb?

I am testing on intel atom processor running ubuntu 5.15 kernel. (using yocto build env)
I did not tested in windows.
I will send the logs tomorrow.

Suggest to test in windows and ubuntu pc for comparison

Do I need to enable any Linux kernel specific config flags for MBPL to work ?

Are we suppose to see any kernel modules loaded as part of lsmod after I execute “sudo make install “ ?

No, you need to connect usb of module, otherwise, the kernel module will not be loaded

Thank you . I will connect EM9191 to the usb and will check if it is loaded.

Capture

This is the log from dmesg after connecting EM9191 to intel atom board running ubuntu

May I know if there is any tool to test in windows to conmfirm the modem is working correctely.
I will test in windows and native linux (ubuntu ) too

on ubuntu PC i got the belwo messages from dmesg.

[ 9631.045526] usb 3-3: new high-speed USB device number 5 using xhci_hcd
[ 9631.195173] usb 3-3: config 1 has an invalid interface number: 4 but max is 3
[ 9631.195182] usb 3-3: config 1 has no interface number 2
[ 9631.198899] usb 3-3: New USB device found, idVendor=1199, idProduct=90d3, bcdDevice= 0.06
[ 9631.198910] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9631.198915] usb 3-3: Product: Sierra Wireless EM9191
[ 9631.198918] usb 3-3: Manufacturer: Sierra Wireless, Incorporated
[ 9631.198921] usb 3-3: SerialNumber: 782111505204A103
[ 9631.222846] cdc_mbim 3-3:1.0: setting rx_max = 16384
[ 9631.223615] cdc_mbim 3-3:1.0: cdc-wdm0: USB WDM device
[ 9631.224332] cdc_mbim 3-3:1.0 wwan0: register ‘cdc_mbim’ at usb-0000:00:14.0-3, CDC MBIM, 3a:18:ba:f5:00:61
[ 9631.226025] qcserial 3-3:1.3: Qualcomm USB modem converter detected
[ 9631.226299] usb 3-3: Qualcomm USB modem converter now attached to ttyUSB0
[ 9631.227038] qcserial 3-3:1.4: Qualcomm USB modem converter detected
[ 9631.227145] usb 3-3: Qualcomm USB modem converter now attached to ttyUSB1

bin$ lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M
|__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 5, If 0, Class=Communications, Driver=cdc_mbim, 480M
|__ Port 3: Dev 5, If 3, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 3: Dev 5, If 1, Class=CDC Data, Driver=cdc_mbim, 480M
|__ Port 3: Dev 5, If 4, Class=Vendor Specific Class, Driver=qcserial, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

How do I make sure the modem is connected and accepting AT commands ?

I also tried to lauch the below application but failed

bin$ ./lite-mbim-connection-managerhostx86_64

lite-mbim-connection-manager v1.0.2210.0

session
0

sp.telus.com
MBIMCompressionNone
MBIMAuthProtocolNone
MBIMContextIPTypeIPv4AndIPv6
false
vlan.0
4094

route
0.0.0.0
0

route
::
128

*bimTransport_Initialize failure
MbimTransport_Initialize failed for /dev/cdc-wdm0

I can see /dev/ttyUSB0 enumerated in your ubuntu pc, you can use minicom to send AT command

BTW, here is the USB driver in Windows:
https://source.sierrawireless.com/resources/airprime/software/sdx55-windows-drivers-build-5154/#sthash.NcVh1G9l.dpbs

Can I know any tool for windows to check the AT commands

i used the tool called tera term
You can also use Putty