Kernel Patches Netgear R8000P -> R7900P

I'm looking to build/test/commit support for the NetGear R7900P. By report, NetGear's firmware for the R8000P is identical to the R7900P
Additionally, I found a dd-wrt forum post reporting the use of R8000 firmware in a R7900.

Finally, the latest R7900P OEM firmware has this entry (gvim/hex convert):

To confirm, I downloaded and extracted the firmware for both devices.

P*****$ pwd                                                                    
P*****$ ls R7900P/ R8000P/                                                     

P*****$ diff R
R7900P/  R8000P/  
P*****$ diff R7900P/R7900P-V1.4.2.84_1.3.42.chk R8000P/R8000P-V1.4.2.84_1.3.42.chk

The R8000P is supported by OpenWRT and has the same board id:

define Device/netgear_r8000p
  DEVICE_VENDOR := Netgear
  DEVICE_DTS := broadcom/bcm4908/bcm4906-netgear-r8000p
  IMAGES := chk
  IMAGE/chk := append-ubi | bcm4908img | netgear-chk
TARGET_DEVICES += netgear_r8000p


  1. The R7900P has one usb3.0 port while the R8000P has one USB3 and one USB2
	bcm4908img \
	kmod-gpio-button-hotplug \
	kmod-usb-ohci kmod-usb2 kmod-usb3

The usb2 header is probably on the board. Do I need kmod-usb2?

  1. My git clone shows 3 patches for Kernel 5.10 that specifically reference R8000P

How do I handle theses?

  1. The dts for the R8000P has separate LEDS for USB2 and USB3. If the manufacturer was not motivated to build different firmware for the 2 devices, is it worthwhile for the project to be more technically more accurate even though in practice it will not make any difference?

  2. Is there a simple way to use the R8000P image and just re-label the image as R7900P?

1 Like

I'm also interested, I've a R7900P too. Do you have a link to the post you mentioned?

I'm thinking about put some effort on this R7900P/R8000P target

I had to correct my original post and went ahead and put in the dd-wrt link. To be clear the R8000 is a different device from the R8000P but my own tests show that the OEM firmware for the R7900P and R8000P are identical (diff run on both extracted firmwares generated no output).

@KONG , in the dd-wrt forum suggested that, because the OEM R7900 firmware was identical to the R8000 firmware, it could probably be flashed and in that thread it was confirmed to run. By extension, you should be able to flash the OpenWRT snapshot R8000P build in the R7900P.

There is always a risk when you are the first to try out a firmware and I'm holding off testing because Netgear is still providing security updates and, more importantly, it is not my device.

Usually they have a different header in the image: DU12H359T00_NETGEAR which is just used for things like different led handling and for the upgrade check, if it has the same header, then it is pretty clear, that it is identical and if just the led is missing and a usb port, flashing the current R8000P image should work fine.

And since the header is the same, the *.chk file will be accepted right away, netgear firmware reads the header from the .chk, in case it doesn't match it will tell you. Thus it is pretty safe to try flashing the openwrt *.chk, if netgear firmware upgrade accepts it. You may get a warning, that you are trying to flash an older version, not sure what openwrt currently sets as version info in the build step.

There's been an update to the R8000P firmware image. It's a .bin file however, and renaming the extension to .chk doesn't work. I tried flashing the firmware in the webinterface, but I get a failure message (find in the attachment below). Does anyone have a way to flash the R8000P file even to an R8000P? Because the webinterface only accepts .chk files, while the file currently available on the R8000P page is a .bin file.

Does anyone have any way I can flash the R8000P .bin to my R7900P?