QFirehose Update Modem RM551 Issue

Happy New Year To All Members

I’m facing issue to update my modem RM551 with QFirehose V1.4.17 installed on ROOter system (OpenWRT) on my Router BPI-R4

root@ROOter:~# QFirehose -f /mnt/sda1/firmware
[000.000]: Version: QFirehose_Linux_Android_V1.4.17
[000.001]: Builded: Dec 31 2024 20:09:08
[000.003]: Find md5 check file </mnt/sda1/firmware/md5.txt>
[004.740]: md5 checking: /mnt/sda1/firmware/update/NON-HLOS.ubi pass
[004.758]: md5 checking: /mnt/sda1/firmware/update/abl.elf pass
[004.772]: md5 checking: /mnt/sda1/firmware/update/aop.mbn pass
[004.778]: md5 checking: /mnt/sda1/firmware/update/aop_devcfg.mbn pass
[004.778]: md5 checking: /mnt/sda1/firmware/update/apdp.mbn pass
[006.779]: md5 checking: /mnt/sda1/firmware/update/boot.img pass
[006.779]: md5 checking: /mnt/sda1/firmware/update/cdt.bin pass
[006.813]: md5 checking: /mnt/sda1/firmware/update/cmnlib64.mbn pass
[006.820]: md5 checking: /mnt/sda1/firmware/update/cpucp.elf pass
[006.820]: md5 checking: /mnt/sda1/firmware/update/devcfg.mbn pass
[006.822]: md5 checking: /mnt/sda1/firmware/update/firehose/partition_complete_p4K_b256K.mbn                 pass
[006.824]: md5 checking: /mnt/sda1/firmware/update/firehose/patch_p4K_b256K.xml pass
[006.935]: md5 checking: /mnt/sda1/firmware/update/firehose/prog_firehose_sdx7x.elf pass
[006.936]: md5 checking: /mnt/sda1/firmware/update/firehose/rawprogram_nand_p4K_b256K_update                .xml pass
[006.942]: md5 checking: /mnt/sda1/firmware/update/fw_ipa_gsi_6.0_p.elf pass
[007.010]: md5 checking: /mnt/sda1/firmware/update/hypvm.mbn pass
[007.020]: md5 checking: /mnt/sda1/firmware/update/km41.mbn pass
[007.020]: md5 checking: /mnt/sda1/firmware/update/multi_image.mbn pass
[007.021]: md5 checking: /mnt/sda1/firmware/update/multi_image_qti.mbn pass
[007.061]: md5 checking: /mnt/sda1/firmware/update/oemapp.ubi pass
[007.088]: md5 checking: /mnt/sda1/firmware/update/oemdata.ubi pass
[007.088]: md5 checking: /mnt/sda1/firmware/update/partition.mbn pass
[007.089]: md5 checking: /mnt/sda1/firmware/update/partition_nand.xml pass
[007.089]: md5 checking: /mnt/sda1/firmware/update/qupv3fw.elf pass
[007.894]: md5 checking: /mnt/sda1/firmware/update/recoveryfs.ubi pass
[007.900]: md5 checking: /mnt/sda1/firmware/update/shrm.elf pass
[011.010]: md5 checking: /mnt/sda1/firmware/update/sysfs.ubi pass
[011.110]: md5 checking: /mnt/sda1/firmware/update/tz.mbn pass
[011.243]: md5 checking: /mnt/sda1/firmware/update/uefi.elf pass
[011.441]: md5 checking: /mnt/sda1/firmware/update/usrdata.ubi pass
[011.454]: md5 checking: /mnt/sda1/firmware/update/xbl_config.elf pass
[011.495]: md5 checking: /mnt/sda1/firmware/update/xbl_ramdump.elf pass
[011.560]: md5 checking: /mnt/sda1/firmware/update/xbl_s_nand.melf pass
[011.560]: Totals checking 33 files md5 value, 0 file fail!
[011.560]: find 'prog_firehose_sdx7x.elf'
[011.560]: find_firehose_mbn prog_firehose_sdx7x.elf
[011.561]: [1] /sys/bus/usb/devices/2-1.1 2c7c/122/515
[011.561]: qusb_read_speed_atime speed: 5000, st_atime: 20241231_20:37:47
[011.561]: P: /dev/bus/usb/002/003 idVendor=2c7c idProduct=0122
[011.562]: C: /dev/bus/usb/002/003 bNumInterfaces: 5
[011.562]: I: If#= 0 Alt= 0 #EPs= 2 Cls=ff Sub=ff Prot=30
[011.562]: E: Ad=01 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: E: Ad=81 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: I: If#= 1 Alt= 0 #EPs= 2 Cls=ff Sub=00 Prot=00
[011.562]: E: Ad=82 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: E: Ad=02 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: I: If#= 2 Alt= 0 #EPs= 3 Cls=ff Sub=00 Prot=00
[011.562]: E: Ad=84 Atr=03 MxPS= 10 Ivl=9ms
[011.562]: E: Ad=83 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: E: Ad=03 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: I: If#= 3 Alt= 0 #EPs= 3 Cls=ff Sub=00 Prot=00
[011.562]: E: Ad=86 Atr=03 MxPS= 10 Ivl=9ms
[011.562]: E: Ad=85 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: E: Ad=04 Atr=02 MxPS= 1024 Ivl=0ms
[011.562]: I: If#= 4 Alt= 0 #EPs= 3 Cls=ff Sub=ff Prot=ff
[011.562]: tmp=/sys/bus/usb/devices/usb2/../driver, driver=../../../../bus/platform/drivers/xhci-mtk
[011.562]: qusb_noblock_open port_name = /dev/ttyUSB0
[014.569]: poll_wait events=POLLIN msec=3000 timeout
[014.569]: qfirehose.c detect_and_judge_module_version 251 fail
[015.570]: poll_wait events=POLLIN msec=1000 timeout
[015.570]: switch to 'Emergency download mode'
[015.574]: successful, wait module reboot
[016.575]: fail to fopen /sys/bus/usb/devices/2-1.1/uevent, errno: 2 (No such file or directory)
[017.575]: P: /dev/bus/usb/002/004 idVendor=05c6 idProduct=9008
[017.575]: C: /dev/bus/usb/002/004 bNumInterfaces: 1
[017.575]: I: If#= 0 Alt= 0 #EPs= 2 Cls=ff Sub=ff Prot=11
[017.575]: E: Ad=81 Atr=02 MxPS= 1024 Ivl=0ms
[017.575]: E: Ad=01 Atr=02 MxPS= 1024 Ivl=0ms
[017.575]: tmp=/sys/bus/usb/devices/usb2/../driver, driver=../../../../bus/platform/drivers/xhci-mtk
[017.575]: usbfs_is_kernel_driver_alive find interface 0 has match the driver qcserial
[017.589]: usbfs_detach_kernel_driver detach kernel driver success
[017.589]: <=== Q_SAHARA_ONE
[017.589]: Q_SAHARA_TWO ===>
[017.592]: <=== Q_SAHARA_EIGHTEEN
[017.592]: 0x0000000d 0x00000000 0x00000000
[022.645]: inf[0] ep_in -1/4096, errno = 110 (Operation timed out), timeout=5000
[022.645]: qusb_noblock_read read=0, errno: 110 (Operation timed out)
[022.645]: qusb_noblock_read cur=0, min_size=1
[022.645]: Sahara protocol error
[022.645]: Upgrade module failed.

