Getting GPS from EM9191

Hello, I connected an EM9191 module via a M2 to USB adapter to a Ubuntu 20.04 machine. I was able to connect to a 4G network using Modem Manager after installing the MBPL drivers for it. Now, I am trying to get GPS coordinates out of it. I run:

mmcli -m 0 --location-status

and I only get ‘3gpp-lca-ci’ listed and enabled. It seems like I may need to enable it via an AT commend, but that is where I started to find some issues. I only have /dev/ttyUSB0 and /dev/ttyUSB1 listed. USB0 is locked and USB1 does not seem to be receiving any AT commands since I don’t get any response from it. I was able to to connect serially to the board and send AT commands using Windows, but not through Ubuntu. Any suggestions?

are you using the latest FW?

Do you see the following in kernel log?

[ 1023.214800] usb 3-2.1: Product: Sierra Wireless EM9190
[ 1023.214801] usb 3-2.1: Manufacturer: Sierra Wireless, Incorporated
[ 1023.214802] usb 3-2.1: SerialNumber: 4H11720105123456
[ 1023.368380] cdc_mbim 3-2.1:1.0: setting rx_max = 16384
[ 1023.370630] cdc_mbim 3-2.1:1.0: cdc-wdm0: USB WDM device
[ 1023.370801] cdc_mbim 3-2.1:1.0 wwan0: register 'cdc_mbim' at usb-0000:03:00.0-2.1, CDC MBIM, 56:2c:2c:2b:66:d8
[ 1023.372993] qcserial 3-2.1:1.3: Qualcomm USB modem converter detected
[ 1023.373054] usb 3-2.1: Qualcomm USB modem converter now attached to ttyUSB0
[ 1023.373807] qcserial 3-2.1:1.4: Qualcomm USB modem converter detected
[ 1023.373871] usb 3-2.1: Qualcomm USB modem converter now attached to ttyUSB1

Do you have other Ubuntu PC to test?
e.g. Ubuntu 18

I guess the modem manger is occupying the AT command port, you can disable the modemanager and see if the AT command port works:

//uninstall modemmanager
sudo killall modem-manager
sudo apt-get purge modem-manager

I am using a Jetson Xavier NX with Ubuntu 20.04 installed. I also tested it in the Jetson Nano with Ubuntu 18.04 and found the same issues. When looking at the kernel log, I get the following:

Dec 13 09:35:00 ubuntu kernel: [ 148.750845] usb 2-3.3: Product: Sierra Wireless EM9191
Dec 13 09:35:00 ubuntu kernel: [ 148.750853] usb 2-3.3: Manufacturer: Sierra Wireless, Incorporated
Dec 13 09:35:00 ubuntu kernel: [ 148.750861] usb 2-3.3: SerialNumber: 8W2243501803A133
Dec 13 09:35:00 ubuntu kernel: [ 148.756959] usb 2-3.3: Enable of device-initiated U1 failed.
Dec 13 09:35:00 ubuntu kernel: [ 148.758338] usb 2-3.3: Enable of device-initiated U2 failed.
Dec 13 09:35:00 ubuntu kernel: [ 148.899799] usb_wwan: module verification failed: signature and/or required key missing - tainting kernel
Dec 13 09:35:00 ubuntu kernel: [ 148.910134] usbcore: registered new interface driver qcserial
Dec 13 09:35:00 ubuntu kernel: [ 148.910187] usbserial: USB Serial support registered for Qualcomm USB modem
Dec 13 09:35:00 ubuntu kernel: [ 148.910223] usbserial: USB Serial support registered for Qualcomm USB modem
Dec 13 09:35:00 ubuntu kernel: [ 148.912758] usb 2-3.3: Enable of device-initiated U1 failed.
Dec 13 09:35:00 ubuntu kernel: [ 148.914294] usb 2-3.3: Enable of device-initiated U2 failed.
Dec 13 09:35:00 ubuntu kernel: [ 148.914911] qcserial 2-3.3:1.3: Qualcomm USB modem converter detected
Dec 13 09:35:00 ubuntu kernel: [ 148.915271] usb 2-3.3: Qualcomm USB modem converter now attached to ttyUSB0
Dec 13 09:35:00 ubuntu kernel: [ 148.918354] usb 2-3.3: Enable of device-initiated U1 failed.
Dec 13 09:35:00 ubuntu kernel: [ 148.920013] usb 2-3.3: Enable of device-initiated U2 failed.
Dec 13 09:35:00 ubuntu kernel: [ 148.920651] qcserial 2-3.3:1.4: Qualcomm USB modem converter detected
Dec 13 09:35:00 ubuntu kernel: [ 148.921518] usb 2-3.3: Qualcomm USB modem converter now attached to ttyUSB1

