OpenWrt Forum Archive

Topic: New Linksys WRT32X OpenWRT-based firmware & WRT3200ACM crossflash

The content of this topic has been archived on 6 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi,
As most of you know Linksys has a new device on the market, WRT32X which is a rebrand of WRT3200ACM, hardware-wise it is the same, just with different firmware, this time based on OpenWRT trunk with custom interface and proprietary WiFi driver.
The firmware file they distribute has a standard OpenWRT/LEDE sysupgrade format. LINK: downloads.linksys.com/downloads/firmware/FW_WRT32X_1.0.170818.201.img
They have changed mtd partitions layout.

I tried to make the new firmware work on WRT3200ACM by changing the mtd layout, setting new u-boot env values and compiling OpenWRT/LEDE with modified armada-385-linksys-rango.dts.
The purpose of that was so that I could flash the compiled factory2openwrt image and from within it run sysyupgrade with Linksys firmware, however no luck. The kernel boots but fails to find the rootfs.

(Last edited by inteliboy on 19 Sep 2017, 21:48)

Has that env changed?

mtdparts=mtdparts=armada-nand:2048K(uboot)ro,128K(u_env),256K(s_env),256K@8064K(devinfo),1920K@8320K(sysdiag),80m@10m(kernel),74m@16m(rootfs),80m@90m(alt_kernel),74m@96m(alt_rootfs),160m@10m(ubifs),-@170m(syscfg)

(Last edited by ValCher on 19 Sep 2017, 16:56)

what are you asking exactly?
in WRT32X its

mtdparts=mtdparts=armada-nand:2048K(uboot)ro,128K(u_env),256K(s_env),256K@8064K(devinfo),123m@9m(firmware1),123m@132m(firmware2)

Also I managed to solve the problems I had and flash WRT32X firmware to WRT3200ACM.
I simplified the method I initially used, by compiling the WRT32X firmware from the GPL source released per request today.

in U-boot console issue:

setenv mtdparts 'mtdparts=armada-nand:2048K(uboot)ro,128K(u_env),256K(s_env),256K@8064K(devinfo),123m@9m(firmware1),123m@132m(firmware2)'
setenv priKernAddr 0x0900000
setenv altKernAddr 0x8400000
setenv altFwSize 0x7b00000
setenv priFwSize 0x7b00000
setenv nandboot 'setenv bootargs console=ttyS0,115200 root=/dev/mtdblock6;nand read $defaultLoadAddr $priKernAddr $priKernSize; bootz $defaultLoadAddr'
setenv altnandboot 'setenv bootargs console=ttyS0,115200 root=/dev/mtdblock8;nand read $defaultLoadAddr $altKernAddr $altKernSize; bootz $defaultLoadAddr'
save

Set PC's IP to 192.168.1.254 / 255.255.255.0 and serve provided rango.img via TFTP and after reboot you'll be running WRT32X firmware smile
To flash and boot served image issue in U-Boot:

run update_both_images
boot

h t t p : / / w w w 108.zippyshare.com/v/lgm43Bri/file.html (no dot after w w w)

To reverse the process:
Download and serve via TFTP any WRT3200ACM firmware file (only full factory images), be that LEDE, OpenWrt, oficial firmware and change the name to rango.img
And use this commands respectively:

setenv mtdparts 'mtdparts=armada-nand:2048K(uboot)ro,128K(u_env),256K(s_env),256K@8064K(devinfo),1920K@8320K(sysdiag),80m@10m(kernel),74m@16m(rootfs),80m@90m(alt_kernel),74m@96m(alt_rootfs),160m@10m(ubifs),-@170m(syscfg)' 
setenv nandboot 'setenv bootargs console=ttyS0,115200 root=/dev/mtdblock6 ro rootdelay=1 rootfstype=jffs2 earlyprintk $mtdparts;nand read $defaultLoadAddr $priKernAddr $priKernSize; bootm $defaultLoadAddr' 
setenv altnandboot 'setenv bootargs console=ttyS0,115200 root=/dev/mtdblock8 ro rootdelay=1 rootfstype=jffs2 earlyprintk $mtdparts;nand read $defaultLoadAddr $altKernAddr $altKernSize; bootm $defaultLoadAddr' 
setenv priKernAddr 0x0a00000 
setenv altKernAddr 0x5a00000 
setenv altFwSize 0x5000000 
setenv priFwSize 0x5000000 
save 
run update_both_images 
boot

(Last edited by inteliboy on 19 Sep 2017, 18:17)

It's a good thing you found the solution.

Apparently, wrt3200 and wrt32x different U-boot.
You can make a copy of mtd0 wrt32x and put it online. I want to compare them.

dd if=/dev/mtd0 of=/mtd0.bin

Yes, and just in case, make a copy of the MTD3, and keep it in a safe place, because it stores important information about your router. Without this information, Linksys official firmware will not work.

dd if=/dev/mtd3 of=/mtd3.bin

(Last edited by ValCher on 19 Sep 2017, 21:00)

Well I don't own WRT32X, but you can grab the U-Boot from the Linksys sysupgrade file for the WRT32X, it's in the rootfs. I did flash the WRT32X version of U-Boot but reverted back to WRT3200ACM just because I missed the Marvell logo in the console smile I can tell you that apart from default variables specifically for WRT32X you will not see much difference. I have copies of all partitions as a backup smile

(Last edited by inteliboy on 19 Sep 2017, 21:49)

It's been a long time since my last visit to the GPL source Linksys, not immediately, but I found him smile
Thank you, I'll watch.

How is the WRT32X working to date? I have one that I would like to put WRT3200ACM based fw on. The factory fw lacks a lot of advanced functionality

I too have a 32x that I'm currently not using till progress is made. I saw your post on the lede forums, and thank you for posting here in OWRT where I hope eventually releases are made.

Just wondering what the status of OWRT on the WRT32X is. Is it likely not to move forwards based on some issue? Anyone give a rundown of what the issues are?

If not moving forwards, then to make this work, do we need to disassemble the 32X and use a serial cable? What's the process from there, update firmware, then update with an image using the WRT3200?

The discussion might have continued from here.