NanoPi R4S-RK3399 is a great new OpenWrt device

This is good to know as I just ordered an R4SE and expect it in hand tomorrow. When you say "vanilla OpenWRT" are you specifically referring to a vanilla snapshot build?

I used this image, though I imagine the snapshots should work as well:

Something is amiss, however, as I just noticed the iperf speeds are in the 300-500 Mbps range, not the 900+ Mbps advertised.

1 Like

Are you seeing CPU contention? Do you use irqbalance?

If you're running iperf on the device itself, that's the problem. iperf itself needs considerable juice for packet generation and in that case you aren't measuring routing performance, just processor performance. You need the router and two (different) endpoints to do a proper iperf test.

1 Like

I have the R5S which also has eMMC. I was able to install and boot OpenWrt from eMMC. I know it is a different device, but it may be likely the same with R4SE.

I also have an R4S running vanilla OpenWrt 22.03, and I do not have boot issues.

1 Like

The R4S reached 12 days of uptime, because I was away to make a reportage in Kosovo and during that time I was always connected with WireGuard (on the R4S) with 3 or 4 devices on a snapshot r20386, all the IoT things were working at my home, and all was perfect, no reboot, no lag, no high ram usage, no heat (I left all the a/c off for 10 days but it never went above 50 °C), nothing. Even with 4 devices connected to WireGuard I have never have a single issue. Only lots of push notifications for the load and SQM that were working, so I rised the alert threshold from away :slight_smile:

i'm very happy with it, I think I'll keep the kernel 5.10, since for me it works...


that's some nice dashboards. Are they from templates or custom?

I'm running an older anaelorlinski build but my uptime is solid.

Uptime:44d 1h 3m 37s
Local Time:2022-09-08 19:45:40
Kernel Version:5.10.108
Model:FriendlyElec NanoPi R4S
Architecture:ARMv8 Processor rev 4
Firmware Version:AO Build@2022.03.29

Hey folks, now that v22.03.0 has been released I want to configure my R4S 4GB from the scratch but I want to use an external SSD to store sensor/collectd/stats, logs, adblock lists and everything that usually shorten the MicroSD card's life. Can you help me on this? Is there any guide? I don't need detailed and extensive steps, just a quick list of adjustments will suffice. Thanks in advance!

There are probably multiple ways to approach this but here is one way that worked for me. This is mostly typed from memory so it might be off a bit.

Choose a supported filesystem for the storage. Options are limited if you also want it readable by Windows or a Mac. I chose vfat. I think f2fs would be good if it will only live on a linux system like OpenWrt. Other people often use ext4.
Install any needed kernel drivers and user space tools for the chosen filesystem. The usb-storage kernel driver may be a part of this.
Partition and format storage as needed either on OpenWrt or a computer.
Connect storage to router.
Use a program like block to get the UUID of the partition you want to mount.
mkdir a directory for the mount point like /mnt/usb-drive/.
Set permissions on that directory if needed.
Use Luci or uci to setup the mount and make sure hotplug mounts it on insertion. Use umount to unmount the usb drive before unplugging it to avoid corruption etc.
Make any subdirectories on the storage you want and set access permissions as needed.
Set collectd and/or any other app to point to the correct directory/path for the files it uses.

There are guides for storage and others for setting up data collection.

As an example here are some of my settings:
Output of block:
/dev/sda1: UUID="811E-1A0A" LABEL="RDATA" VERSION="FAT32" TYPE="vfat"

Output of lsblk:
├─sda1 vfat RDATA 811E-1A0A

uci config:


Luci / uci creates entries in /etc/config/fstab:

config global
	option anon_swap '0'
	option anon_mount '0'
	option auto_swap '1'
	option auto_mount '1'
	option delay_root '5'
	option check_fs '1'

config mount
	option enabled '1'
	option target '/mnt/usb-flsh-p1'
	option uuid '811E-1A0A'

In luci, you can set the output directory for collectd under the "Output Plugins"


1 Like

Thanks, it's Grafana with Prometheus exporter, I created a post blog with my setup: (don't forget to read the first post linked, there's the Grafana setup).

44 days of Uptime sounds cool but with old and stable release, I achieved it with a snapshot build, this is why I was surprised :slight_smile:


You don't need an SSD to store few kilobytes of logs and files :smiley: I'm doing the same for all the network data, collectd, etc... but on a USB3 drive, is more than sufficent.

Just use the OpenWrt USB drive tutorial, then check the auto mount of your drive, and configure the collectd, nlbwmon, etc... few clicks from LuCi

Just remember to change the default data period of nlbwmon that reset itself too often, I don't remember which parameter (you know, you make this change one time and then you forgot it, god save the backups)


Thank YOU! This will help me a lot. I have an idea on how to do that but with a quick how to it's much easier to remember the steps...


Yeah, an SSD isn't needed but I have an spare one with 120GB and I'm planning to experiment some heavier things later like docker. And SSDs have wear leveling so it probably will be more reliable than a microSD or USB thumb drive...

Generally speaking is absolutely correct but these logs are really few kb.. (probably 5-10 megabytes per years). these are absolutely not impacting on the wear of the X drive. If you have a spare SSD use it, otherwise any USB drive will be fine :smiley:

1 Like

are these ping spikes normal while pinging the r4s ?
Lately i have lags in games maybe thats the problem. Im using OpenWrt 22.03.0 with only qosify installed and my pc is the only device on the internet. I saw THIS POST but i dont know how to set the r4s into high performance mode (with ssh ?).


To set performance mode, go into LuCI, System menu, Startup menu entry, Local Startup tab, and add the following by copy/paste:

find /sys/devices/system/cpu/cpufreq/ -name scaling_governor | while read GOVERNOR; do
  echo performance > $GOVERNOR

Save and reboot.

If for any reason you want to go back to the default behavior, reverse the steps (just delete those three lines, save and reboot).


I'm trying to install openspeedtest via docker on the nanopi r4s, however it seems that there is an incompatibility with fw4 nftables, So is anyone using docker on this device with fw4?

A lot of packages are still not compatible with fw4, dockerd is one of them as you can see below:

Also in the comments of the "issue" above, there are some ppl talking about docker and about some ways to make it work with fw4.

1 Like

Answer: No
Once you update the squashfs firmware, you are back to 100MB space... that's a shame that the firmware, targeted for the 4GB ,doesn't use that space...

1 Like

I have, in the past, tried to follow this thread and reading that a nanopi r4s 4GB machine is a reasonably good choice for a router I bought 2 (1 for use and a backup).
Now I come to setting up the first one.
I followed

on that page was an 'installation method' (well sorta)

linked to

so I get to the 'squashfs-image' - - - that is under 'Expanding the filesystem'

and now I grind to a halt.
Ask questions

Nanopi R4S (4GB) install problems

where I get told that I'm supposed to have a running nanopi system and then do this and that

      • so my questions
        I have

Nanopi R4S (4GB) install problems

I have the oenwrt-rockchip-armv8-. . . installed on the sd card

How do I get this card so that I can slip it into the sd card slot on the box and then set up my system?

I have a router at already - - - is there an easy way to place this nanopi on something like so there is no conflict?

(I do hope someone out there can help - - - the instructions I have found I followed but I am in limbo and really don't know how to get to home base (a working router).)