Dynalink DL-WRX36 Askey RT5010W IPQ8072A technical discussion

I am on snapshot r22446 and OpenVPN and Wireguard are simply not working as the interfaces aren't being created. But being that I have a standby router, I have decided to wait till they start to work again.
The flashing process for WRX36 forces me to do a complete reset before it can pick the version I am flashing. A bit tiring, but I guess such is the life with snapshots/bleeding edge,no?

1 Like

In theory that should work, but if I recall correctly the USB stack takes a while to start and then find the file on the partition.

I still think a good dual slot/partition implementation is better as recovery.

@robimarko I wanted to simplify my approach dual slot and I want to run something by you.
Is there a way to make OpenWrt always see mt18 with start on 0x1000000 and mtd20 with start on 0x7a00000?

Currently, depending on OEM slot, start addresses are swapped, which is inconvenient and requires extra detection logic (that might fail).

Only by used fixed partition table and hoping they wont change it in future

1 Like

That's a more complex setup than mine which is just a pppoe with lan clients and some services like NextDNS, file sharing, torrenting, sqm and some tools like smartmon for the attached hd, htop etc. My builded image is only 25MB.

BTW Maybe you should adapt with a new flashing approach. I use attended sysupgrade in order to build and download in my hd a snapshot build with all included packages i have installed. Then i close attended sysupgrade, stop hd related services (eg samba, transmission), unmount hd, stop wpad, flash .bin from backup/restore menu with keep settings. The procedure takes no more than 5 minutes and i have a working router. Then i check if something is broken then if it's broken i do a reset, if it doesn't get fixed after the reset then i will get some debugging info from terminal and i flash back the previous snapshot that i always keep but YES, if something is broken then the pain starts.

1 Like

I tested it now.
Both approaches do work.
If a properly named initramfs image is found from an attached USB stick then it is booted, but if no USB stick is found then the normal image from flash is booted.

Adding the USB detection step adds maybe 5-7 seconds to the boot process, so a bit longer boot time but no major problem.

1) combined boot command:

bootcmd=usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000; setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0

Setting the u-boot variable from SSH console:

fw_setenv bootcmd 'usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000; setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0'

2) split into two separate commands for clarity:
(note that each alternative can also be run manually from the u-boot console)

bootcmd=run openwrtusb; run openwrtboot
openwrtboot=setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0
openwrtusb=usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000

Setting the u-boot variables from SSH console:

fw_setenv bootcmd 'run openwrtusb; run openwrtboot'
fw_setenv openwrtboot 'setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0'
fw_setenv openwrtusb 'usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000'

.
(Verify set values with fw_printenv)


USB stick detected, initramfs image loaded:

Hit any key to stop autoboot:  0
starting USB...
USB0:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus 0 for devices... 2 USB Device(s) found
USB1:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus 1 for devices... 1 USB Device(s) found
reading openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb
11531400 bytes read in 6174 ms (1.8 MiB/s)
## Loading kernel from FIT Image at 44000000 ...
   Using 'config@rt5010w-d350-rev0' configuration

USB not found, mount flash normally

Hit any key to stop autoboot:  0
starting USB...
USB0:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus 0 for devices... 1 USB Device(s) found
USB1:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus 1 for devices... 1 USB Device(s) found
** Bad device usb 0 **
ubi0: attaching mtd1
ubi0: scanning is finished
ubi0: attached mtd1 (name "mtd=0", size 97 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
11 Likes

Awesome, thnx.

With which U-Boot version does this work?

The current one... Do we change u-boot? To my knowledge we do not.

But in ayny case, my router has u-boot as of
U-Boot 0.0.1-1-80112-CS (May 21 2021 - 09:29:10 +0800)

(and there is nothing fancy in that bootcommand, so the exact version should not even matter)

1 Like

Test and let us know ,)

6 posts were split to a new topic: Z800AX? (Same hardware as dl-wrx36)

nope no change on the u-boot ... vanilla as per the shipped stock firmware

How long will it take for the 160 Mhz patch to be applied to the snapshot?

1 Like

New testing FW version 2.9.0.1-01385 released:
https://github.com/quic/upstream-wifi-fw/tree/main/ath11k-firmware/IPQ8074/hw2.0/testing/2.9.0.1/WLAN.HK.2.9.0.1-01385-QCAHKSWPL_SILICONZ-1

image

When I tried it in both Xiaomi-ax3600 and dl-wrx36, it gives the same error (log is from ax3600):

[   10.055969] remoteproc remoteproc0: powering up cd00000.q6v5_wcss
[   10.062507] remoteproc remoteproc0: Booting fw image IPQ8074/q6_fw.mdt, size 668
[   11.012757] remoteproc remoteproc0: remote processor cd00000.q6v5_wcss is now up
[   11.017215] kmodloader: done loading kernel modules from /etc/modules.d/*
[   11.056851] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[   11.064289] ath11k c000000.wifi: chip_id 0x0 chip_family 0x0 board_id 0xff soc_id 0xffffffff
[   11.064329] ath11k c000000.wifi: fw_version 0x290c84a5 fw_build_timestamp 2023-03-25 07:34 fw_build_id WLAN.HK.2.9.0.1-01385-QCAHKSWPL_SILICONZ-1
[   11.271131] ath11k c000000.wifi: htt event 48 not handled
...
[   36.133017] ath11k_warn: 396 callbacks suppressed
[   36.133077] ath11k c000000.wifi: invalid length in mgmt rx hdr ev
[   36.136725] ath11k c000000.wifi: failed to extract mgmt rx event
[   36.172468] ath11k c000000.wifi: invalid length in mgmt rx hdr ev
[   36.172499] ath11k c000000.wifi: failed to extract mgmt rx event
[   36.180666] ath11k c000000.wifi: invalid length in mgmt rx hdr ev
[   36.183615] ath11k c000000.wifi: failed to extract mgmt rx event
[   36.189609] ath11k c000000.wifi: invalid length in mgmt rx hdr ev
[   36.195685] ath11k c000000.wifi: failed to extract mgmt rx event
[   36.220685] ath11k c000000.wifi: invalid length in mgmt rx hdr ev
[   36.220715] ath11k c000000.wifi: failed to extract mgmt rx event

Radio is up, but can't connect to wifi.

3 Likes

Have you seen any improvement updating qca? Can you explain how to flash it? Can you do it through ssh or luci?
Thanks

You can do it through SSH, or by using something like WinSCP. The files are under /lib/firmware/IPQ8074 . You'll need to download the files, then copy & overwrite the existing files in the directory. Make sure you reboot when completed.

1 Like

I tried and had the same errors as well.

To take a full backup (before I install my first OpenWRT snapshot) is it sufficient to nanddump all the mtd partitions?

After reading all the post
Still unclear,
Should we buy this device and use openwrt
Performance , Wi-Fi are working perfectly?

Can you add the safe boot commands somehow without using a UART cable? I guess not because one needs to intrupt the booting, right?
Thanks.

Yes.
fw_printenv and fw_setenv are the commands to manipulate the u-boot env variables in the SSH console.

Just like the initial installation instructions say in step 8 ...

8. Set U-boot env variable: bootcmd
>    # fw_setenv bootcmd 'setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0'

I give the exact modified command in

fw_setenv bootcmd 'usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000; setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0'
3 Likes