Dynalink DL-WRX36 Askey RT5010W IPQ8072A technical discussion

scsi attached storage is the modern replacement for legacy usb mass storage. As I understand it, devices are supposed to be able to fall back to UMS when necessary.

Perhaps its not necessary and that is the problem.

Its not necessairly just a matter of whether or not uboot is capable of using the drive...This is of course required, but it is also required that drive gets labeled such that the fatload usb 0:1 <...> boot command is pointing to the correct device.

I notice on your boot logs a few posts up (where it didnt work) your usb was listed as "usb 2-1", whereas @hnyman (where it did work) had it listed at usb 1-1. Looking through sysfs on my running wrx36 it seems there are 2 different usb ports, despite only 1 being on the device. I currently have an external hard drive attached to my wrx36 (that id assume uses the newer scsi protocol) and it is also at usb 2-1.

This makes me think it is at least possible that when a drive uses the newer non-legacy protocol it gets enumerated differently, and that changing the 0:1 in the uboot commamd to something like 1:1 might fix it.

Of course it might also be that uboot cant read some usb drives.

It would be interesting to see if someone who has a serial cable and a usb drive that didnt work for flashing openwrt, if they would boot into uboot (via serial) with the usb drive that wasnt being detected attached and see if they can manually find it in uboot. According to the u-boot reference manual there are a handful of simple commands that might find it:

usb tree
usb info
usb storage
usb dev
usb part

Related thought that perhaps someone who knows u-boot could refine: if I am right I wonder if something like this would work to dynamically determine the usb device during the boot sequence?

note: i have no experience with u-boot and dont know if you can define a variable (usbdev) like this. Perhaps @hnyman knows. I wouldnt try this unless you know you can recover in case it doesnt work (which is likely).

bootcmd=usb start && setenv usbdev usb dev && run usbdev && run openwrtusb; bootipq
openwrtusb=fatload usb \${usbdev}:1 0x44000000 openwrt-qualcommax-ipq807x-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000

Note: im not sure if the && run usbdev should be there or not....it might need to be taken out.

EDIT: tweaked this uboot cmd after looking at the reference manual a bit more

If anyone has a spare USB mt76 or mt76x0u adapter I can confirm it works great with this router to extend 2.4 GHz range. I used an Alfa AWUS036ACHM I took off of another computer. You will need to install the drivers in the software tab.



