Adding OpenWrt Support for Netgear RAX120 (Nighthawk AX12)

I tried but couldn't get that working, so I made this proof-of-concept script to help confirm the format.

If someone can get things working in a more standard way, it will be great.

Your right. I mixed up my notes.. They are pulling in all 100mb. Seems excessive.

I used the variation below because I'm not sure that rootfs needs to be loaded into ram. 0x01D00000 aligns with the target definition for kernel size.

setenv bootcmd "nand read 0x44000000 0x1980000 0x01D00000; bootm"


how is the progress going?

Anything i can do to help?

I am still unsure if I have a v1 or a v2. Mine has the FCC ID but it is also from like 2019 and was part of the Netgear Premier Beta Program that they did for a short time. I want to run some type of customized WRT and am willing to do whatever I can to help. I have never done this before with routers but I have 20 years tech experience and was involved in the iOS jailbreaking scene but that was 10-ish years ago now. No, not meaning I downloaded tools and did jailbreaking, I was part of the numerous groups developing the tools for end users to use and jailbreak their iDevice. I say all that to say I am not a total n00b but I am new to dev'ing or testing or anything with WRT.

Anywho, could someone clear it up for me? How do I for sure tell if I have a v1 or v2? In the bios I have OFDMA options somewhere (the RAX120 is at my family's home in KY but I live in MO and have a Ubiquiti Dream Router so would have to look at exact page of where it is if needed when I am back in Kentucky on the weekend) so I think that means v2 but it has the v1 bios chips so I think its a BS option and does nothing if its a v1? And finally: is this looking to be for the v1 as well or v2 only?


Start with a supported device and build your own image to get an understanding of buildroot. Then begin building a dts and image for the target device.

Look at commits for similar devices to see what is needed.

If it's 2019 and not marked as v2 then it's 99% v1 which is unsupportable.

The router admin page tells you it's v2 if it's indeed v2:

1 Like

FYI: The RAX120v2 is on sale for $292 at Netgear as of this morning Thursday, August 18 2022. Plus you can easily get a 10% off coupon code or 15% off if you can verify through (Military, Student, First Responder, etc…).

No way to tell if it’s a RAX120 or a RAX120v2 from the outside. As far as I can tell the Header in the GUI is the only indication of which version.

This is the label from a v2 I just purchased 2 weeks ago:

Here’s the label (split in to two photos) on a v1 from last year:

Hey @spuriousoffspring regarding telling the difference between RAX120 and RAX120v2: Do you know if the serial number can be a hint. Like are RAX120v2 starting at some serial number and RAX120 at a lower number?

I got a RAX120v2 and the serial starts with 6K011. Do you see e.g. that your RAX120 start with 5...?

Negative. Both my v1 & v2 begin with 67T…

Thanks for checking, well it was worth a try.

Anytime! I’m pretty sure that if you order directly from Netgear you will get a v2.

I got it used in Switzerland but did check with the seller beforehand. And it was printed on the small side of the packing under 'Package Content' as the first bullet point.
"NETGEAR Nighthawk AX12/12-Stream AX6000 WiFi 6 Router (RAX120v2)".

That helped :upside_down_face: and he didn't even have to check in the Web GUI.

@jewest and @wangyu : I compiled both of your git repos and run the initramfs (by tftp).

With both I encounter the following problems:

  • luci doesn't work, I get a white page and the message Bad Gateway The process did not produce any response and the following utthpd errors can be found
  • the following kernel warning is constantly repeated:
    kern.warn kernel: [ 813.848079] hsl_phy_phydev_get[773]:ERROR:phy_addr 5 phydev is NULL

Is it different if I flash the correct image or do you guys also get these messages? Especially the not working luci is a bit of a bummer.

Update: I used @robimarko ipq807x-5.15-pr repo/branch and applied (most of) the RAX120v2 patch. Now luci works just fine. The phy_addr got away after I changed the devicetree.

1 Like

I'm still working off @jewest patch:

Does ethtool return anything usable for anyone? I did include the ethtool-full package and get the following:

root@OpenWrt:/# ethtool eth2
netlink error: failed to retrieve link settings
netlink error: No such device
netlink error: failed to retrieve link settings
netlink error: No such device
Settings for eth2:
        Link detected: yes

All interfaces show Link detected: yes no matter what.

I should probably update this so your not stuck patching. I'm still running the initial build that's been running fairly well for a while aside from the multi-gig interface.

I just set the interface settings in Luci. What are you trying to set with ethtool?

I don't need to set anything, I'm just used to it working and being able to verify the link settings.

Have you flashed your image or are you running it from initramfs?


I have replaced the RAX120 main with the R7800. So now i have a free RAX120 V1 that i really dont care if some functions do not work.

How do i flash the image i see you are talking about? Would this help development?

Also it has become unusable with latest official firmware. If this does not help, do you recommend replacing it through warranty? (i have almost 1 year left)

how is the progress going?
Anything i can do to help?

I havn't spend time on this for a long time. At the time of June, the status was:

  1. wifi and ethernet were working well, except the 5gb interface has some performance problem
  2. luci was working well
  3. webflash or tftp flash were working well

One annoying problem I encountered was:
the jffs2 doesn't work well. Right after you format the nand as jffs2, it works well. But after reboot, the kernel complains there are errors in the jffs2 partition and refuse to mount it. So your change cannot persisit after reboot.

I think the reason is, jffs2 doesn't work well on nand in general. The solution would be, configure openwrt to use ubifs instead. I didn't investigate into this too much, since I am not familar with this topic. But I think it's an easy problem for a person who has experience with it.

1 Like