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