I tried uninstalling the modemmanager but did not change anything. Also, I downloading the MBLP fw tool to try to update the kernel by running the command:

./fwdwl-litearm64linaro -f SWIX55C_03.09.11.00-001_ATT_030.046_001/

and got the following message:

Application version: 1.0.2211.2
Device info unknown. Either no device or multiple devices are found. Application terminates.

Any suggestions would be appreciated.
Thanks,

I used this command to upgrade FW:


jordan@jordan-X240:~/QMI/MBPL/MBPL_SDK_R21_ENG2-lite.bin/SampleApps/lite-fw-download$ sudo ./bin/fwdwl-litehostx86_64 -l pcie_mbim.log -f /home/jordan/Desktop/EM919x_FW/Release2/ -m 4 -d /dev/ttyUSB0 -p /dev/cdc-wdm0 -t 1 -w SWIX55C_02.08.01.00-002.cwe -n SWIX55C_02.08.01.00_GENERIC_020.007_002.nvu
Application version: 1.0.2106.0
INFO: QDL Port  :  /dev/ttyUSB0
INFO: Device Path: /dev/cdc-wdm0
INFO: FW  Path  :  /home/jordan/Desktop/EM919x_FW/Release2/
Target image Info:
Carrier    :GENERIC
FW Version :02.08.01.00
Model ID   :SWIX55C
Package ID :002
PRI Version:020.007
SKU        :9999999
Switching device into download mode ...
Modem Needs FW
Modem Needs PRI
Waiting for modem to disconnect from the host ...
Modem disconnected from host.
Waiting for modem to come up in BOOT and HOLD mode ...
BOOT and HOLD Mode. Downloading firmware ...
Downloading: /home/jordan/Desktop/EM919x_FW/Release2//SWIX55C_02.08.01.00-002.cwe
Downloading: /home/jordan/Desktop/EM919x_FW/Release2//SWIX55C_02.08.01.00_GENERIC_020.007_002.nvu
FW download succeeded.
Waiting for modem to come up in ONLINE mode ...
Modem is now in ONLINE mode ... 
FW update status: Successful
FW info from modem:
Model ID            : EM9190
FW Version          : SWIX55C_02.08.01.00
Carrier Name        : GENERIC
Carrier PRI Revision: 020.007_002
Firmware Download Process completed
Exiting Application!!!

BTW, did you try your module in Windows platform first?

For “module verification failed: signature and/or required key missing - tainting kernel”, you can see here:

Thanks. When, I try this command:

sudo ./fwdwl-litearm64linaro -l pcie_mbim.log -f /home/murano/Src/lite-fw-download/bin/SWIX55C_03.09.11.00-001_ATT_030.046_001 -m 4 -d /dev/ttyUSB0 -p /dev/cdc-wdm0 -t 1 -w SWIX55C_03.09.11.00-002.cwe -n SWIX55C_03.09.11.00-001_ATT_030.046_001.nvu

I get the error message:

Application version: 1.0.2211.2
info: option requires an argument – ‘p’
Unable to locate the device or determine device mode.

The driver /dev/cdc-wdm0 does not exist. If I remove the -p option then I get:

