It would probably help to have the input files too, which is to say the output of "qmi-firmware-update --help" and "qmicli --help-all". They're attached.
Usage: qmi-firmware-update [OPTION…] FILE1 FILE2... - Update firmware in QMI devices
Generic device selection options
-s, --busnum-devnum=[BUS:]DEV Select device by bus and device number
(in decimal).
-d, --vid-pid=VID[:PID] Select device by device vendor and
product id (in hexadecimal).
-w, --cdc-wdm=[PATH] Select device by QMI/MBIM cdc-wdm device
path (e.g. /dev/cdc-wdm0).
-t, --tty=[PATH] Select device by serial device path
(e.g. /dev/ttyUSB2).
Update options (normal mode)
-u, --update Launch firmware update process.
-f, --firmware-version=[VERSION] Firmware version (e.g. '05.05.58.00').
-c, --config-version=[VERSION] Config version (e.g. '005.025_002').
-C, --carrier=[CARRIER] Carrier name (e.g. 'Generic').
--ignore-version-errors Run update operation even with version
string errors.
--override-download Download images even if module says it
already has them.
--modem-storage-index=[INDEX] Index storage for the modem image.
--skip-validation Don't wait to validate the running
firmware after update.
Reset options (normal mode)
-b, --reset Reset device into download mode.
Update options (download mode)
-U, --update-download Launch firmware update process while in
download (boot & hold) mode.
Verify options
-z, --verify Analyze and verify firmware images.
Application Options:
-p, --device-open-proxy Request to use the 'qmi-proxy' proxy.
--device-open-qmi Open a cdc-wdm device explicitly in QMI
mode
--device-open-mbim Open a cdc-wdm device explicitly in MBIM
mode
--device-open-auto Open a cdc-wdm device in either QMI or
MBIM mode (default)
--ignore-mm-runtime-check Ignore ModemManager runtime check
-v, --verbose Run action with verbose messages in
standard output, including the debug ones.
-S, --silent Run action with no messages in standard
output; not even the error ones.
-L, --verbose-log=[PATH] Write verbose messages to an output file.
-V, --version Print version.
-h, --help Show help.
-H, --help-examples Show help examples.
***************************************************************************
Warning!
***************************************************************************
Use this program with caution. The authors take *no* responsibility if any
device gets broken as a result of using this program.
Please report issues to the libqmi mailing list at:
[email protected]
Usage:
qmicli [OPTION…] - Control QMI devices
Help Options:
-h, --help
Show help options
--help-all
Show all help options
--help-dms
Show Device Management Service options
--help-nas
Show Network Access Service options
--help-wds
Show Wireless Data Service options
--help-pbm
Show Phonebook Management options
--help-pdc
Show platform device configurations options
--help-uim
Show User Identity Module options
--help-wms
Show Wireless Messaging Service options
--help-wda
Show Wireless Data Administrative options
--help-voice
Show Voice Service options
--help-loc
Show location options
--help-qos
Show Quality of Service options
--help-gas
Show General Application Service options
DMS options
--dms-get-ids
Get IDs
--dms-get-capabilities
Get capabilities
--dms-get-manufacturer
Get manufacturer
--dms-get-model
Get model
--dms-get-revision
Get revision
--dms-get-msisdn
Get MSISDN
--dms-get-power-state
Get power state
--dms-uim-set-pin-protection=[(PIN|PIN2),(disable|enable),(current PIN)]
Set PIN protection in the UIM
--dms-uim-verify-pin=[(PIN|PIN2),(current PIN)]
Verify PIN
--dms-uim-unblock-pin=[(PIN|PIN2),(PUK),(new PIN)]
Unblock PIN
--dms-uim-change-pin=[(PIN|PIN2),(old PIN),(new PIN)]
Change PIN
--dms-uim-get-pin-status
Get PIN status
--dms-uim-get-iccid
Get ICCID
--dms-uim-get-imsi
Get IMSI
--dms-uim-get-state
Get UIM State
--dms-uim-get-ck-status=[(pn|pu|pp|pc|pf)]
Get CK Status
--dms-uim-set-ck-protection=[(pn|pu|pp|pc|pf),(disable),(key)]
Disable CK protection
--dms-uim-unblock-ck=[(pn|pu|pp|pc|pf),(key)]
Unblock CK
--dms-get-hardware-revision
Get the HW revision
--dms-get-operating-mode
Get the device operating mode
--dms-set-operating-mode=[(Operating mode)]
Set the device operating mode
--dms-get-time
Get the device time
--dms-get-prl-version
Get the PRL version
--dms-get-activation-state
Get the state of the service activation
--dms-activate-automatic=[Activation Code]
Request automatic service activation
--dms-activate-manual=[SPC,SID,MDN,MIN]
Request manual service activation
--dms-get-user-lock-state
Get the state of the user lock
--dms-set-user-lock-state=[(disable|enable),(current lock code)]
Set the state of the user lock
--dms-set-user-lock-code=[(old lock code),(new lock code)]
Change the user lock code
--dms-read-user-data
Read user data
--dms-write-user-data=[(User data)]
Write user data
--dms-read-eri-file
Read ERI file
--dms-restore-factory-defaults=[(Service Programming Code)]
Restore factory defaults
--dms-validate-service-programming-code=[(Service Programming Code)]
Validate the Service Programming Code
--dms-set-firmware-id
Set firmware id
--dms-get-band-capabilities
Get band capabilities
--dms-get-factory-sku
Get factory stock keeping unit
--dms-list-stored-images
List stored images
--dms-select-stored-image=[modem#,pri#] where # is the index
Select stored image
--dms-delete-stored-image=[modem#|pri#] where # is the index
Delete stored image
--dms-get-firmware-preference
Get firmware preference
--dms-set-firmware-preference=[(fwver),(config),(carrier)]
Set firmware preference
--dms-get-boot-image-download-mode
Get boot image download mode
--dms-set-boot-image-download-mode=[normal|boot-and-recovery]
Set boot image download mode
--dms-get-software-version
Get software version
--dms-set-fcc-authentication
Set FCC authentication
--dms-get-supported-messages
Get supported messages
--dms-hp-change-device-mode=[fastboot]
Change device mode (HP specific)
--dms-swi-get-current-firmware
Get Current Firmware (Sierra Wireless
specific)
--dms-swi-get-usb-composition
Get current and supported USB compositions
(Sierra Wireless specific)
--dms-swi-set-usb-composition=[#]
Set USB composition (Sierra Wireless
specific)
--dms-dell-change-device-mode=[fastboot-ota|fastboot-online]
Change device mode (DELL specific)
--dms-dell-get-firmware-version=[firmware-mcfg-apps|firmware-mcfg|apps]
Get firmware version (DELL specific)
--dms-reset
Reset the service state
--dms-noop
Just allocate or release a DMS client. Use
with `--client-no-release-cid' and/or `--client-cid'
NAS options
--nas-get-signal-strength
Get signal strength
--nas-get-signal-info
Get signal info
--nas-get-tx-rx-info=[(Radio Interface)]
Get TX/RX info
--nas-get-home-network
Get home network
--nas-get-serving-system
Get serving system
--nas-get-system-info
Get system info
--nas-get-technology-preference
Get technology preference
--nas-get-system-selection-preference
Get system selection preference
--nas-set-system-selection-preference=[cdma-1x|cdma-1xevdo|gsm|umts|lte|td-scdma][,[automatic|manual=MCCMNC]]
Set system selection preference
--nas-network-scan
Scan networks
--nas-get-cell-location-info
Get Cell Location Info
--nas-force-network-search
Force network search
--nas-get-operator-name
Get operator name data
--nas-get-lte-cphy-ca-info
Get LTE Cphy CA Info
--nas-get-rf-band-info
Get RF Band Info
--nas-get-supported-messages
Get supported messages
--nas-swi-get-status
Get status ((Sierra Wireless specific)
--nas-reset
Reset the service state
--nas-noop
Just allocate or release a NAS client. Use
with `--client-no-release-cid' and/or `--client-cid'
WDS options
--wds-start-network=["key=value,..."]
Start network (allowed keys: apn,
3gpp-profile, 3gpp2-profile, auth (PAP|CHAP|BOTH), username, password,
autoconnect=yes, ip-type (4|6))
--wds-follow-network
Follow the network status until
disconnected. Use with `--wds-start-network'
--wds-stop-network=[Packet data handle] OR [disable-autoconnect]
Stop network
--wds-get-current-settings
Get current settings
--wds-get-packet-service-status
Get packet service status
--wds-get-packet-statistics
Get packet statistics
--wds-get-data-bearer-technology
Get data bearer technology
--wds-get-current-data-bearer-technology
Get current data bearer technology
--wds-go-dormant
Make the active data connection go dormant
--wds-go-active
Make the active data connection go active
--wds-get-dormancy-status
Get the dormancy status of the active data
connection
--wds-create-profile=["(3gpp|3gpp2)[,key=value,...]"]
Create new profile using first available
profile index (optional keys: name, apn, pdp-type (IP|PPP|IPV6|IPV4V6), auth
(NONE|PAP|CHAP|BOTH), username, password, context-num, no-roaming=yes,
disabled=yes)
--wds-swi-create-profile-indexed=["(3gpp|3gpp2),#[,key=value,...]"]
Create new profile at specified profile
index [Sierra Wireless specific] (optional keys: name, apn, pdp-type
(IP|PPP|IPV6|IPV4V6), auth (NONE|PAP|CHAP|BOTH), username, password,
context-num, no-roaming=yes, disabled=yes)
--wds-modify-profile=["(3gpp|3gpp2),#,key=value,..."]
Modify existing profile (optional keys:
name, apn, pdp-type (IP|PPP|IPV6|IPV4V6), auth (NONE|PAP|CHAP|BOTH), username,
password, context-num, no-roaming=yes, disabled=yes)
--wds-delete-profile=[(3gpp|3gpp2),#]
Delete existing profile
--wds-get-profile-list=[3gpp|3gpp2]
Get profile list
--wds-get-default-profile-num=[3gpp|3gpp2]
Get default profile number
--wds-set-default-profile-num=[(3gpp|3gpp2),#]
Set default profile number
--wds-get-default-settings=[3gpp|3gpp2]
Get default settings
--wds-get-autoconnect-settings
Get autoconnect settings
--wds-set-autoconnect-settings=[(enabled|disabled|paused)[,(roaming-allowed|home-only)]]
Set autoconnect settings (roaming settings optional)
--wds-get-supported-messages
Get supported messages
--wds-reset
Reset the service state
--wds-bind-mux-data-port=["key=value,..."]
Bind qmux data port to controller device
(allowed keys: mux-id, ep-iface-number) to be used with
`--client-no-release-cid'
--wds-set-ip-family=[4|6]
Set IP family
--wds-get-channel-rates
Get channel data rates
--wds-noop
Just allocate or release a WDS client. Use
with `--client-no-release-cid' and/or `--client-cid'
PBM options
--pbm-get-all-capabilities
Get all phonebook capabilities
--pbm-noop
Just allocate or release a PBM client. Use
with `--client-no-release-cid' and/or `--client-cid'
PDC options
--pdc-list-configs=[(platform|software)]
List all configs
--pdc-delete-config=[(platform|software),ConfigId]
Delete config
--pdc-activate-config=[(platform|software),ConfigId]
Activate config
--pdc-deactivate-config=[(platform|software),ConfigId]
Deactivate config
--pdc-load-config=[Path to config]
Load config to device
--pdc-noop
Just allocate or release a PDC client. Use
with `--client-no-release-cid' and/or `--client-cid'
UIM options
--uim-set-pin-protection=[(PIN1|PIN2|UPIN),(disable|enable),(current PIN)]
Set PIN protection
--uim-verify-pin=[(PIN1|PIN2|UPIN),(current PIN)]
Verify PIN
--uim-unblock-pin=[(PIN1|PIN2|UPIN),(PUK),(new PIN)]
Unblock PIN
--uim-change-pin=[(PIN1|PIN2|UPIN),(old PIN),(new PIN)]
Change PIN
--uim-read-transparent=[0xNNNN,0xNNNN,...]
Read a transparent file given the file path
--uim-get-file-attributes=[0xNNNN,0xNNNN,...]
Get the attributes of a given file
--uim-read-record=["key=value,..."]
Read a record from given file (allowed
keys: record-number, record-length, file ([0xNNNN-0xNNNN,...])
--uim-get-card-status
Get card status
--uim-get-supported-messages
Get supported messages
--uim-sim-power-on=[(slot number)]
Power on SIM card
--uim-sim-power-off=[(slot number)]
Power off SIM card
--uim-change-provisioning-session=["key=value,..."]
Change provisioning session (allowed keys:
session-type, activate, slot, aid)
--uim-reset
Reset the service state
--uim-noop
Just allocate or release a UIM client. Use
with `--client-no-release-cid' and/or `--client-cid'
WMS options
--wms-get-supported-messages
Get supported messages
--wms-reset
Reset the service state
--wms-noop
Just allocate or release a WMS client. Use
with `--client-no-release-cid' and/or `--client-cid'
WDA options
--wda-set-data-format=["key=value,..."]
Set data format (allowed keys:
link-layer-protocol (802-3|raw-ip), ul-protocol (tlp|qc-ncm|mbim|rndis|qmap),
dl-protocol (tlp|qc-ncm|mbim|rndis|qmap), dl-datagrams-max-size,
dl-max-datagrams, ep-type (undefined|hsusb), ep-iface-number)
--wda-get-data-format
Get data format
--wda-get-supported-messages
Get supported messages
--wda-noop
Just allocate or release a WDA client. Use
with `--client-no-release-cid' and/or `--client-cid'
VOICE options
--voice-get-config
Get Voice service configuration
--voice-get-supported-messages
Get supported messages
--voice-noop
Just allocate or release a VOICE client.
Use with `--client-no-release-cid' and/or `--client-cid'
LOC options
--loc-session-id=[ID]
Session ID for the LOC session
--loc-start
Start location gathering
--loc-stop
Stop location gathering
--loc-get-position-report
Get position reported by the location module
--loc-get-gnss-sv-info
Show GNSS space vehicle info
--loc-timeout=[SECS]
Maximum time to wait for information in
`--loc-get-position-report' and `--loc-get-gnss-sv-info' (default 30s)
--loc-follow-position-report
Follow all position updates reported by the
location module indefinitely
--loc-follow-gnss-sv-info
Follow all GNSS space vehicle info updates
reported by the location module indefinitely
--loc-follow-nmea
Follow all NMEA trace updates reported by
the location module indefinitely
--loc-delete-assistance-data
Delete positioning assistance data
--loc-noop
Just allocate or release a LOC client. Use
with `--client-no-release-cid' and/or `--client-cid'
QoS options
--qos-get-flow-status=[QoS ID]
Get QoS flow status
--qos-get-network-status
Gets the network status
--qos-swi-read-data-stats=[APN ID]
Read data stats (Sierra Wireless specific)
--qos-reset
Reset the service state
--qos-noop
Just allocate or release a QOS client. Use
with `--client-no-release-cid' and/or `--client-cid'
GAS options
--gas-dms-get-firmware-list
Gets the list of stored firmware
--gas-dms-get-active-firmware
Gets the currently active firmware
--gas-dms-set-active-firmware=[index]
Sets the active firmware index
--gas-noop
Just allocate or release a GAS client. Use
with `--client-no-release-cid' and/or `--client-cid'
Application Options:
-d, --device=[PATH]
Specify device path
-w, --get-wwan-iface
Get the WWAN iface name associated with
this control port
-e, --get-expected-data-format
Get the expected data format in the WWAN
iface
-E, --set-expected-data-format=[802-3|raw-ip]
Set the expected data format in the WWAN
iface
--get-service-version-info
Get service version info
--device-set-instance-id=[Instance ID]
Set instance ID
--device-open-version-info
Run version info check when opening device
--device-open-sync
Run sync operation when opening device
-p, --device-open-proxy
Request to use the 'qmi-proxy' proxy
--device-open-qmi
Open a cdc-wdm device explicitly in QMI mode
--device-open-mbim
Open a cdc-wdm device explicitly in MBIM
mode
--device-open-auto
Open a cdc-wdm device in either QMI or MBIM
mode (default)
--device-open-net=[net-802-3|net-raw-ip|net-qos-header|net-no-qos-header]
Open device with specific link protocol and
QoS flags
--client-cid=[CID]
Use the given CID, don't allocate a new one
--client-no-release-cid
Do not release the CID when exiting
-v, --verbose
Run action with verbose logs, including the
debug ones
--silent
Run action with no logs; not even the
error/warning ones
-V, --version
Print version

