NETGEAR Nighthawk RAX200 support

Currently I renovate my apartment on the technical site. CAT8 Ethernet (40GBit/s :heart_eyes:) I think my home network (Ethernet) infrastructure (Patch cables and wiring) is fast enough for the next 20 years. :rofl: I also bought a new router, because the old router LinkSys WRT32X lacked ins some functionionality. So I bought a NETGEAR Nighthawk RAX200.

Are there any offical plans to support the RAX200? As far I have seen in the vendor WebUI, there will be OpenWrt (maybe modified) used.

EDIT:
Must obstruct this all (CAT8 equipment)... :sweat_smile:

Considering its a Broadcom device, probably never

Product Datasheet (Flyer) for the Niighthawk RAX200

OpenWrt use Linux as Kernel. Linux support various platforms (not only a Broadcom SoC). The base architecture is decisive (ARM AArch64, X86, ...)

Not really, just because its AARCH64 isnt worth anything without driver and those BCM SoC-s cannot even boot to UART

3 Likes

You have don't understand me.

Once again:

OpenWrt is ONLY a Linux distribution. In the past I have successfully build a Linux distribution from scratch for the purpose of education, so I know what I'm talking about. OpneWrt targets only Router hardware.

Linux MUST support/Implement the devices in the router. NOT OpenWrt. OpenWrt cannot control these devices directly. Only via the Kernel (Linux). Syscall's, ...

No, you don't.

Correct, it would have to support it to port OpenWrt for this device, but it doesn't.

There's is only minimal SOC support and zero support for the wireless drivers. Chances for that to change are close to zero as well, Broadcom has repeatedly shown over the last two decades that they don't want to support their softmac/ router wifi chipsets and there is currently no FOSS developer group working on these drivers for the current chipsets either.

While you can play the semantics game, it doesn't change the fact that the chances of this device getting OpenWrt support at all are close to zero.

--
Yes, we all are aware of https://git.openwrt.org/?p=openwrt/openwrt.git;a=tree;f=target/linux/bcm4908 - that won't give you wireless support though, and without that, this device is 'useless', as there are plenty better and faster supported (wired-only-) platforms available for less money (e.g. RPi4, r4s, x86_64, …).

3 Likes

?

Currently I renovate my apartment. So I have no time to add minimal support to OpenWrt for the RAX200 by my own.

I have a generic question to the build system from OpenWrt. As you wrote there is no FOSS support for this device. I don't need FOSS support.

I have tried to extract the NETGEAR firmware with binwalk:

$ binwalk -M -e RAX200-V1.0.6.138_1.0.76.chk 