Application version: 1.0.2211.2
Unable to locate the device or determine device mode.

About the Windows question, the answer is “Yes”. I tried the device in windows first.

did you install the MBPL USB driver?
It should have the /dev/cdc-wdm0 interface…

Did you try in Windows about AT!USBCOMP? and see if MBIM interface is enabled?

BTW, you can also upgrade FW in Windows by:
fdt2.exe -d g5k -ignswto -f SWIX55C_03.09.03.00-001.cwe SWIX55C_03.09.03.00-001_VERIZON_030.033_001.nvu

I installed the “MBPL_DRIVERS_R28_ENG1-usb-src” drivers from the Sierra Wireless website. This is what I get after running “lsusb -t”

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M

__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
__ Port 3: Dev 3, If 0, Class=Communications, Driver=, 5000M
__ Port 3: Dev 3, If 1, Class=CDC Data, Driver=, 5000M
__ Port 3: Dev 3, If 3, Class=Vendor Specific Class, Driver=qcserial, 5000M
__ Port 3: Dev 3, If 4, Class=Vendor Specific Class, Driver=qcserial, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
__ Port 2: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
__ Port 5: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 480M
__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M

I don’t see a cdc-wdm interface as shown in the documentation. Looking at the documentation for the module, I saw that I actually have a SDX55 chip, which means that I should try USB0 for the AT connectivity. This was locked before when running modemmanager but now that I uninstalled it, it worked. However, I get an error when running AT!USBCOMP. Here is the output from the terminal:

AT
OK
AT!USBCOMP
ERROR

I did not know that there is a Windows firmware update software. All that I saw online was the Windows Drivers and the Linux app for firmware update. Could you point me to the link for the Windows Firmware software?
Thanks,

For the AT command issue, is it possible that I need to enter the password first? I read that in the AT documentation, but I don’t recall getting any default passwords with my device.

I found the Windows tool here: https://source.sierrawireless.com/resources/airprime/software/fdt/#sthash.hqRD5Y55.dpbs
The firmware is updated now. I also found another post about the password: https://forum.sierrawireless.com/t/em9191-at-password-not-working/27219/2 and got that working now.

I think the last step is to enable GPS and get GPS coordinates. It would save me some time if you could tell me what commands to use for that. I want to get to the point that I can pull GPS coordinates from a command in a terminal. Thanks.

you can see my test in linux to get NMEA frame:

  1. sudo apt-get install libmbim-utils
  2. make sure MBIM port is enabled in AT!USBCOMP?
  3. connect antenna to AUX antenna port
  4. power on the EM9191 with FW SWIX55C_03.09.06.00
  5. Make sure GPSENABLE has been enabled in AT!CUSTOM?
  6. AT!GPSAUTOSTART=1 should be set
  7. after power on, kernel log should show the following:

[ 1023.214800] usb 3-2.1: Product: Sierra Wireless EM9190
[ 1023.214801] usb 3-2.1: Manufacturer: Sierra Wireless, Incorporated
[ 1023.214802] usb 3-2.1: SerialNumber: 4H1172010503A145
[ 1023.368380] cdc_mbim 3-2.1:1.0: setting rx_max = 16384
[ 1023.370630] cdc_mbim 3-2.1:1.0: cdc-wdm0: USB WDM device
[ 1023.370801] cdc_mbim 3-2.1:1.0 wwan0: register ‘cdc_mbim’ at usb-0000:03:00.0-2.1, CDC MBIM, 56:2c:2c:2b:66:d8
[ 1023.372993] qcserial 3-2.1:1.3: Qualcomm USB modem converter detected
[ 1023.373054] usb 3-2.1: Qualcomm USB modem converter now attached to ttyUSB0
[ 1023.373807] qcserial 3-2.1:1.4: Qualcomm USB modem converter detected
[ 1023.373871] usb 3-2.1: Qualcomm USB modem converter now attached to ttyUSB1


  1. Get the CID

