Updating firmware in a mobile broadband modem
Pavlin Georgiev
pavlin at varna.net
Mon Apr 9 08:42:06 UTC 2018
My goal is to update the firmware of a broadband modem.
I use qmi-firmware-update in combination with Sierra Wireless EM7455.
That modem belongs to firmware series SWI9X30.
I have read some of the update examples.
I have made several experiments on EM7455.
All of them have failed at the beginning of the update process.
Now I try to try the cause.
I ask you for cooperation.
*HARDWARE*
# lsusb
Bus 003 Device 010: ID 413c:81b6 Dell Computer Corp.
Note: a re-branded modem by Dell
*DEVICE DRIVERS*
I didn't use drivers from Sierra Wireless.
Loaded modules are listed in the attached file.
Note: I didn't seen module "qmi_wwan" in that list.
Is the loading of driver "qmi_wwan" required?
*SOFTWARE ENVIRONMENT*
Distro: RHEL 7.5 x86_64 Workstation
kernel-3.10.0-862.el7.x86_64
libqmi-1.20.0-1.fc28.x86_64
libqmi-utils-1.20.0-1.fc28.x86_64
Note: libqmi is from Fedora 28 repository.
*UPDATE TRIALS*
I have tried and update operation by specifying:
A) THE VID:PID OF A DEVICE
B) AN EXPLICIT QMI DEVICE
Results are listed in the attached file.
Thanks in advance for your advice.
Pavlin Georgiev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libqmi-devel/attachments/20180409/931475f9/attachment.html>
-------------- next part --------------
Bus 003 Device 010: ID 413c:81b6 Dell Computer Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x413c Dell Computer Corp.
idProduct 0x81b6
bcdDevice 0.06
iManufacturer 1 Sierra Wireless, Incorporated
iProduct 2 EM7455
iSerial 3 001027009999999
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 260
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 05 24 00 10 01
** UNRECOGNIZED: 05 24 01 00 00
** UNRECOGNIZED: 04 24 02 02
** UNRECOGNIZED: 05 24 06 00 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 9
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 05 24 00 10 01
** UNRECOGNIZED: 05 24 01 00 00
** UNRECOGNIZED: 04 24 02 02
** UNRECOGNIZED: 05 24 06 00 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 9
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 12
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 14
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 12
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 14
bInterfaceProtocol 0
iInterface 0
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 12
bSlaveInterface 13
CDC MBIM:
bcdMBIMVersion 1.00
wMaxControlMessage 4096
bNumberFilters 32
bMaxFilterSize 128
wMaxSegmentSize 2048
bmNetworkCapabilities 0x20
8-byte ntb input size
UNRECOGNIZED CDC: 08 24 1c 00 01 40 dc 05
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 13
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 2
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 13
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 2
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
** UNRECOGNIZED: 2c ff 42 49 53 54 00 01 04 f5 40 f6 00 00 00 00 01 f7 c4 09 02 f8 88 13 03 f9 10 27 04 fa 10 27 00 09 04 00 00 a8 2d a7 c0 06 30 00
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 22
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000f
Device can operate at Low Speed (1Mbps)
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 1 micro seconds
bU2DevExitLat 500 micro seconds
Device Status: 0x0000
(Bus Powered)
-------------- next part --------------
EM7455
AN UPDATE OPERATION SPECIFYING THE VID:PID OF THE DEVICE
# qmi-firmware-update \
--update \
-d $USB_ID \
--device-open-mbim \
$FIRMWARE_IMG \
$FIRMWARE_CFG
loading device information before the update...
setting firmware preference:
firmware version: '02.26.01.00'
config version: '002.029_000'
carrier: 'SPRINT'
rebooting in download mode...
download mode detected
downloading cwe image: SWI9X30C_02.26.01.00.cwe (64.5 MB)...
(*-----) 00.0%error: error downloading image: couldn't write in session: error writing: only 94208/94208 bytes written
# qmi-firmware-update \
--update \
-p \
-d $USB_ID \
--device-open-mbim \
$FIRMWARE_IMG \
$FIRMWARE_CFG
loading device information before the update...
setting firmware preference:
firmware version: '02.24.03.00'
config version: '001.001_000'
carrier: 'VODAFONE'
rebooting in download mode...
download mode detected
downloading cwe image: SWI9X30C_02.24.03.00.cwe (64.4 MB)...
(*-----) 00.0%error: error downloading image: couldn't write in session: timed out waiting to write
# qmi-firmware-update \
--update \
-d $USB_ID \
$FIRMWARE_IMG \
$FIRMWARE_CFG
loading device information before the update...
setting firmware preference:
firmware version: '02.24.03.00'
config version: '001.001_000'
carrier: 'VODAFONE'
rebooting in download mode...
download mode detected
downloading cwe image: SWI9X30C_02.24.03.00.cwe (64.4 MB)...
(*-----) 00.0%error: error downloading image: couldn't write in session: timed out waiting to write
AN UPDATE OPERATION SPECIFYING AN EXPLICIT QMI DEVICE
# ls /dev/cdc*
/dev/cdc-wdm0
# qmi-firmware-update \
--update \
--cdc-wdm /dev/cdc-wdm0 \
$FIRMWARE_IMG \
$FIRMWARE_CFG
loading device information before the update...
setting firmware preference:
firmware version: '02.24.03.00'
config version: '001.001_000'
carrier: 'VODAFONE'
rebooting in download mode...
download mode detected
downloading cwe image: SWI9X30C_02.24.03.00.cwe (64.4 MB)...
(*-----) 00.0%error: error downloading image: couldn't write in session: timed out waiting to write
-------------- next part --------------
Module Size Used by
fuse 91880 2
xt_CHECKSUM 12549 1
iptable_mangle 12695 1
ipt_MASQUERADE 12678 3
nf_nat_masquerade_ipv4 13412 1 ipt_MASQUERADE
iptable_nat 12875 1
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26787 2 nf_nat_ipv4,nf_nat_masquerade_ipv4
nf_conntrack_ipv4 15053 2
nf_defrag_ipv4 12729 1 nf_conntrack_ipv4
xt_conntrack 12760 1
nf_conntrack 133053 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
ipt_REJECT 12541 2
nf_reject_ipv4 13373 1 ipt_REJECT
tun 31665 1
bridge 146976 0
stp 12976 1 bridge
llc 14552 2 stp,bridge
ebtable_filter 12827 0
ebtables 35009 1 ebtable_filter
ip6table_filter 12815 0
ip6_tables 26912 1 ip6table_filter
iptable_filter 12810 1
devlink 42368 0
sunrpc 353310 1
intel_powerclamp 14419 0
coretemp 13444 0
snd_hda_codec_hdmi 52231 1
intel_rapl 19542 0
ppdev 17671 0
snd_hda_codec_realtek 97550 1
kvm_intel 174841 0
snd_hda_codec_generic 73855 1 snd_hda_codec_realtek
kvm 578518 1 kvm_intel
iTCO_wdt 13480 0
iTCO_vendor_support 13718 1 iTCO_wdt
irqbypass 13503 1 kvm
qcserial 17489 0
snd_hda_intel 40122 6
usb_wwan 19909 1 qcserial
crc32_pclmul 13133 0
snd_hda_codec 135389 4 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel
ghash_clmulni_intel 13273 0
aesni_intel 189414 0
lrw 13286 1 aesni_intel
snd_hda_core 85885 5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
gf128mul 15139 1 lrw
glue_helper 13990 1 aesni_intel
snd_hwdep 13608 1 snd_hda_codec
ablk_helper 13597 1 aesni_intel
snd_seq 62785 0
cryptd 20511 3 ghash_clmulni_intel,aesni_intel,ablk_helper
snd_seq_device 14356 1 snd_seq
snd_pcm 101643 4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
snd_timer 29810 2 snd_pcm,snd_seq
snd 79215 22 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device
pcspkr 12718 0
sg 40721 0
soundcore 15047 1 snd
wmi 19086 0
parport_pc 28205 0
mei_me 32848 0
mei 91099 1 mei_me
parport 46395 2 ppdev,parport_pc
i2c_i801 22550 0
shpchp 37047 0
lpc_ich 21086 0
ip_tables 27126 3 iptable_filter,iptable_mangle,iptable_nat
xfs 1003971 3
libcrc32c 12644 3 xfs,nf_nat,nf_conntrack
sd_mod 46322 3
sr_mod 22416 0
crc_t10dif 12912 1 sd_mod
cdrom 42556 1 sr_mod
crct10dif_generic 12647 0
i915 1639824 1
iosf_mbi 14990 2 i915,intel_rapl
i2c_algo_bit 13413 1 i915
drm_kms_helper 176920 1 i915
ahci 34056 2
crct10dif_pclmul 14307 1
crct10dif_common 12595 3 crct10dif_pclmul,crct10dif_generic,crc_t10dif
syscopyarea 12529 1 drm_kms_helper
libahci 31992 1 ahci
sysfillrect 12701 1 drm_kms_helper
sysimgblt 12640 1 drm_kms_helper
fb_sys_fops 12703 1 drm_kms_helper
cdc_mbim 13511 0
libata 242992 2 ahci,libahci
drm 397988 3 i915,drm_kms_helper
cdc_wdm 19105 1 cdc_mbim
crc32c_intel 22094 1
serio_raw 13434 0
r8169 89196 0
cdc_ncm 31279 1 cdc_mbim
usbnet 44087 2 cdc_mbim,cdc_ncm
i2c_core 63151 5 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit
mii 13934 2 r8169,usbnet
video 24538 1 i915
dm_mirror 22289 0
dm_region_hash 20813 1 dm_mirror
dm_log 18411 2 dm_region_hash,dm_mirror
dm_mod 123941 11 dm_log,dm_mirror
More information about the libqmi-devel
mailing list