NanoPi R4S rk3399 4G is a great new OpenWrt device

Welcome R4S club

  • SoC – Rockchip RK3399 hexa-core processor with dual-Core Cortex-A72 up to 2.0GHz, quad-core Cortex-A53 up to 1.5GHz, Mali-T864 GPU with OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11, and AFBC support, 4K VP9 and 4K 10-bit H265/H264 60fps video decoder
  • System Memory – 4GB LPDDR4
  • Storage – MicroSD card slot
  • Networking – 2x GbE(RTL8211E 1Gbps - RTL8111H 1Gbps), including one native Gigabit Ethernet, and one PCIe Gigabit Ethernet
  • USB – 2x USB 3.0 Type-A ports, USB 2.0 via 4-pin header
  • Expansion – 2×5-pin header with 1x SPI, 1x I2C
  • Debugging – 3-pin debug UART header
  • Misc- 1x power LED, and 3x user LEDs (SYS, LAN, WAN), user button, 2-pin RTC battery connector, 5V fan connector
  • Power Supply
    • 5V/3A via USB-C connector or pin header
    • RK808-D PMIC and independent DC/DC enabling DVFS, software power-down, RTC wake-up, system sleep mode
  • Dimensions – 66 x 66 mm (8-layer PCB)
  • Temperature Range – -20°C to 70°C

The detailed information for NanoPi R4S

R4S OpenWrt official snapshots image
R4S OpenWrt latest compile firmware Fix reboot issues

Thanks contributed code to R4S


This would make an interesting little router.

What performance can we expect from something like this? Gbps NAT?

Any concerns native vs PCIe Gigabit Ethernet?

You'll have to wait for first practical experiences with this device, it's just not possible to estimate this in advance.

In general, assuming the SOC and its PCIe bridge is fast enough, 'any' PCIe card can do 1 GBit/s line speed (I'd be more concerned about the 'native' ethernet card of the SOC).

sad to see that they only make it with gigabit ethernet not 2.5gbps +

Adding support for the R4S to OpenWrt is going to be easy:

Thanks for the link. The 1GB RAM model is considerably more expensive than the R2S (US$45 vs US$22). I was guessing it would've been around the $40 mark.
I'm curious about how hot the R4S will run but it looks like another sleek metal case from Friendlyelec.
@mj82 I'll be up for testing in mid-Jan

Nice, i would like to see some SQM and openvpn benchmarks, if you dont mind doing them :slight_smile:

@xiaobo can you try this image in your R4S, I need to know if at least it boot .

Thanks @xiaobo , I have to wait 3 to 4 weeks for the R4S to arrives and do more tests, I added the NanoPi R4S to my sources, maybe you can make some progress .

1 Like

The kernel isn't actually hanged. Serial console output is changed, and hence there is no more output.

mmc bootscript needs some adjustments.


In line 3, here:

change: console=ttyS2,1500000 console=tty1 earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=${uuid} rw rootwait

to: console=ttyS2,1500000 earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=${uuid} rw rootwait

tty1 is the console at display output. Changing it to only ttyS2 should be fine.

1 Like

@xiaobo I updated the R4S dts adding the r8169 aliases for eth1, maybe is detected now.

@jayanta525 thanks for your suggestion, I added a boot script for the R4S

I don't think using r8169 driver on NanoPi R4S is a good idea, as you may know it performs really bad.

So I suggest using vendor driver from Realtek and it works well (at least for current):

The correct mainline driver for this hardware is indeed r8169, if that has problems with this specific hardware revision, those need to be fixed - the vendor module has no future in mainline nor OpenWrt. There is no systemic reason why the mainline r8169 module wouldn't work, I'm successfully using it with very good performance results on several different (r8168 based-) devices (x86_64).

See the following link:

However, it fails to boot on 1G RAM (DDR3 800 MHz) version, could you take a look?

Hey guys. I use a 4GB device and it works fine. The LED is not working properly.
Original DTS:

&leds {
	led@2 {
		gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
		label = "lan_led";

	led@3 {
		gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
		label = "wan_led";

&leds_gpio {
	rockchip,pins =
		<0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
		<1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>,
		<1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;

But......... patch error - -

How do you add support? I don’t know how to add it into Linux menuconfig so I can compile for it.

Download and apply the patch from my repo:

git am 2.patch
1 Like

I'm getting some error's. Are you positive that your patch works?

error: patch failed: package/boot/uboot-rockchip/Makefile:38
error: package/boot/uboot-rockchip/Makefile: patch does not apply
Patch failed at 0001 uboot-rockchip: add support for NanoPi R4S
hint: Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".