Also I attached steps to check

Please remove the qcerial from the Linux kernel.

1 Like

Thank you Dear @Bean.Wang-Q for respond

I found qcserial installed on system so I followed these steps to remove qcserial

root@ROOter:~# find /lib/modules/$(uname -r) -name "qcserial*"
/lib/modules/6.6.32/qcserial.ko
root@ROOter:~# rm /lib/modules/6.6.32/qcserial.ko
root@ROOter:~# lsmod | grep qcserial
qcserial               16384  0
usb_wwan               16384  2 qcserial,option
usbcore               188416 30 rt2800usb,qcserial,option,cdc_mbim,usb_wwan,sierra_net,sierra,rt2x00usb,rndis_host,qmi_wwan,huawei_cdc_ncm,cdc_ncm,cdc_ether,usbserial,usbnet,usblp,ipheth,cdc_wdm,cdc_acm,usb_storage,xhci_plat_hcd,xhci_pci,xhci_mtk_hcd,xhci_hcd,uhci_hcd,ohci_platform,ohci_hcd,ehci_platform,ehci_fsl,ehci_hcd
usbserial              24576  4 qcserial,option,usb_wwan,sierra
root@ROOter:~# rmmod qcserial
root@ROOter:~# lsmod | grep qcserial
root@ROOter:~# find /lib/modules/$(uname -r) -name "qcserial*"

