Dynalink DL-WRX36 Askey RT5010W IPQ8074 OpenWrt support

if testing failed you would need to restore in u-boot:

env default -a

Then you can apply your previous changes before saving everything, eg:

bootargs=ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs
mtdparts=mtdparts=nand0:0x6100000@0x1000000(fs),0x6100000@0x7a00000(fs_1),
mtdids=nand0=nand0
setpartfs=ubi part fs;ubi read 0x44000000 kernel 0x80000000
setpartfs1=ubi part fs_1;ubi read 0x44000000 kernel 0x80000000
bootcmd=run setpartfs;bootm 0x44000000#config@rt5010w-d350-rev0
saveenv
2 Likes

can check it tomorrow! :slight_smile:

how can we go back to the stock firmware?
A binary is posted in this thread but how do I write it to the nand??

I would prefer to test your script with the stock firmware to demonstrate that it is usable for new users ..

The same way you wrote openwrt to the flash.
Boot initramfs and use ubiformat.

1 Like

I was able to get UART access and fixed some issues with the install script.

There is one issue that I haven't worked out, but doesn't prevent installation:

IPQ807x# tftpboot 0x44000000 ${factoryimg}
ipq807x_eth_halt: done
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 Down Speed :10 Half duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :1000 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
eth0 PHY5 Down Speed :10 Half duplex
ipq807x_eth_init: done
Using eth0 device
TFTP from server 192.168.1.10; our IP address is 192.168.1.250
Filename 'openwrt-ipq807x-generic-dynalink_dl-wrx36-squashfs-nand-factory.ubi'.
Load address: 0x44000000
Loading: *
Got TFTP_OACK: TFTP remote port: changes from 69 to 59542
#################################################################
      ...
         #########################################
         3.6 MiB/s
done
Bytes transferred = 22544384 (1580000 hex)
ipq807x_eth_halt: done
IPQ807x# imxtract 0x44000000 ubi
Invalid image type for imxtract

I am wondering if imxtract has been modified to look for a custom header? Either way, this correclty exposes $fileaddr and $filesize that are used by nand write and everything subsequent works as it should.

@robimarko do you have any views on using this install script or a variation of it for the install method?

I dont really have an opinion right now, haven't touched the Dynalink in a while.

imxtract and all other image commands only work on FIT images.
We can actually do what QCA does and that is make a FIT image with a installation script inside

any chance of syncing your repo with the openwrt master (just seen you have done it for ax3600)?

so far all working fine with this device for my use case apart from the reverse order of lan/wan devices that I reported earlier but not a showstopper. All else stable, memory etc ...

Cant really tell you when I will get to it

System works fantastic! The only thing that does not work on my side is sysupgrade. I always need to tftp the initramfs and ubiformat the factory image ...

I am also not able to switch to mtd20, my system is constantly booting from mtd18 no matter what I do ...

root@OpenWrt:~# fw_printenv 
baudrate=115200
bootargs=ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs
bootdelay=23
eth1addr=a4:97:33:df:9a:5f
eth2addr=a4:97:33:df:9a:5f
eth3addr=a4:97:33:df:9a:5f
eth4addr=a4:97:33:df:9a:5f
ethact=eth0
ethaddr=a4:97:33:df:9a:5e
fdt_high=0x4A400000
fdtcontroladdr=4a971480
flash_type=2
machid=8850105
mtddevnum=0
mtdids=nand0=nand0
mtdparts=mtdparts=nand0:0x6100000@0x7a00000(fs),0x6100000@0x1000000(fs_1),
partition=nand0,0
setpartfs=ubi part fs;ubi read 0x44000000 kernel 0x80000000
setpartfs1=ubi part fs_1;ubi read 0x44000000 kernel 0x80000000
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000
active=1
bootlinux=ubi read 0x44000000 kernel 0x80000000
bootcmd=run setpartfs;bootm 0x44000000#config@rt5010w-d350-rev0

if I change

bootcmd=run setpartfs;bootm 0x44000000#config@rt5010w-d350-rev0

to

bootcmd=run setpartfs1;bootm 0x44000000#config@rt5010w-d350-rev0

it is still useing mtd18 to boot. No idea what I am doing wrong?

1 Like

completely agree! this is such a good device, stable and performant.

check this approach that changes the target/linux/ipq807x/base-files/lib/upgrade/platform.sh Dynalink DL-WRX36 Askey RT5010W IPQ8074 OpenWrt support - #139 by rmandrad the script is using the uboot variables I defined.