Scan Time:     2022-05-01 05:35:46
Target File:   /home/krj/downloads/nighthawk/RAX200-V1.0.6.138_1.0.76/RAX200-V1.0.6.138_1.0.76.chk
MD5 Checksum:  cd0a9baa85aa7b5df9abd7e2e7b5f58f
Signatures:    411

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
58            0x3A            JFFS2 filesystem, little endian
4063290       0x3E003A        UBI erase count header, version: 1, EC: 0x0, VID header offset: 0x800, data offset: 0x1000`

My question:
Can I build OpenWrt without the FOSS Kernel and Device Tree? In firmware there exists the Kernel and the correct device tree.

No.

Okay.

Then I simply build OpenWRT for the correct SoC. And extract the OpenWrt images, replace Linux, Device-Trees and drivers and recreate the firmware image. Should work. :wink:

Sure, have fun with your fancy doorstop.

5 Likes

/dev/null

What you need to realise is that all those OEMs use a heavily mutilated old OpenWrt version that hardware vendors (e.g. Qualcomm) provide. The binary drivers tie into that platform. You cannot just swap out a kernel or driver at will. OpenWrt uses modern kernels (5.10, 5.15) and works with upstream. Vendors 99% of the time do not (check your kernel version for fun).

There are no AX drivers from Broadcom that the FOSS community can use. So it's end of story. With some luck Tomato might support your device at some point e.g.

It's a beginner's mistake to buy stuff first, then hope or expect that OpenWrt will support it. We've all been there.

4 Likes

Or expect "real" openwrt to work, because "it's already running openwrt...".

1 Like

Sorry I was offline:

@slh:

As software developer maybe. But NOT for a hardware developer (electronic engineer) like me. Also when I delete U-Boot. I can always recover the device. :wink: When I delete U-Boot I must open the device and reflash the partions on the FLASH EEPROM's via JTAG, SPI, whatever.. No problem as hardware developer. :wink:

I work as embedded hardware AND software developer. I also don't need U-Boot AND/OR Linux. I only need the offical toolchains for the corresponding devices and the full datasheets.

NO furthermore comments, to your answer.

RAX200:

I simply invertigated the root device tree blob:

$ strings 94908.dtb
Broadcom-v8A
brcm,brcm-v8A
cpus
cpu@0
=cpu
arm,cortex-a53
cpu@1
=cpu
arm,cortex-a53
lspin-table
cpu@2
=cpu
arm,cortex-a53
lspin-table
cpu@3
=cpu
arm,cortex-a53
lspin-table
l2-cache0
cache
memory@00000000
=memory
reserved-memory
dt_reserved_dhd0
dt_reserved_dhd1
dt_reserved_dhd2
dt_reserved_buffer
dt_reserved_flow
chosen
coherent_pool=4M cpuidle_sysfs_switch pci=pcie_bus_safe rootwait
interrupt-controller@81000000
arm,cortex-a15-gic
arm,cortex-a9-gic
timer
arm,armv8-timer
arm,armv8-pmuv3
ubus@ff800000
simple-bus
sdhci@ff858000
brcm,bcm63xx-sdhci
nand@ff801800
brcm,nand-bcm63xx
brcm,brcmnand-v7.1
nand
nand-int-base
okay
nandcs@0
brcm,nandcs
watchdog@ff800428
brcm,bcm96xxx-wdt
i2c@0xff802100
brcm,bcm63000-i2c
spi@0xff801000
brcm,bcm6328-hsspi
Dhsspi
okay
brcm-legacy
brcm,brcm-legacy
aliases
r/ubus@ff800000/spi@0xff801000
hsspi-pll
fixed-clock
spu-pdc@0x8001c000
brcm,pdc
spu-crypto@0x8001d000
brcm,spu-crypto
brcm-therm
brcm,therm
        model
compatible
interrupt-parent
#address-cells
#size-cells
device_type
next-level-cache
linux,phandle
enable-method
cpu-release-addr
ranges
no-map
bootargs
#interrupt-cells
interrupt-controller
interrupts
interrupt-affinity
bus-width
mmc-ddr-1_8v
no-1-8-v
reg-names
status
nand-on-flash-bbt
timeout-sec
clk_sel
clocks
clock-names
spi-max-frequency
num-cs
cs-gpios
spi1
#clock-cells
clock-frequency
brcm,num_chan
brcm,num_spu

As you see the RAX use a quad core Cortex-A53 processor from the vendor Broadcom. I think thers is no problem to add minimal support to OpenWrt. :slight_smile:

I think it is better to open the router, to know exactly which Broadcom SoC model is used. Also to figure out the UART interface (for the serial console). :slight_smile:

There is more than just the CPU.

It is a system on a chip.

You need drivers for the various systems, for example there are no drivers for Broadcom WiFi that are available to work with the openwrt.

1 Like

Wifi probably isn't in scope when "minimal support" is being considered.

But in that case, there are probably a lot cheaper device capable of doing the remaining part.

You don't need to explain this a HARDWARE developer like me... As I wrote: I'm a hardware developer.

Yes. :slight_smile: I will only need to start U-Boot. I hope U-Boot has a boot delay. So I can enter the U-Boot command line. :slight_smile:

So my first goal is, to get a working serial console. :slight_smile:

EDIT:
U-Boot boot delay: I mean the delay before U-Boot loads the Kernel (Autoboot).