================
Firmware Upgrade
================
.. sidebar:: Contents
.. contents::
:depth: 3
:local:
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 :osdx:op:`interfaces cellular * upgrade-firmware *`, 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
:osdx:op:`interfaces cellular * show device-info`.
.. code-block:: none
:emphasize-lines: 6
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.
.. code-block:: none
$ 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
:osdx:op:`file uncompress *` 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.
.. code-block:: none
:emphasize-lines: 5
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
.. code-block:: none
admin@osdx$ file uncompress running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz
.. code-block:: none
:emphasize-lines: 6
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
:osdx:op:`interfaces cellular * upgrade-firmware *` 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.
.. code-block:: none
:emphasize-lines: 16
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]:
[028.885]:
[028.885]:
[028.886]:
[028.886]:
[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
:osdx:op:`file delete *` operational command. In this case, both the compressed file
and the folder generated when it was decompressed must be deleted.
.. code-block:: none
admin@osdx$ file delete running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300.tar.xz
Do you want to delete the file? (y/n): y
.. code-block:: none
admin@osdx$ file delete running://EG25GLGAR07A03M1G_BETA250428_A0.300.A0.300
Do you want to delete the directory? (y/n): y
.. code-block:: none
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.
.. code-block:: none
admin@osdx$ reboot
Proceed with reboot? (Yes/No) [No] yes
.. code-block:: none
:emphasize-lines: 6
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