however I feel @clayface approach on the uboot is much more elegant ... still I think the platform.sh will need to be changed in order to set the active partition. plus there is what @robimarko suggested @ Dynalink DL-WRX36 Askey RT5010W IPQ8074 OpenWrt support - #177 by robimarko

this is what I get using the wlan0

memory

So, somehow I can't get ethtool to list settings

ethtool eth4
Settings for eth4:
Cannot get device settings: No such device
        Link detected: yes

ifconfig eth4
eth4      Link encap:Ethernet  HWaddr  
          inet6 addr:  Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1
          RX packets:17266361 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9762275 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:19378113137 (18.0 GiB)  TX bytes:10382685631 (9.6 GiB)
          Base address:0x7000

anyone having this issue? thx

The usb3 performance of the dynalink is incredible!

I just connected an ancient external usb3 hdd:
reading and writing via samba4 with max wifi speed (close to 1 Gigabit/sec)!

this thing will replace my old synology NAS

2 Likes

I have been trying to refresh the build with the latest master but having trouble with ath11k starting ..basically get everything started apart from ath11k

I am getting the following

[    9.207566] ath11k c000000.wifi: ipq8074 hw2.0
[    9.784091] ath11k c000000.wifi: failed to boot the remote processor Q6
[    9.789187] ath11k c000000.wifi: failed to power up :-12
[    9.815897] ath11k c000000.wifi: failed to create soc core: -12
[    9.815939] ath11k c000000.wifi: failed to init core: -12
[    9.820759] ath11k: probe of c000000.wifi failed with error -12

any clues on what is hapening? 

Are you sure that ath11k-firmware is part of your image?

Is the remoteproc even powered up?

I pushed a branch with fixed port ordering and partition switching/bootcount in case you want to use it. This is based off robimarko's ipq8074-5.15-pr branch rather than the dynalink one.

4 Likes

you are absolutely right i forgot the most elementary thing :wink: thank you again

Is sysupgrade working with your branch and could you share your fw_printenv?

Yes it is.

root@OpenWrt_dl-wrx36:~# fw_printenv 
active=1
baudrate=115200
bootargs=console=ttyMSM0,115200n8 ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs
bootcmd=run bootcounter && run setup && run bootlinux
bootcounter=if test $bootcount = 0; then setenv bootcount 1 && saveenv; elif test $bootcount = 1; then setenv bootcount 2 && saveenv; elif test $bootcount = 2; then setenv bootcount 3 && saveenv; elif test $bootcount = 3; then run chpart && setenv bootcount 4 && saveenv; elif test $bootcount = 4; then setenv bootcount 5 && saveenv; elif test $bootcount = 5; then setenv bootcount 6 && saveenv; elif test $bootcount = 6; then setenv active recovery && setenv bootcount 0 && saveenv && reset; fi
bootdelay=2
bootlinux=ubi read 0x44000000 kernel 0x80000000 && bootm 0x44000000#config@rt5010w-d350-rev0
chpart=if test $active = 0; then setenv active 1;  elif test $active = 1; then setenv active 0; fi
eth1addr=a4:97:33:df:ad:37
eth2addr=a4:97:33:df:ad:37
eth3addr=a4:97:33:df:ad:37
eth4addr=a4:97:33:df:ad:37
ethact=eth0
ethaddr=a4:97:33:df:ad:36
factoryimg=openwrt-ipq807x-generic-dynalink_dl-wrx36-squashfs-nand-factory.ubi
fdt_high=0x4A400000
fdtcontroladdr=4a971480
fileaddr=44000000
flash_type=2
ipaddr=192.168.1.250
machid=8850105
mtdids=nand0=nand0
mtdparts=mtdparts=nand0:0x6100000@0x1000000(fs),0x6100000@0x7a00000(fs_1),
serverip=192.168.1.10
setup=if test $active = 0; then ubi part fs; elif test $active = 1; then ubi part fs_1; elif test $active = recovery; then run tftprecover; fi
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000
tftprecover=sleep 5 && setenv serverip 192.168.1.10 && setenv ipaddr 192.168.1.250 && tftpboot 0x44000000 ${factoryimg} && imxtract 0x44000000 ubi; nand device 0 && nand erase 0x1000000 0x6100000 && nand write $fileaddr 0x1000000 $filesize && nand erase 0x7a00000 0x6100000 && nand write $fileaddr 0x7a00000 $filesize && setenv active 0 && saveenv && reset
ubiflash=nand device 0 && nand erase 0x1000000 0x6100000 && nand write $fileaddr 0x1000000 $filesize && nand erase 0x7a00000 0x6100000 && nand write $fileaddr 0x7a00000 $filesize && setenv active 0 && saveenv && reset
bootcount=0
1 Like

fantastic thx!