The qcserial removed from device


I tried to upgrade the modem again but still i’m getting fail

root@ROOter:~# QFirehose -f /mnt/sda1/firmware
[000.000]: Version: QFirehose_Linux_Android_V1.4.17
[000.000]: Builded: Dec 31 2024 20:09:08
[000.026]: Find md5 check file </mnt/sda1/firmware/md5.txt>
[002.838]: md5 checking: /mnt/sda1/firmware/update/NON-HLOS.ubi pass
[002.846]: md5 checking: /mnt/sda1/firmware/update/abl.elf pass
[002.852]: md5 checking: /mnt/sda1/firmware/update/aop.mbn pass
[002.854]: md5 checking: /mnt/sda1/firmware/update/aop_devcfg.mbn pass
[002.854]: md5 checking: /mnt/sda1/firmware/update/apdp.mbn pass
[004.019]: md5 checking: /mnt/sda1/firmware/update/boot.img pass
[004.020]: md5 checking: /mnt/sda1/firmware/update/cdt.bin pass
[004.039]: md5 checking: /mnt/sda1/firmware/update/cmnlib64.mbn pass
[004.042]: md5 checking: /mnt/sda1/firmware/update/cpucp.elf pass
[004.044]: md5 checking: /mnt/sda1/firmware/update/devcfg.mbn pass
[004.069]: md5 checking: /mnt/sda1/firmware/update/firehose/partition_complete_p4K_b256K.mbn pass
[004.069]: md5 checking: /mnt/sda1/firmware/update/firehose/patch_p4K_b256K.xml pass
[004.128]: md5 checking: /mnt/sda1/firmware/update/firehose/prog_firehose_sdx7x.elf pass
[004.129]: md5 checking: /mnt/sda1/firmware/update/firehose/rawprogram_nand_p4K_b256K_update.xml pass
[004.132]: md5 checking: /mnt/sda1/firmware/update/fw_ipa_gsi_6.0_p.elf pass
[004.171]: md5 checking: /mnt/sda1/firmware/update/hypvm.mbn pass
[004.180]: md5 checking: /mnt/sda1/firmware/update/km41.mbn pass
[004.181]: md5 checking: /mnt/sda1/firmware/update/multi_image.mbn pass
[004.181]: md5 checking: /mnt/sda1/firmware/update/multi_image_qti.mbn pass
[004.206]: md5 checking: /mnt/sda1/firmware/update/oemapp.ubi pass
[004.222]: md5 checking: /mnt/sda1/firmware/update/oemdata.ubi pass
[004.223]: md5 checking: /mnt/sda1/firmware/update/partition.mbn pass
[004.223]: md5 checking: /mnt/sda1/firmware/update/partition_nand.xml pass
[004.226]: md5 checking: /mnt/sda1/firmware/update/qupv3fw.elf pass
[004.698]: md5 checking: /mnt/sda1/firmware/update/recoveryfs.ubi pass
[004.700]: md5 checking: /mnt/sda1/firmware/update/shrm.elf pass
[006.536]: md5 checking: /mnt/sda1/firmware/update/sysfs.ubi pass
[006.594]: md5 checking: /mnt/sda1/firmware/update/tz.mbn pass
[006.675]: md5 checking: /mnt/sda1/firmware/update/uefi.elf pass
[006.797]: md5 checking: /mnt/sda1/firmware/update/usrdata.ubi pass
[006.804]: md5 checking: /mnt/sda1/firmware/update/xbl_config.elf pass
[006.827]: md5 checking: /mnt/sda1/firmware/update/xbl_ramdump.elf pass
[006.870]: md5 checking: /mnt/sda1/firmware/update/xbl_s_nand.melf pass
[006.870]: Totals checking 33 files md5 value, 0 file fail!
[006.870]: find 'prog_firehose_sdx7x.elf'
[006.870]: find_firehose_mbn prog_firehose_sdx7x.elf
[006.871]: [1] /sys/bus/usb/devices/2-1.1 2c7c/122/515
[006.871]: qusb_read_speed_atime speed: 5000, st_atime: 20241231_20:10:01
[006.871]: P: /dev/bus/usb/002/003 idVendor=2c7c idProduct=0122
[006.871]: C: /dev/bus/usb/002/003 bNumInterfaces: 5
[006.871]: I: If#= 0 Alt= 0 #EPs= 2 Cls=ff Sub=ff Prot=30
[006.871]: E: Ad=01 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: E: Ad=81 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: I: If#= 1 Alt= 0 #EPs= 2 Cls=ff Sub=00 Prot=00
[006.871]: E: Ad=82 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: E: Ad=02 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: I: If#= 2 Alt= 0 #EPs= 3 Cls=ff Sub=00 Prot=00
[006.871]: E: Ad=84 Atr=03 MxPS= 10 Ivl=9ms
[006.871]: E: Ad=83 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: E: Ad=03 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: I: If#= 3 Alt= 0 #EPs= 3 Cls=ff Sub=00 Prot=00
[006.871]: E: Ad=86 Atr=03 MxPS= 10 Ivl=9ms
[006.871]: E: Ad=85 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: E: Ad=04 Atr=02 MxPS= 1024 Ivl=0ms
[006.871]: I: If#= 4 Alt= 0 #EPs= 3 Cls=ff Sub=ff Prot=ff
[006.872]: tmp=/sys/bus/usb/devices/usb2/../driver, driver=../../../../bus/platform/drivers/xhci-mtk
[006.872]: qusb_noblock_open port_name = /dev/ttyUSB0
[009.878]: poll_wait events=POLLIN msec=3000 timeout
[009.878]: qfirehose.c detect_and_judge_module_version 251 fail
[010.879]: poll_wait events=POLLIN msec=1000 timeout
[010.879]: switch to 'Emergency download mode'
[010.882]: successful, wait module reboot
[011.884]: P: /dev/bus/usb/002/004 idVendor=05c6 idProduct=9008
[011.884]: C: /dev/bus/usb/002/004 bNumInterfaces: 1
[011.884]: I: If#= 0 Alt= 0 #EPs= 2 Cls=ff Sub=ff Prot=11
[011.884]: E: Ad=81 Atr=02 MxPS= 1024 Ivl=0ms
[011.884]: E: Ad=01 Atr=02 MxPS= 1024 Ivl=0ms
[011.884]: tmp=/sys/bus/usb/devices/usb2/../driver, driver=../../../../bus/platform/drivers/xhci-mtk
[011.884]: <=== Q_SAHARA_ONE
[011.884]: Q_SAHARA_TWO ===>
[011.887]: <=== Q_SAHARA_EIGHTEEN
[011.887]: 0x0000000d 0x00000000 0x00000000
[016.907]: inf[0] ep_in -1/4096, errno = 110 (Operation timed out), timeout=5000
[016.907]: qusb_noblock_read read=0, errno: 110 (Operation timed out)
[016.907]: qusb_noblock_read cur=0, min_size=1
[016.907]: Sahara protocol error
[016.907]: Upgrade module failed.

