About to flash OpenWrt on my new router, dumping firmware?

Hi all! I got a WRT32X after my previous router became an unfortunate vegetable. I'd like to prevent any mistakes this time around and dump my entire NAND before proceeding with the OpenWrt install.

Is there a way to dump the flash

  • in the current, original firmware, or if that's not possible
  • in the new OpenWrt flash?

I want to dump the Wi-Fi calibration data and all that so I can prevent it from becoming a paperweight. How do I dump the partitions?

Also, are OpenWrt's official builds better or are @davidc502's builds better? What are the differences? I only found this in his FAQ:

  1. What are all packages that you include with the build? Short answer - There are a lot of features included, but some of the most popular ones are..

LuCi Gui - Webpage to make configuration changes.
USB Packages - For mounting USB sticks or external hard drives.
Network Shares - SAMBA service that gives network file sharing capabilities.
Dynamic-DNS - allows your router to be reached with a fixed hostname while having a dynamically changing IP address.
UPnP - allows clients in the local network to automatically configure the router.
OpenVPN - VPN service to turn the router into a VPN server or client.

I don't really need any of those except LuCI. Then are the official builds the better choice? Or do @davidc502's builds have better drivers and stuff that I don't know about?

Regarding davidc502's builds they are buildt from snapshots. That means they will have newer stuff than the official builds, but there is a much greater chance that there will be problems with incompatibilities if you want to install additional packages later using opkg. Including the packages in the firmware instead of installing them requires less firmware space, but if you don't need the extra packages it's wasted.

The WRT32X is a dual-firmware device, so you will be able to flash OpenWrt onto "the other" firmware likely using the OEM GUI.

On the Linksys device I recently worked with, nanddump was not available on the OEM firmware, so backing up the partitions was not possible until I had OpenWrt running. NAND flash requires special tools; any generic instructions you run into that use dd or cat are probably "wrong" for your device.

The link above, as well as the output of cat /proc/mtd give you a view of the partitions available for backup.

1 Like

Thanks @Per. As I do not require any of the extra goodies in his build, I'll stick with the official version.

Took a quick look, thanks! One thing that caught my eye:

Like most newer devices in the wrt_ac_series, this device has wifi power tables hardcoded in the EEPROM.

Are power tables == Wi-Fi calibration data? Does that mean I don't have to back up anything?

Also, I looked at the partition table. MTD0~4 seems to be the common partitions that are shared, 5/6 belongs to the primary partition, 7/8 to the secondary and MTD9 is BBT, which I don't understand. Is this where the calibration data is? How would I back up these partitions?

"BBT", I am guessing, is the NAND bad block table -- specific to the device and potentially changing as it ages.

I'm not familiar with the Marvell wireless chips and how they store their per-instance calibration data. If I had the device in hand, I'd back up mtd0-mtd4 and mtd9.

Unless you do something intentionally destructive, it looks like the DTS sets the u-boot and devinfo partitions as read-only to help prevent "I followed [some random person]'s instructions and now it's bricked" situations. The BBT is writable, as it has to be so that it can be updated when a block goes over time.

OK, thanks @jeff. I took the plunge and just installed OpenWrt because, as you've said, backing up on stock firmware is hard.

Got it all set up to my liking and I don't think I'll ever brick this device - it's currently perfect. The stupid DHCP/IPv6 issue from the stock firmware is gone and my gateway VM appliance is working again, which is all I ever wanted. Never flashing stock lol.

I don't know the exact command to back up those partitions, though. How would I back them up in the CLI/SSH?

There is not much need for that. Only the primary kernel+rootfs(ubifs) and the secondary kernel+rootfs ever get flashed (by either OpenWrt or the OEM firmware). (and the syscfg partition gets used in a minor way for storing the settings backup contents during sysupgrade).

Reverting to stock firmware in WRT32X is possible with sysupgrade: you just need to use the --force (-F) flag to bypass the OpenWrt image validation to get the OEM image accepted.

And the dual firmware makes it possible to always recover to the previous one, if a flash goes wrong, or settings get you locked out of the router.