Firmware upgrade for EM9293 fails on linux

Hello,
Have you experienced the same problem when trying to update the firmware on RHEL 10?

I am trying to update the firmware.
Modem was not communicating with the UGW (after approx 1 hour)
Tried to update the firmware

Now after the firmware update failed, also the Modem cannot connect any longer to the network.

uerying subscriber ready status ‘mbimcli -d /dev/cdc-wdm0 --query-subscriber-ready-status --device-open-proxy’…
error: operation failed: MBIM protocol error: NotOpened

System | device: /sys/devices/pci0000:00/0000:00:14.0/usb4/4-4
| physdev: /sys/devices/pci0000:00/0000:00:14.0/usb4/4-4
| drivers: cdc_mbim
| plugin: sierra
| primary port: cdc-wdm0
| ports: cdc-wdm0 (mbim), wwp0s20f0u4 (net)

./fw-download-toolhostx86_64 -f /root/images -p /dev/cdc-wdm0
Application version: 1.0.2412.2
INFO: QDL Port:
INFO: Device Path: /dev/cdc-wdm0
INFO: Device Port: 4-4
INFO: FW Path: /root/images
Target image Info:
Carrier :GENERIC
FW Version :02.17.08.00
Model ID :SWIX65C
Package ID :001
PRI Version:030.081
SKU :9999999
Switching device into download mode for image switch …
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 …
Modem not coming up in BOOT and HOLD mode in 60 seconds. Please check parameters. Application terminates.

[mbimcli -d /dev/cdc-wdm0 --set-radio-state=on
error: operation failed: Failure

mmcli -m 3 --command=‘MBIMMODE=1’
error: command failed: ‘GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unauthorized: Operation only allowed in debug mode’

seems you did not specify the download port /dev/ttyUSB0
for example:



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!!!
1 Like

Sure but there’s no device in RHEL with tty
no qcserial no usb just cdc_mbim

is this common for RHEL or … is just a problem on my side.

dmesg | grep tty

[ 0.047718] printk: legacy console [tty0] enabled
[ 0.505339] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 3.086180] systemd[1]: Created slice system-getty.slice - Slice /system/getty.

Did you install the MBPL USB driver?

https://source.sierrawireless.com/resources/airprime/software/mbpl/mbpl-software-latest/#sthash.gEXLzYb8.dpbs

1 Like

Hello … Yes, I did, but I think the driver isnt supported by RHEL 10 … redhat – will try debian to see what is going on …

[root@localhost usb]# make clean
rm -rf *.o *.cmd *.ko *.mod.c .tmp_versions *.o.ur-safe *.symvers *.order .cache.mk .mhi* .built-in* built-in.a *.mod
[root@localhost usb]# make
make -C /lib/modules/6.12.0-54.el10.x86_64/build M=/home/wifi/usb
make[1]: Entering directory '/usr/src/kernels/6.12.0-54.el10.x86_64'
  CC [M]  /home/wifi/usb/qcserial.o
  CC [M]  /home/wifi/usb/usb_wwan.o
  CC [M]  /home/wifi/usb/qmi_wwan.o
  MODPOST /home/wifi/usb/Module.symvers
  CC [M]  /home/wifi/usb/qcserial.mod.o
  CC [M]  /home/wifi/usb/.module-common.o
  LD [M]  /home/wifi/usb/qcserial.ko
  BTF [M] /home/wifi/usb/qcserial.ko
  CC [M]  /home/wifi/usb/usb_wwan.mod.o
  LD [M]  /home/wifi/usb/usb_wwan.ko
  BTF [M] /home/wifi/usb/usb_wwan.ko
  CC [M]  /home/wifi/usb/qmi_wwan.mod.o
  LD [M]  /home/wifi/usb/qmi_wwan.ko
  BTF [M] /home/wifi/usb/qmi_wwan.ko