(You can ignore the low tx power for the mt7610u driver it's known for reporting low numbers. Actual range is always very excellent.)

2 Likes

Possibly legacy-USB2 vs USB3?

Yep, that was it.

I was able to confirm this is the case using hwinfo, which lists port 1 as having speed: 480 and port 2 as having speed: 5000

Dumb question, is 802.11k and 802.11v supported? I noticed they were both absent in the WLAN Roaming tab. I tried setting some flags in /etc/config/wireless but I don't see any new flags when I inspect the AP in wifianalyzer.

option wnm_sleep_mode '1'
option bss_transition '1'

P.S I've reuploaded one of the alternative BDF packages if anyone wants it. Rename to ipq-wifi-dynalink_dl-wrx36_2025-09-15-cd9c30ca-2_aarch64_cortex-a53.ipk

https://web.archive.org/web/20231231034719/https://up.nixnet.services/s/qu8sm96o.ipk

Name: board-2.bin
SHA256: c055ab8a630b207eb309e2dae406198d2efe35a945c10fc0940ec72c26cc56ea
SHA1: cd1dab0dd98e73ed589af6ae4907a0c24d4894fe

2 Likes

So, I've just bought one of these things looking at the specs (plenty of upgrade space + fast + the ToH is still horrible to sort through) and that the setup is a bit arcane though doable...

But having seen some of this thread I'd like to make sure I have the full picture/am forewarned for possible future bull***t from this thing.

So, TLDR, we're locked to factory uboot because it's secure-booted, and the uboot is pretty crippled so we have to do the weird bootm trick. We also don't have bootcount or apparently any way to read the active image, so dual-partition doesn't work.

But...

  1. The uboot has been "upgraded" at least once by the OEM to have no console support. Has that been fixed or do I not have any ability to de-brick?

  2. How do I de-brick? Have the preempt-boot-USB-ramdisk script, run the ram image, and then re-perform the ubiformat step? Would I need to change any of the other boot commands? Am I hosed if that fails since the uboot console is gone now?

  3. Is there any work being done on having sysupgrade swap the active flash partitions to reduce wear to that one partition (upgrade+normal configuration-y stuff) - or would that instead cause additional wear on the bootloader config and I'm not sure that has bad block management)?

  4. Are there any other steps from these guides that I should follow in favor of the wiki steps? I did see that some of these had additional entries in the uboot env, but the bootcount one seems like it would cause a lot of config writes - are there other ones that might be useful/necessary for support of future development work?


Anyway, also let me know if there's anything I can do to help the RE process. If you can walk me through it, I could probably get updated boot logs or OEM firmware dumps - I've got a 3V TTL serial adapter and could probably bodge a connector, and I can get the partitions assuming the ramdisk has the luci util for that (if not, no clue - I'm used to nor devices and mtd, not this magic nand stuff).

If you need me to extract stuff from the running OS (oem or otherwise) that's not from the serial terminal, or there's a way to enable serial for the oem OS (I've heard the log stops once uboot posts into the OS?) you'll need to tell me the commands. I have no idea what ones get the device logs if I can't read them in real time off of serial.

Or is this something that will not work as well and I should really move to another device? (ideally for <$120 but willing to compromise as long as I get >128mb flash, >512mb RAM, quad core CPU, with working dual image support or a good uboot web/tftp failsafe - I was a fan of Gl.inet due to their really good recovery webpage in the bootloader, but they're expensive and have few antennas/LAN ports)

It is an excellent router and I am happy with it.
I just followed the instructions at: https://openwrt.org/toh/dynalink/dl-wrx36

I did not use the serial method but if things fail it is easy to open the router and attach the serial cable and to recover that way.

The only thing which I had trouble with was finding the factory image (the one with the .ubi extension) as there initially was no link on the page but now the link is there.

Setting the USB recovery: https://openwrt.org/toh/dynalink/dl-wrx36#usb_recovery
is highly recommended it saved me one time after doing something stupid

they killed the output, it's fixable, info's in the wiki.

not if you're going flashing openwrt again.

FYI, the available flash space using the soon 1 yo snapshot I'm on, is ~75MB.

About that... it just to be here (see screenshot): Dynalink DL-WRX36 Askey RT5010W IPQ8072A technical discussion - #1809 by missingcharacter

@callmesteve You need to setenv console_unlock 1 while in the console (which is possible, see here) or fw_setenv console_unlock 1 while you SSH (see here)

@Ansuel did you get your answers?
My DL-WRX36 is ready to join some experiments.

Yep... The default configuration is flawed and we will apply a more sane configuration

4 Likes

If you need someone to test I can do that also

I'll try shuffling through the discussion, but in case anyone has it... where is the newb guide?

The wiki https://openwrt.org/toh/dynalink/dl-wrx36 is almost good? It just omits some very key details. Like, how do I know if I have not gotten the initramfs to load? I can ssh right back into 192.168.216.1, and get no response doing ssh admin@192.168.1.1 so I assume that it did NOT load the initramfs as expected...

Edit 1a: After I boot to initramfs, if it's successful, I should be able to go to http://192.168.1.1 in a browser and see the luci admin panel, yes? And should the login be root (instead of admin) with password askey1234, or will it be root without a password? Once I get that far, then I should progress to step 2, but....

Then you have this...

"Use SCP to transfer OpenWrt factory image, store it in /tmp."

What is SCP? Do I just type "scp /tmp" and it's magically copying this over? The part 1 of guide was pretty nice about detailing what I needed, other than finding out how to allow ssh-rsa via ssh -oHostKeyAlgorithms=+ssh-rsa admin@192.168.216.1

Edit 1b: Oh, SCP is a secure copy command? Why not just cp? Anyway, if I have all the images on the same usb that's plugged into the router... can't I use those? And how is it differentiating from a usb mount vs the internal tmp directory?

--

Also, it looks like maybe I am on the original firmware because the output to cat /proc/mtd has mtd18 as rootfs_1 and mtd20 as rootfs, but the wiki is suggesting it should be flipped the other way round (18 as rootfs and 20 as _1).

should we list all copy commands that won't work in the wiki?

try, but the initramfs probably doesn't have the packages required for accessing USB storage.

Thanks, this is the info that is only known to the builders and veterans, not newbies. Because just two steps previously we were telling the router to use the USB, and in the immediate desired effect after using the reboot in the prior step, it is loading the image from USB. It would be expected to someone with little understanding that the USB is still accessible.

As for mention of why scp is necessary and not cp, well, just a passive mention that "The only known way to get the openwrt firmware installed persistently on the router is to write it from one device to another. The way we do that is with scp, other copy mechanisms don't work. With a terminal, no longer ssh'd into the router, preferably in the directory where your factory image is, type what Dynalink DL-WRX36 Askey RT5010W IPQ8072A technical discussion - #462 by ka2107 says:

" scp -O openwrt-ipq807x-generic-dynalink_dl-wrx36-squashfs-factory.ubi root@192.168.1.1:/tmp/"

Kudos to @ka2107 for sharing that.

Letting users chase around for one-off knowledge on stackexchange just isn't nice :slight_smile:

For best practice, I am totally reformatting my USB drive. I thought I could use my half full decades' old GB flash drive, but once I back up those files, I'll just flash it again and leave just the initramfs file on the drive. As only through this discussion I have learned the other files are useless on the USB, and possibly other files are conflicting with it flashing to it.

Well, they are two quite different things:

  • the USB can be used to get the initramfs running by the u-boot bootloader, which takes care of the really early stages of booting to get the proper Linux OS (OpenWrt or OEM firmware) running.
  • after Linux has been booted up, u-boot and its driver capabilities have no role. Loading image from USB in OpenWrt requires now USB storage support in OpenWrt.

In general, the OpenWrt device wiki pages do not each try to explain basic Linux file copying over network, drive usage etc. Otherwise, each wiki page would be much longer. The wiki pages assume that the user has basic knowledge Linux console tools, (and hopefully even understands the role of bootloader and the actual OS).

5 Likes

What am I doing wrong?

Every time I do this step, it recovery boots back to the dynalink firmware. I have meticulously double checked that the file in the USB drive (which for sake of me not having to unplug and plug back in over and over and over and over I have enabled via ftp sharing in the dynalink panel) and the command have the same name. Am I somehow missing something?

Should there be some kind of confirmation of "this command is acceptable" when I do the copy-paste of the fw_setenv command from the wiki?

Do I need the extra # out front? I would think not, but I seem to always make the wrong assumption with this documentation :smiley:

Should I be changing the bit about the file name to be UNTITLED/openwrt-23.05... or /UNTITLED/openwrt-23.05... because the FTP server tells me that's where the mount(?) is?

You might be using a too complex USB drive.

The USB drive support in u-boot seems to be rather picky. Too complex partitioned drives have failed also earlier. (possibly due to USB numbering being 1:1 instead of 0:1, or something similar) See example below. You should use a simple 1-4 GB MBR formatted FAT/FAT32 USB stick with just a single partition instead.

Read the discussion a month ago...

As per previous comment, I just formatted this.

On Ubuntu, I plugged in the drive. I right clicked it in Nautilus. I selected Format. I picked FAT. (I assume it's really FAT32, no reason a modern OS should use FAT16?) Literally one partition. It gave me the warning I'll lose all my data. Yep, that's what I want. The drive is "988 MB". All data is off of it except that one singular initramfs file.

My next possible USB drives to use are my Linux livedisc drives where I can format these 16/32 GB drives for this single partition. But that actually exceeds your "simplicity" recommendation.

Edit: Yep. Most of my problems were because of a faulty drive. Using my 1GB drive and attempting to format it 3 times in a row suggested it's dying. I formatted it again after this comment to no filesystem to really ensure as blank of a slate as I could. Then I tried to format it back to FAT, and it threw errors about not being able to put the label on or something. Gave up, grabbed my 32GB livedisc, formatted that and made sure it was one partition, put just the initramfs on there, plugged into router, did the ssh stuff, and it rebooted successfully into openwrt. It still took 30-40 seconds for the router to come back online, in case there is anyone out there who discovers this conversation in their troubleshooting.