Ravpower wd03 does not start with openwrt master

A clone device, HooToo HT-TM05 support commit hit master.

One could try @arrmo's branch on the RAVPower RP-WD03 device through TFTP method:

  • build the needed OpenWrt install files, place them in the root
    of a clean TFTP server running on your computer. Rename the files as,
    • ramips-mt7620-ravpower_rp-wd03-squashfs-kernel.bin => kernel
    • ramips-mt7620-ravpower_rp-wd03-squashfs-rootfs.bin => rootfs
  • Plug the router into your computer via Ethernet
  • Set your computer to use 10.10.10.254 as its IP address
  • With your router shut down, hold down the power button until the first
    white LED lights up.
  • Push and hold the reset button and release the power button. Continue
    holding the reset button for 30 seconds or until it begins searching
    for files on your TFTP server, whichever comes first.
  • The router (10.10.10.128) will look for your computer at 10.10.10.254
    and install the two files. Once it has finished installation, it will
    automatically reboot and start up OpenWrt.
  • Set your computer to use DHCP for its IP address
1 Like

On the long term, wouldn't it be better if we had a working mainstream u-boot for these RAVPower/HooToo devices? I understand that it would make restoring the devices to factory firmware harder, but it would also allow us to establish a custom (and proper!) MTD layout, stripping out the manufacturer's idiocy (swapping up factory and u-boot-env partitions' usage, pushing u-boot-env between kernel and rootfs, or limiting kernel to 1.5MB, just to name a handful). After all, porting OpenWrt to a device shouldn't just be "made it boot with factory everything", but to provide actual support of the hardware, often ignoring the software fallacies of the manufacturer.

The RP-WD009 apparently already boots from mainline U-Boot versions, and I don't think the WD03/HT-TM05 is too much different, given they're all products of SunValleyTek - same engineering department, same development mistakes, and so on. Especially for continued support, I think we should roll an OpenWrt-specific U-Boot with these stupid limits removed.

As blocktrron said earlier, this is something for a community build, IMHO.

A working mainstream u-boot is a valuable thing, but in this case it's not better compared to current support of HT-TM05.

Current implementation removes all limitations and works around all the idiocy of SunValleyTek and brings almost 100% device support in exchange of 64 K (but at least 4 K) wasted space:

Tested and working:

 - Ethernet
 - 2.4 GHz WiFi (Correct MAC-address)
 - Installation from TFTP (recovery)
 - OpenWRT sysupgrade (Preserving and non-preserving), through the usual
   ways: command line and LuCI
 - LEDs (except as noted above)
 - Button (reset)
 - I2C, which is needed for reading battery charge status and level
 - U-Boot environment / variables (from U-Boot, and OpenWrt)

@mwarning and others!

Snapshot version is usable again!
Thanks @adrianschmutzler for wrapping up!

Use the ...-kernel.bin and ...-rootfs.bin for TFTP installation!
For instructions, see above!

DO NOT TRY upgrading through sysupgrade, it will soft-brick the device! Use the TFTP method!

1 Like

Could someone (@xabolcs perhaps?) please take care of the devicepage https://openwrt.org/toh/ravpower/ravpower_rp-wd03 and update the installation procedure (and maybe write down the back to stock procedure which is currently only linked to the forum)? It's better when someone with this device in his hands does this :slight_smile:

1 Like

Sure, I thought about adding the new OpenWrt bootlogs too.

1 Like

And I still disagree with that sentiment. The point of OpenWrt support shouldn't be "eh, it boots, it mostly works, it's fine", but to actually properly create support for said device, in certain cases including the replacement of the bootloader.

I agree that unnecessary changes should be avoided, but to me it feels like this is a necessary change for full support. Not to mention that there are other devices that require the replacement of the bootloader - e.g. the Mi Router 3/3G.

The current support is a hacky software layer solution to combine 3 partitions. I'm not sure about the performance impact of this (since an extra bit of software needs to manage the blocks), but it requires extra loader support, extra bits of software that otherwise would be unnecessary... I understand that you've worked a lot on getting OKLI working on the WD03/TM05, but why do that when a simple mainstream u-boot build with the right partition map would've fixed the issue right off the bat? Especially since we have official sources for u-boot right from SunValleyTek.

@tmomas for officially supported devices, would it be possible to host the official firmware for the back-to-stock steps? RAVPower has had issues with their site before, and generally I'd feel more secure if there was a known good backup on OpenWrt side.

I'm really hesitant regarding hosting OEM firmwares on OpenWrt servers.

I see it as the OEMs duty to provide his firmware on his servers, and I would like to avoid creating a precedent. If we would create a precedent, then suddenly all cheapo manufacturers around the world which are unable or unwilling to provide an OEM firmware download service to their paying customers could lay back and say "Why should we care about own servers, when OpenWrt hosts our OEM firmware for free?".

2 Likes

I understand the hesitance, however as it has happened before, it's not too unlikely for smaller brands like RAVPower to go under suddenly, removing all resources available. I'm obviously not suggesting hosting all OEM firmwares, more like a "conversion kit" that returns the device to the earliest supported OEM firmware. Definitely not meant to host the latest OEM firmware, just a backup in case :poop:hits the fan.

For firmware backups and tools one could use scm hostings, like cryptographrix did.

But yeah, it would be far better to find all the things on the OpenWrt wiki which needed to roll back the device to OEM. :+1:

1 Like

Did it. Please review (at least the format :sweat_smile:).

@mwarning, @arrmo please have a look!

2 Likes

There should be a warning that you will soft brick the device, if you use the sysupgrade image to upgrade from 19.07.4.

Anyway, great work anyone making OpenWrt working again on this device!

Aside from the precedent, and the legal issues the vendor could bring up (distributing trademarked material) - hosting would imply distribution, which would impose and extend the burden of license compliance for the OEM firmware to OpenWrt as well (GPL compliance, does a GPL tarball exist and is it complete). This really isn't a good idea, nor viable.

1 Like

Looks good to me, thanks @xabolcs. And I like the new OpenWrt bootlog captured there :smile:.

Would you mind to test the sysupgrading from 19.07.4 to snapshot over serial?

It would be nice to include some log to the warning message!

Hi,

So back up to v19.07.4 (save u-boot-env first, right?), then upgrade via TFTP?

Thanks!

Not with TFTP, but via sysupgrade command using ravpower_rp-wd03-squashfs-sysupgrade.bin!

Upgrading via TFTP should work flawlessly! :slight_smile:

Gotcha! And just backup u-boot-env first, right? Saying that as v19.07.4 will trash it :laughing:.

Anything else to do first?

Yeah, u-boot-env backup ... but you could try to initialize from OpenWrt and from u-boot!

Sure, NP at all! I'll back-up, then we can play ... LOL. Can you clarify, how are you thinking to initialize here?

And to above - you're looking for the LuCI warning message, right?