Netgear X10 (R9000)

Can you put this patch in your repo, can't compile anymore :frowning:

Added the temporary fix from

1 Like

I just built and flashed the latest just now. Just wanted to report that I think there's an issue with the second switch. If I plug in to ports 5 and 6 on my router i get no dhcp or anything. If I use ports 1-3 everything is fine.

Not sure if you're still having these troubles or not, but I've built 2-3 images since your posting and haven't had any issues with any of the switch ports. Could it be something in your config?

how install libatomic1

Hello everyone, hoping everything is all right for every of us, I’m here because I acquired a bricked R9000 with what I think it’s a bad nvram caused by a firmware update or something like that, in any case, I opened the router and now I’m facing it’s Motherboard’s serial connector:

Now I’m wondering what is the pinout order for the connector, it’s Baud rate and if I should use the connector in 5V or 3.3V, I can’t find this info anywhere in the web so that’s why I’m asking here.

In any case, once I setup the serial connection, the first step IIRC is reset the nvram and then flashing Openwrt, right? Should I rename the .bin file to something the R9000 could recognize (like in the tplink routers where you had to rename the file to a specific name) it? Or any name is Ok? Thank you a lot for your time and attention people, have a nice day.

i posted my router with serial cable connector, you can see the label of each pin here: Netgear X10 (R9000) - #25 by egorenar

my serial connection setup on linux:

picocom -b115200 /dev/ttyUSB0

not sure what you mean by nvram.
openwrt needs only valid u-boot and ART partitions on nand.

check the posts in this thread, we already described how to flash an openwrt factory image 1000 times :slight_smile:

Hello @egorenar, thank you for your input, what I meant by resetting the nvram is the second post of the following link:

nvram erase

The command to connect via serial is for Linux cli IIRC, right? Cool that you work from Linux, what distro do you use?

the NVRAM literally doesn't matter for openwrt. it's not used. as long as you can get into u-boot, you can easily load the factory image.

Updating my progress (to whom it may be relevant) I want to thank @egorenar, @hurrian and @AnthonyWBarone for their input, thanks to egorenar I was able to boot into uboot, hurrian’s tip made me understand that the bug the router presents isn’t solvable by a mere nvram erase (since it doesn’t have anything to do with it, the building of the firmware is a whole different matter, as is the setup of the TFTP server and the like) and Anthony’s instructions on how to build the image helped me see how, more or less, the building works (even if at the end the building gave me an error 2).

Getting into uboot taught me a lot of things I will be using on other routers I have to do similar fixes, but also it let me (after I booted the damaged firmware) see what errors the router gives, turns out it is in a boot loop because it says that it can’t find wifi 0 and 1 chips (2.4 and 5ghz), that after I erase the nvram.

After digging on the Internet I see that other persons have had the same issue that I have, with the difference that they didn’t have Openwrt to try at the time of their writings, many people diagnose the bug as unfixable, perhaps it is (which wouldn’t matter since the router specs make it a interesting choice for being the core of the network) or perhaps with OpenWRT it can be fixed, has anyone here have had similar experiences with the X10?.

You can thank Netgear's shitty fan control.
I own two R9000s - one as a daily driver (all radios working), the other as a testbed for new builds (2.4GHz and 5GHz radios dead).
It's a hardware fault since Netgear did not adequately ramp up the fan speed on stock firmware, resulting in the radios getting cooked.
For those with R9000s that haven't been fried yet, consider installing my package alpine-fan-control.


@hurrian so you confirmed my suspicions, theoretically one could (if such parts were easily available) replace the chips with new ones, but the cost would be way too high, even then, without the antennas, for 30 bucks, considering it’s quad core cpu with its GB of ram, it’s a steal, I intend to make it the gateway behind a WRT3200 which is the WDS master of other WDS slaves, relieving the WRT of its routing duties to leave it as a dumb AP is the endgame, in any case, by any chance, don’t you have a compiled image of Openwrt? I’ve tried to compile it but only error 2 is the final output

Has anyone here successfully assigned any of the ports on swirch1 to a separate VLAN?

Note: there seems to be no issues assigning switch0 ports to a VLAN but I have had no success in the past months while attempting to assign switch1 ports to a VLAN other than VLAN1.

Please provide details if you have successfully assigned any of the switch1 ports to a separate VLAN.


I can remember you wrote about removing link aggregation between switch0 and switch1 because it was causing an issue that prevented tagging of the trunk ports between both two switches.

Was link aggregation eventually removed or is there a workaround to allow switch1 ports to be assigned to separate VLANS?

@hurrian thanks for the alpine-fan-control! Just what i was looking for!

1 Like

5g 160mhz setting
Channel select <=64
mac80211 use 80plus80mhz
5g 80mhz Channel select 149

@egorenar will the github repo continue to be merged with the openwrt repo?

Thank you :heart:

1 Like

rebased the branch

1 Like

Just compiled again after the rebase. Having a few issues with Luci though, here's what I get trying to reach the status/overview page (ie.

Runtime error
Unhandled exception during request dispatching
/usr/lib/lua/luci/ucodebridge.lua:23: /usr/lib/lua/luci/template.lua:158: Failed to load template 'admin_status/index'.
Error while parsing template '/usr/lib/lua/luci/view/admin_status/index.htm':
No such file or directory

In error(), file [C]
called from function [anonymous function] (/usr/lib/lua/luci/ucodebridge.lua:23)
called from function ((tail call))
In [anonymous function](), file /usr/share/ucode/luci/runtime.uc, line 138, byte 45:
  called from function [arrow function] (/usr/share/ucode/luci/dispatcher.uc:778:70)
  called from function render ([C])
  called from function render_action (/usr/share/ucode/luci/dispatcher.uc:768:24)
  called from function run_action (/usr/share/ucode/luci/dispatcher.uc:779:4)
  called from function [anonymous function] (/usr/share/ucode/luci/dispatcher.uc:993:48)
  called from anonymous function (/www/cgi-bin/luci:39:12)

 `        return, method, ...args);`
  Near here ----------------------------------------^

I'm able to reach pages such as this one directly: but all of the action buttons within each page are non-clickable. I was able to roll back to my previous compile via SSH though. Just wanted to mention it here. Not sure if it's something I did/didn't do.