How to upgrade module thru Linux QFirehose

This is the demo video of upgrading Quectel module using QFirehose in Linux.
Welcome to raise any issue you’ve encountered when using this tool.


This is the demo video of upgrading Quectel module using QFirehose in Linux.
Welcome to raise any issue you’ve encountered when using this tool.

Tried QFirehose v1.4.11 but:

[002.154]: successful, wait module reboot
[ 2064.786216] usb 2-1: USB disconnect, device number 2
[ 2064.817396] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 2064.840172] option 2-1:1.0: device disconnected
[ 2064.852770] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 2064.863232] option 2-1:1.1: device disconnected
[ 2064.872294] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 2064.881723] option 2-1:1.2: device disconnected
[ 2064.890825] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 2064.900192] option 2-1:1.3: device disconnected
[ 2064.910639] qmi_wwan 2-1:1.4 wwan0: unregister ‘qmi_wwan’ usb-ci_hdrc.1-1, WWAN/QMI device
[003.168]: fail to fopen /sys/bus/usb/devices/2-1/uevent, errno: 2 (No such file or directory)

Device does not re-appear as USB

Hi Wade, could you please share you linux kernel version and what’s your current module firmware version?

Which kernel version are you using and what’s your current module firmware version?

Can we use this method to upgrade Firmware on BG95-M2 modules on a debian machine

I am using debian system

Linux debian 5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux


Hi, I am trying to update the firmware on my EC25-E for the first time.
I tried to do it via QFireHose on Linux and got the following error.
Could you please help:

[000.752] Totals checking 18 files md5 value, 0 file fail!
[000.752] [0] /sys/bus/usb/devices/1-1 2c7c/125/318
[000.752] P: /dev/bus/usb/001/002 idVendor=2c7c idProduct=0125
[000.752] C: /dev/bus/usb/001/002 bNumInterfaces: 5
[000.752] I: If#= 0 Alt= 0 #EPs= 2 Cls=ff Sub=ff Prot=ff
[000.752] E: Ad=81 Atr=02 MxPS= 512 Ivl=0ms
[000.752] E: Ad=01 Atr=02 MxPS= 512 Ivl=0ms
[000.752] I: If#= 1 Alt= 0 #EPs= 3 Cls=ff Sub=00 Prot=00
[000.752] I: If#= 2 Alt= 0 #EPs= 3 Cls=ff Sub=00 Prot=00
[000.752] I: If#= 3 Alt= 0 #EPs= 3 Cls=ff Sub=00 Prot=00
[000.752] I: If#= 4 Alt= 0 #EPs= 3 Cls=ff Sub=ff Prot=ff
Segmentation fault (core dumped)

The Linux is a Ubuntu 64bit distribution. I had to use a 64bit version because the EC25 SDK provided to me is only working with 64 bit OS

It is upgrade firmware locally?

Yes. In this video, it’s upgrade firmware locally in a Linux host.

It could be a bad qfirhose. You could try a latest QFirehose versionV1.4.14. Let us know if you still have any issue or question on this topic.

1 Like

Can you share the latest version of qfirehose? We want to update BG95-M2 with it.


I have now tried to update BG95 modem to version BG95M3LAR02A03_01.200.01.200. I have used version 1.4.11 of the QFirehose software. The update looks like it is succesful, but the modem never boots.

I ran this command: sudo ./QFirehose -f ./BG95M3LAR02A03_01.200.01.200/

We also tried to reflash the modem using the Qflash tool, but it is the same result.

Before we started to use the Qfirehose application we have earlier tried to use the Qflash tool and that have worked but after converting to QFirehose we have no luck any more with any of the tools.

We can still set the device in boot mode and the update continues to be succesful but when we want to get out of boot mode from the outside it looks like it never boots.

I have attached the log

log.pdf (36.1 KB)

Anybody that have any comments to the above

Unfortunately, 1.4.11 is an abandoned version which will erase module image. Here is the latest QFirehose:

I’ve had the same experience as @twinding, also with a BG95-M3, and the same firmware version… (did you find a solution?)

Flashing from Windows with QFlash v6.7 worked, but when trying to use QFirehose v1.3.2, the module never booted again - aside from into the “emergency download mode” (shorting USB_BOOT to VDD_EXT / 1.8v during reset).

QFlash is so poorly released and versioned, that I tried a couple of variants floating around before finding this link above for v1.4.17.

Even now, putting the modem into “emergency download mode”, and after running QFlash (apparently successfully), the modem does not boot.

After a full power cycle, VDD_EXT does come up to 1.8v after asserting PWRKEY, but it doesn’t turn off again when asserting PWRKEY again.
There is nothing on either the Debug or Main UARTs, and nothing enumerates via USB.

QFlash no longer works - I noticed previously that it requires the process to start with the modem’s main firmware running (i.e: before entering the bootloader, rather than allowing the process to begin from the bootloader too).

Any thoughts would be appreciated!

I’ve attached the “successful” log output: qfirehose_v1.4.17.txt (61.0 KB)


We do have the same issue with one of our modules. Has anybody found a way to revive the bg95-m3 module?

I’m in touch with support, and will report back if I get a solution.

Apologies, I’d meant to reference QFirehose (not QFlash) in the two instances quoted above.

It sounds like this is an issue with older versions of QFirehose, where important sections on the internal storage are erased when they shouldn’t be…

I have now used v1.4.17 (linked above) on another module, and it worked correctly.

I’d really appreciate it if QFirehose and other tools could be formally released somewhere central (e.g: product page, download zone, even GitHub would be better), rather than us needing to search for sharepoint links in the forum (or request them directly).

Is this version available as an opkg IPK package for OpenWRT 23.05 mips _24kc?