owner@ubuntu:~/Downloads$ sudo qmicli -p --device=/dev/cdc-wdm0 --loc-start --client-no-release-cid --loc-session-id=53
[sudo] password for owner:
[/dev/cdc-wdm0] Successfully started location tracking (session id 53)
[/dev/cdc-wdm0] Client ID not released:
Service: ‘loc’
CID: ‘4’

  1. Put the CID in the following command

owner@ubuntu:~/Downloads$ sudo qmicli -p --device=/dev/cdc-wdm0 --loc-follow-nmea --client-cid=4 --client-no-release-cid --loc-session-id=53
$GPGSV,1,1,03,30,26,203,13,07,10,178,08,163
$GQGSV,1,1,02,02,56,143,24,04,28,1
58
$GBGSV,2,1,08,01,47,122,02,45,234,03,63,188,04,33,108,172
$GBGSV,2,2,08,22,30,125,24,44,286,25,26,50,209,1
4C
$GAGSV,1,1,01,21,27,774
$GNDTM,P90,N,W,W84
4F
$GPGGA,034719.00,0,40
$GBGGA,034719.00,0,52
$GNGGA,034719.00,0,5E
$GNGNS,034719.00,NNN,V
41
$GBVTG,T,M,N,K,N
3E
$GNVTG,T,M,N,K,N
32

Thanks. Unfortunately, I am still unable to see /dev/cdc-wdm0. Here is what I got in the kernel log:

Dec 29 11:01:38 ubuntu kernel: [ 5794.160481] usb 2-3.4: Product: Sierra Wireless EM9191
Dec 29 11:01:38 ubuntu kernel: [ 5794.160490] usb 2-3.4: Manufacturer: Sierra Wireless, Incorporated
Dec 29 11:01:38 ubuntu kernel: [ 5794.160510] usb 2-3.4: SerialNumber: 8W2243501803A133
Dec 29 11:01:38 ubuntu kernel: [ 5794.170951] usb 2-3.4: Enable of device-initiated U1 failed.
Dec 29 11:01:38 ubuntu kernel: [ 5794.172713] usb 2-3.4: Enable of device-initiated U2 failed.
Dec 29 11:01:38 ubuntu kernel: [ 5794.176218] usb 2-3.4: Enable of device-initiated U1 failed.
Dec 29 11:01:38 ubuntu kernel: [ 5794.181452] usb 2-3.4: Enable of device-initiated U2 failed.
Dec 29 11:01:38 ubuntu kernel: [ 5794.182375] qcserial 2-3.4:1.3: Qualcomm USB modem converter detected
Dec 29 11:01:38 ubuntu kernel: [ 5794.182811] usb 2-3.4: Qualcomm USB modem converter now attached to ttyUSB0
Dec 29 11:01:38 ubuntu kernel: [ 5794.185878] usb 2-3.4: Enable of device-initiated U1 failed.
Dec 29 11:01:38 ubuntu kernel: [ 5794.188214] usb 2-3.4: Enable of device-initiated U2 failed.
Dec 29 11:01:38 ubuntu kernel: [ 5794.188900] qcserial 2-3.4:1.4: Qualcomm USB modem converter detected
Dec 29 11:01:38 ubuntu kernel: [ 5794.189207] usb 2-3.4: Qualcomm USB modem converter now attached to ttyUSB1

have you checked MBIM port is enabled in AT!USBCOMP?

Yes, if I got the following:

Config Index: 1
Config Type: 4 (USBIF-MBIM-V2)
Interface bitmask: 00001009 (diag,modem,mbim)

If I read the documentation correctly, this mask indicates that mbim is enabled.
Thanks,

the MBIM driver (cdc_mbim) should be installed by default in Ubuntu.
I remember I don’t need to install extra driver…

Hi - were you able to get your EM9191 installed on Jetson running 20.04? Its been a year since your last post but the thread does not come to conclusion. Appreciate any info and/or suggestions.