I appreciate your advise …

Also Please can you share new QFirehose V1.4.18 or newer
Email : kfozzx@gmail.com

Why is there a need for removing the qcserial driver when QFirehose itself can detach it and has done so? Comparing the 2 logs clearly shows the same error regardless of the qcserial driver being removed by user or being detached by QFirehose.

1 Like

I have sent you the QFirehose_Linux_and_Android_V1.4.21. Please try it.

1 Like

Hi @Bean.Wang-Q

The latest version had error while compiling. Can u advise

Can u share version above this version or something higher than V1.4.17. , so I can try it

Could you show the errors?

1 Like

Dear @Bean.Wang-Q

Please find below pic for both 20 and 21 …

Wrote By Senior Dev :
here the error when compile the QFirehost for version 1.4.17+.

I compare the version 17 and 21 i notice the QFirehost bin file in the main directory was deleted by quectel.

This log didn’t tell us anything…

make package/qifrehose/clean V=s
make package/qifrehose/compile V=s

1 Like

yeah same thing what I tried …

Yes these command I used. its throwing the same errors.

I think you might don’t how to compile the qfirehose in OpenWrt.
You should provide the log for me…
If I have time I will try it…

1 Like

@Bean.Wang-Q
Yes , maybe i’m doing something wrong with my steps …

I tried this setup for makefile . becuase some people on openwrt informed I need to do changes on makefile so it can match with openwrt … I found someone did it on github so I copied and paste it … its same person who tried V21 and V20 Qfirehose and failed to build them on OpenWRT …

So I tried same steps

image.png

image.png

I uploaded Video on YouTube For my steps i’m sure there is something wrong with my steps at Qfirehose file its self I didn’t make it comply with OpenWRT system

