Firmware Upgrade
Firmware upgrades are essential to ensure optimal performance, bug fixes, security patches, and support for new features on all hardware.
This chapter explains how to upgrade the firmware of the different hardware components available in OSDx devices, detailing the necessary steps, precautions, and best practices to avoid errors.
Quectel LTE and 5G modules
For OSDx devices with Quectel cellular modules installed, OSDx offers an operational command that allows the firmware of these modules to be upgraded.
Requirements and precautions
Upgrading the firmware of Quectel cellular modules requires the use of operational
command interfaces cellular <value> upgrade-firmware <file>, only available from OSDx
versions 4.2.4.3 and 4.2.5.0 onwards.
Furthermore, it is extremely important that the file containing the firmware to be upgraded has been provided by the manufacturer itself or by a trusted source (since the firmware file must be compatible with both the hardware model and the firmware version currently installed on it).
Steps in the Upgrade Process
In this section, we will explain all the steps required to upgrade the firmware of Quectel cellular modules. By way of example, we will take the upgrading of the EC25GL model from firmware version EG25GLGAR07A02M1G_01.200.01.200 to beta version EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300 (as provided by Quectel).
Step 1: Check the model and the firmware version currently installed on the
cellular module using operational command
interfaces cellular <value> show device-info.
admin@osdx$ interfaces cellular cell0 show device-info
Module Manufacturer = Quectel
Module Model = EG25GL
Module Firmware = EG25GLGAR07A02M1G
Hardware Revision = 10000
Modem/App Firmware = EG25GLGAR07A02M1G_01.200.01.200
IMEI = 865061060284235
Radio Interfaces = gsm, umts, lte
Data Service Capability = non-simultaneous-cs-ps
Maximum TX/RX rate supported = 50000/100000 Kbps
Step 2: Load the file containing the firmware upgrade onto the OSDx device. We recommend performing this process through a wired network connection to the OSDx device and using SCP to copy the file from an external system.
$ scp -O ./EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz admin@192.168.1.1:
admin@192.168.1.1's password:
EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz 100% 112MB 16.6MB/s 00:06
Step 3: Locate the file containing the firmware and unzip it. To do this, use the
file uncompress <file> operational command. The process may take
several seconds to complete and, when it’s finished, a folder containing all the files
needed for the firmware upgrade process will appear.
admin@osdx$ file show running://
-----------------------------------------------------------------------------------------------
Name Type Size Last modified
-----------------------------------------------------------------------------------------------
EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz application/x-xz 112MB 2023 Sep 20 13:08
auth/ directory 2.7KB 2023 Sep 20 12:15
coredump/ directory 1.0KB 2025 May 13
kerneldump/ directory 0B 2023 Sep 20 12:15
log/ directory 3.6KB 2023 Sep 20 12:15
save-hist/ directory 1.0KB 2023 Sep 20 12:15
scripts/ directory 1.0KB 2025 May 13
support/ directory 1.0KB 2025 May 13
user-data/ directory 1.0KB 2025 May 13
admin@osdx$ file uncompress running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz
admin@osdx$ file show running://
-----------------------------------------------------------------------------------------------
Name Type Size Last modified
-----------------------------------------------------------------------------------------------
EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz application/x-xz 112MB 2023 Sep 20 13:08
EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300/ directory 180MB 2025 Apr 29
auth/ directory 2.7KB 2023 Sep 20 12:15
coredump/ directory 1.0KB 2025 May 13
kerneldump/ directory 0B 2023 Sep 20 12:15
log/ directory 3.6KB 2023 Sep 20 12:15
save-hist/ directory 1.0KB 2023 Sep 20 12:15
scripts/ directory 1.0KB 2025 May 13
support/ directory 1.0KB 2025 May 13
user-data/ directory 1.0KB 2025 May 13
Step 4: Run the firmware upgrade process. To do this, use the
interfaces cellular <value> upgrade-firmware <file> operational command. This process may take several
seconds to complete and, when it is finished, message Upgrade module successfully
should appear if the firmware has been duly upgraded.
admin@osdx$ interfaces cellular cell0 upgrade-firmware running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300
[000.000]: Version: QFirehose_Linux_Android_V1.4.21
[000.000]: use symbolic link: [/dev/cell0_diag]
[000.000]: symbolic link target: [/dev/cell0_diag]-[ttyUSB0]
[000.000]: will use device: /dev/ttyUSB0
[000.000]: Symbolic filter file: [running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300]-[/opt/vyatta/etc/config/EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300]
...
[028.883]: upgrade progress 100% 70763700/70763700
[028.883]: send finished
[028.884]: <log value="Finished sector address 0"/>
[028.885]: <response value="ACK" rawmode="false" />
[028.885]: <power DelayInSeconds="10" value="reset" />
[028.886]: <log value="Inside handlePower() - Requested POWER_RESET"/>
[028.886]: <response value="ACK" />
[029.887]: THE TOTAL DOWNLOAD TIME IS 21.954 s
[029.890]: Upgrade module successfully.
[029.890]: inf[0] ep_in -1/1024, errno = 108 (Cannot send after transport endpoint shutdown)
[029.890]: qusb_noblock_read read=-1, errno: 108 (Cannot send after transport endpoint shutdown)
[029.890]: qusb_noblock_read cur=0, min_size=1
[029.890]: qusb_noblock_read cur=0, min_size=1
Step 5: Delete all files used for the upgrade from the OSDx device. To do this, use the
file delete <file> operational command. In this case, both the compressed file
and the folder generated when it was decompressed must be deleted.
admin@osdx$ file delete running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz
Do you want to delete the file? (y/n): y
admin@osdx$ file delete running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300
Do you want to delete the directory? (y/n): y
admin@osdx$ file show running://
--------------------------------------------------
Name Type Size Last modified
--------------------------------------------------
auth/ directory 2.7KB 2023 Sep 20 12:15
coredump/ directory 1.0KB 2025 May 13
kerneldump/ directory 0B 2023 Sep 20 12:15
log/ directory 3.6KB 2023 Sep 20 12:15
save-hist/ directory 1.0KB 2023 Sep 20 12:15
scripts/ directory 1.0KB 2025 May 13
support/ directory 1.0KB 2025 May 13
user-data/ directory 1.0KB 2025 May 13
Step 6: Finally, it is important to reboot the OSDx device and then verify that the firmware version currently installed on the cellular module is the proper one.
admin@osdx$ reboot
Proceed with reboot? (Yes/No) [No] yes
admin@osdx$ interfaces cellular cell0 show device-info
Module Manufacturer = Quectel
Module Model = EG25GL
Module Firmware = EG25GLGAR07A03M1G_BETA250428
Hardware Revision = 10000
Modem/App Firmware = EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300
IMEI = 865061060284235
Radio Interfaces = gsm, umts, lte
Data Service Capability = non-simultaneous-cs-ps
Maximum TX/RX rate supported = 50000/100000 Kbps