Porting WNDR4300 to ath79

Recently added devices probably won't be added to 19.07, which was branched six months ago. I still haven't read anything definitive about "20.01", but my guess is that the project isn't going to be anywhere close to their stated goal of releases every six months.

Yesterday I ported my old .config to the new ath79 target and now I'm successfully running a smooth master build. Thank you!

Once thing (I think) I noticed: There's not USB/uhci support in the default config? Or did it just get disabled with the oldconfig merging / target selection? I had to explicitly enable it to get the port working. If not-a-bug: sorry for the spam. :wink:

Anyways, great success, guys!


Glad you enjoying this software!
On my WNDR4300 I hadn't any problems with USB - and AFAIK UHCI is for USB v1 on Intel chips only, not Atheros. USB support should come automatically with kmod-usb2 package in default install. Which config option exactly have you enabled to get your USB working ?


is it possible to add wndr4300sw to the list of profiles? the wndr4300sw is exactly the same hardware as the wndr4300v1 except for the board id. thank you and best regards.

Hi wrtboy,

Sure it is.

It is mentioned here Netgear WNDR4300 "SW" branded that this device has board id set to WNDR4300SW and that is the only difference. If you want to test original WNDR4300 build, you can set identification string to 'WNDR4300' from u-boot command line via 'board_hw_id_set' command:

board_model_id_set WNDR4300

Of course you can set it back to original value using the same method. Changing board id will let you upload WNDR4300 OpenWRT image via tftp.

Best regards!

hi realmicu,

i know a wndr4300 image works for the wndr4300sw because i had successfully tftp-ed a wndr4300 image with a modified header and checksum to a wndr4300. i thought perhaps it would be easier for other wndr4300sw owners for the sw variant to get its profile because many don't know how to modify the header and checksum. the thread Netgear WNDR4300 "SW" branded contains wrong information about burnboardid because i had telnet-ed into the original wndr4300sw firmware and the burnboardid command does not exist in the oem custom kamikaze wndr4300sw firmware. there is a 'set' command in the oem wndr4300sw firmware but the board id for the wndr4300sw is already set to wndr4300 and yet still it will not accept a wndr4300 image. i also think many users may not mess with serial cable to execute u-boot commands hence i think it would be easier to suggest wndr4300sw to get its own profile similar to wndr3800sw. wndr3800sw has its own profile in openwrt. just my 2 cents.

I have a wndr4300sw and somehow I managed to change it to a plain wndr4300 and now it accepts normal non-SW images. I don't know what I did, I tried many things in frustration and something did the trick! I want to say the most likely thing was to take the very first stock Netgear image for the non-SW version, I modified it by changing the signature and flashed it then I think I tried some of the set commands but not sure which. All of a sudden my device turned into a plain WNDR4300 which I'm happy about but I wish I could tell others how to do it too :frowning:
Indeed burnboardid does not exist.

i know mine remains a wndr4300sw even when i can update the firmware using a regular wndr4300 sysupgrade tar file. the modified header and checksum is only needed for the initial tftp to openwrt. i just thought it would be nice to include wndr4300sw to ath79 to save others the challenges. i look forward to having the wndr4300 added to the ath79.

@wrtboy Can you apply the patch below if you can compile your own master build? Would you be able to confirm if that works for you then?

Let me know if the BOARD_ID is a lowercase or uppercase SW suffix, that isn't totally clear to me.

diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk
index 3ccd19914f..9814815ff1 100644
--- a/target/linux/ath79/image/nand.mk
+++ b/target/linux/ath79/image/nand.mk
@@ -172,6 +172,18 @@ define Device/netgear_wndr4300
 TARGET_DEVICES += netgear_wndr4300
+define Device/netgear_wndr4300sw
+  SOC := ar9344
+  NETGEAR_KERNEL_MAGIC := 0x33373033
+  NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
+  $(Device/netgear_ath79_nand)
+TARGET_DEVICES += netgear_wndr4300sw
 define Device/netgear_wndr4300-v2
   SOC := qca9563

If it does then I can file it for inclusion.

hi borromini, i'm able to confirm the board_id has an uppercase SW suffix; WNDR4300SW. thank you.

Thanks, but are you able to build your own firmware with that patch and flash it?

i have tried building my own firmware in the past from master and from a stable branch but i have always encountered 'make world' errors so i have been using the imagebuilder to assemble firmwares. my wndr4300sw is currently now on openwrt 19.07.3-ar71xx but i still have the original oem wndr4300sw firmware i can tftp into the device for me to test but i am comfortable using the imagebuilder once i can see the profile with the 'make info' command for me to assemble a firmware.

I see. I'll build a master image then (it first needs to be accepted into master, before it might be backported to 19.07) and get back to you when that's done.

cool. thank you. i think this will help out folks with wndr4300sw who were not able to flash to openwrt. it's really a nice router albeit older but it's rock solid. take care for now and stay safe.

OK. You can grab factory and sysupgrade images here. This is a default master image so no LuCI included (shouldn't be an issue for testing purposes). Sysupgrade probably won't work (unless you use -F) since your installed image identifies as a WNDR4300 and this image looks for the SW.

Can you test and let me know if it works?

hi borromini, it works with a -F. cool and thank you.

Great, but to be sure TFTP accepts the factory image you need to test that one as well. Can you do that?

hi borromini, are you saying i should test flashing this image from ath79/nand target? i know tftp will fail because of the header missing the suffix SW. that is the reason why i had to modify the header by adding the SW suffix and also modify the checksum so i can tftp it. the header is ignored once the device is already on openwrt with all sysupgrade.bin files.


You did notice my link provides a factory image as well, right?

hi borromini, i have tested both wndr4300sw factory and sysupgrade files you have provided and they both flashed ok. dhcp does not appear to work on both factory and sysupgrade files though because i had to assigned a static ip on my notebook so i can putty in. this recent testing also confirmed my device board id remains as WNDR4300SW for it to accept a factory img with the wndr4300sw header. just like i mentioned before, once a device is on openwrt, option exists to crossflash to the regular wndr4300 via sysupgrade.