See Video Please

Log for make -j1 package/qfirehose/compile V=s Check the log for full info attached

mj@mj:~/OpenWRT.BPI-R4$ make -j1 package/qfirehose/compile V=s
make[2]: Entering directory '/home/mj/OpenWRT.BPI-R4/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/home/mj/OpenWRT.BPI-R4/scripts/config'
time: target/linux/prereq#0.58#0.14#0.67
Checking 'python3-dev'... ok.
Checking 'python3-setuptools'... ok.
Checking 'swig'... ok.
make[1]: Entering directory '/home/mj/OpenWRT.BPI-R4'
+ mkdir -p /home/mj/OpenWRT.BPI-R4/staging_dir/target-aarch64_cortex-a53_musl
+ cd /home/mj/OpenWRT.BPI-R4/staging_dir/target-aarch64_cortex-a53_musl
+ mkdir -p bin lib stamp usr/include usr/lib
mkdir -p /home/mj/OpenWRT.BPI-R4/build_dir/target-aarch64_cortex-a53_musl/stamp
touch /home/mj/OpenWRT.BPI-R4/staging_dir/target-aarch64_cortex-a53_musl/.prepared
make[2]: Entering directory '/home/mj/OpenWRT.BPI-R4/package/utils/lua'
make[2]: Leaving directory '/home/mj/OpenWRT.BPI-R4/package/utils/lua'
time: package/utils/lua/host-compile#0.69#0.23#0.80
make[2]: Entering directory '/home/mj/OpenWRT.BPI-R4/package/system/apk'
make[2]: Leaving directory '/home/mj/OpenWRT.BPI-R4/package/system/apk'
time: package/system/apk/host-compile#0.63#0.27#0.75
make[2]: Entering directory '/home/mj/OpenWRT.BPI-R4/package/libs/toolchain'
rm -f /home/mj/OpenWRT.BPI-R4/build_dir/target-aarch64_cortex-a53_musl/toolchain/.built
[mj@mj~OpenWRT.BPI-R4$ make -j1 pack.txt|attachment](upload://ysdFLKE9JjeDFE1Tj27uTa1VH8u.txt) (39.5 KB)
a53_musl/pkginfo/toolchain.default.install
make[2]: Leaving directory '/home/mj/OpenWRT.BPI-R4/package/libs/toolchain'
time: package/libs/toolchain/compile#1.82#1.12#2.83
make[2]: Entering directory '/home/mj/OpenWRT.BPI-R4/package/utils/qfirehose'
Makefile:43: *** missing separator.  Stop.
make[2]: Leaving directory '/home/mj/OpenWRT.BPI-R4/package/utils/qfirehose'
time: package/utils/qfirehose/compile#1.14#0.45#1.68
    ERROR: package/utils/qfirehose failed to build.
make[1]: *** [package/Makefile:185: package/utils/qfirehose/compile] Error 1
make[1]: Leaving directory '/home/mj/OpenWRT.BPI-R4'
make: *** [/home/mj/OpenWRT.BPI-R4/include/toplevel.mk:233: package/qfirehose/compile] Error 2


This is steps to make OpenWRT Image on Lunix for Banana BPI-R4

git clone https://git.openwrt.org/openwrt/openwrt.git OpenWRT.BPI-R4
cd OpenWRT.BPI-R4
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j16 ( this will build the image and every single individual packet)


To copy package Qfirehose from home to openwrt file location
cp -r /home/mj/QFirehose_Linux_and_Android_V1.4.21 /home/mj/OpenWRT.BPI-R4/package/utils/qfirehose

mj@mj~OpenWRT.BPI-R4$ make -j1 pack.txt (39.5 KB)

Hi Dear @Bean.Wang-Q :wave:

OpenWRT Dev passed developing OpenWRT with Qfirehose V1.4.21
Where I flashed the modem RM551 and its working fine … without any issue

Thank you so much for your support… Really Quectel Team and Members are glad to have Technical Engineer like you … You supported me very well on this subject

Word of thanks is not enough for you … Really thank you so much :pray::relieved:

Great and Glad to hear that!
If I need to compile the QFirehose in the OpenWrt SDK. I have to add the QFirehose to the SDK and make some modifications and even write some Makefile for it. This module is not a very simple to use product.

3 Likes

(post deleted by author)

please share the new version with me on my email
imdadimi@gmail.com

Hi,@imidad
I have sent it to you via email,pls check