make[1]: Leaving directory '/usr/src/kernels/6.12.0-54.el10.x86_64'
[root@localhost usb]# make install 
if [ -f /lib/modules/`uname -r`/kernel/drivers/usb/serial/qcserial.ko.zst ]; then \
zstd -f qcserial.ko; sudo cp qcserial.ko.zst /lib/modules/`uname -r`/kernel/drivers/usb/serial/qcserial.ko.zst; \
zstd -f usb_wwan.ko; sudo cp usb_wwan.ko.zst /lib/modules/`uname -r`/kernel/drivers/usb/serial/usb_wwan.ko.zst; \
zstd -f qmi_wwan.ko; sudo cp qmi_wwan.ko.zst /lib/modules/`uname -r`/kernel/drivers/net/usb/qmi_wwan.ko.zst; \
else \
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; \
fi 
sudo depmod
[root@localhost usb]# ls /lib/modules/`uname -r`/kernel/drivers/usb/serial/
aircable.ko.xz         f81534.ko.xz       keyspan.ko.xz      omninet.ko.xz   safe_serial.ko.xz       usb_wwan.ko.xz
ark3116.ko.xz          ftdi_sio.ko.xz     keyspan_pda.ko.xz  opticon.ko.xz   sierra.ko.xz            visor.ko.xz
belkin_sa.ko.xz        garmin_gps.ko.xz   kl5kusb105.ko.xz   option.ko.xz    spcp8x5.ko.xz           whiteheat.ko.xz
ch341.ko.xz            io_edgeport.ko.xz  kobil_sct.ko.xz    oti6858.ko.xz   ssu100.ko.xz            xr_serial.ko.xz
cp210x.ko.xz           io_ti.ko.xz        mct_u232.ko.xz     pl2303.ko.xz    symbolserial.ko.xz      xsens_mt.ko.xz
cyberjack.ko.xz        ipaq.ko.xz         mos7720.ko.xz      qcaux.ko.xz     ti_usb_3410_5052.ko.xz
cypress_m8.ko.xz       ipw.ko.xz          mos7840.ko.xz      **qcserial.ko**     upd78f0730.ko.xz
digi_acceleport.ko.xz  ir-usb.ko.xz       mxuport.ko.xz      qcserial.ko.xz  usb_debug.ko.xz
empeg.ko.xz            iuu_phoenix.ko.xz  navman.ko.xz       quatech2.ko.xz  **usb_wwan.ko**
[root@localhost usb]# ls /lib/modules/`uname -r`/kernel/drivers/net/usb/
asix.ko.xz          cdc_mbim.ko.xz     dm9601.ko.xz          ipheth.ko.xz    mcs7830.ko.xz  qmi_wwan.ko.xz    sierra_net.ko.xz
ax88179_178a.ko.xz  cdc_ncm.ko.xz      gl620a.ko.xz          kalmia.ko.xz    net1080.ko.xz  r8152.ko.xz       smsc75xx.ko.xz
catc.ko.xz          cdc_subset.ko.xz   hso.ko.xz             kaweth.ko.xz    pegasus.ko.xz  r8153_ecm.ko.xz   smsc95xx.ko.xz
cdc_eem.ko.xz       ch9200.ko.xz       huawei_cdc_ncm.ko.xz  lan78xx.ko.xz   plusb.ko.xz    rndis_host.ko.xz  usbnet.ko.xz
cdc_ether.ko.xz     cx82310_eth.ko.xz  int51x1.ko.xz         lg-vl600.ko.xz  **qmi_wwan.ko**    rtl8150.ko.xz     zaurus.ko.xz
[root@localhost usb]# lsmod | grep wwan
qmi_wwan               40960  0
usb_wwan               28672  2 qcserial,option
cdc_wdm                36864  2 cdc_mbim,qmi_wwan
usbnet                 65536  4 cdc_mbim,cdc_ncm,qmi_wwan,cdc_ether
[root@localhost usb]# gmesg | grep wwan
-bash: gmesg: command not found
[root@localhost usb]# dmesg | grep wwan
[    4.603447] wwan wwan0: port wwan0mbim0 attached
[    4.603584] cdc_mbim 4-4:1.0 wwan0: register 'cdc_mbim' at usb-0000:00:14.0-4, CDC MBIM, 96:10:a5:e1:ce:50
[    4.654733] cdc_mbim 4-4:1.0 wwp0s20f0u4: renamed from wwan0
[   88.444112] usbcore: registered new interface driver qmi_wwan
[root@localhost usb]# dmesg | grep tty
[    0.047635] printk: legacy console [tty0] enabled
[    0.508648] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    3.987289] systemd[1]: Created slice system-getty.slice - Slice /system/getty.

does it work now for the fw-download tool?

Hello. YES. Works on Ubuntu – on RHEL 10 doesnt work. The driver qcserial isnt suported on RHEL. So I advise everyone else not to use this Modem with RHEL. Thank you !

FW info from modem:
Model ID : EM9293
FW Version : SWIX65C_02.17.08.00
Carrier Name : GENERIC
Carrier PRI Revision: 030.081_001
Firmware download process completed successfully.