NanoPi R4S-RK3399 is a great new OpenWrt device

I just recently upgraded an Orange Pi R1 Plus by flashing a squashfs build in luci over an ext4 build with different root partition size while keeping config, and it actually worked for me in that case. While the ext4 build does not have an overlay, I believe it either tracks changed config files, or maybe it looks at file timestamps or compares them to default files when you flash a new build and backs up any that don't match the default. I wasn't very confident when I pressed the upgrade button, but to my surprise it did indeed work. Not saying it would work in all cases, just that it might work in some cases.

I know this is old but I think I ran into the same issue and found a solution for expanding the filesystem for /overlay on a squashfs image with that error! It cannot survive overwriting the sd card with a new image just like always but I share my findings in case it is useful.

I found that the filesystem on /dev/loop1 is ext4 instead of f2fs with the mount command.
root@R4S-wrt:~# mount

/dev/root on /rom type squashfs (ro,relatime)
...
/dev/loop0 on /overlay type ext4 (rw,noatime)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)

I did a hybrid process that worked!:

opkg update
opkg install losetup e2fsprogs resize2fs 
LOOP="$(losetup -n -O NAME | sort | sed -n -e "1p")"
ROOT="$(losetup -n -O BACK-FILE ${LOOP} | sed -e "s|^|/dev|")"
OFFS="$(losetup -n -O OFFSET ${LOOP})"
LOOP="$(losetup -f)"
losetup -o ${OFFS} ${LOOP} ${ROOT}
e2fsck -f ${LOOP}
mount ${LOOP} /mnt
umount ${LOOP}
resize2fs ${LOOP}
reboot

See my full write-up for more details:

1 Like

Try increasing the kernel size sed -i "s/CONFIG_TARGET_KERNEL_PARTSIZE=.*/CONFIG_TARGET_KERNEL_PARTSIZE=32/g" .config

1 Like

Hi,

Thanks @antoncycle for the tip!
This solved the issue!

Friendlyelec has started selling the NanoPi R6S, quite disappointed for the lack of m.2 nvme for storage like the R5S https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R6S

2 Likes

Maybe continue discussion in a separate thread to keep this one on topic: NanoPi R6S – A Rockchip RK3588S router

4 Likes

Seems like that PR got closed as the OP preferred the kernel compression fix. https://github.com/openwrt/openwrt/pull/11012

So there aren't any open PRs to fix the upgrade config loss. Am I reading that right?

That is what it looks like to me as well - perhaps a case of death by too many cooks in the kitchen?

I resolved the issue by switching to 22.03.2 stable, so I do not know if it has or has not been fixed in snapshot some other way.

Yeah, I don't see any commits in the snapshot that would lead me to believe it's fixed. 22.03.x works because it's still the 5.10 kernel, which is smaller than the 5.15 that gets built.

I opened an issue on it here since the PR was closed without resolution.

1 Like

Uh! Looks quite a big issue, I also switched to stable releases since some months because I was bored to test, upgrade, backup, etc... now I only upgrade when a new stable release is out.

By the way, after some try, I went able to get a daily pdf report with the stats generated from the R4S (and built in Grafana), here's what I'm receiving in my inbox every evening (or bi-daily every 12h)

But the R4S can retrieve much more data:

I'm writing a tutorial/how to, if someone is interested I will link it here. Because the stats in Grafana are cool/nice, but if you have to remember to check the dashboard every X time, you will not check it :smiley: and it will be pointless. Instead, if I receive it in my inbox, I can open the pdf and check the stats of every day compared to day before.

For me it's handful (I'm always surprised also of the low temperatures of the R4S)

5 Likes

First of all, thanks for your work on these releases, I've been using for a while now.

I'm having a issue with this release while trying to install several packages though...
The installed kernel is

root@OpenWrt:~# opkg list-installed kernel
kernel - 5.10.146-1-6e63b09ceb579eba27e23296ec42a0fd

But most packages require the following, so I'm unable to install them:

brave_2022-11-10_16-26-21

Was this a mistake on my side, or could you perhaps make one using this version?

Thank you.

To be honest I'm not sure. I checked out the 22.03.1 tag and didn't make any config changes to the kernel, so I assumed kmods from the repo would work. I wonder if the extra patches like OC changed the hash of the kernel. I would guess that if you can force the install, the kmods should work fine since it's essentially a stock kernel with a couple very small patches for OC and reboot fix. If that doesn't work, you can send me a list of packages you want and I can do a custom build.

Maybe it did change the hash.

I was looking to create a GRE tunnel, so I needed those packages (gre, luci-proto-gre) and their dependencies. I managed to force them now via ssh, but after a reboot the R4S enter a boot loop.

So I'm not even sure if it would work even if you made a built with them :thinking:

Do you have an external storage device for logs?

Yes a USB 3 pen drive but it’s not necessary, I use it only for backup, because I’m sending all the collected data to my Grafana server and indeed all the stats are saved also there.

Obviously if you don’t have the USB attached drive and you are saving the data to /tmp, you lose all the stats at every reboot (but only from the router luci interface of course)

I was thinking about corrupting the sd card with all the logs written there.

No, and by default the logs are written in RAM.

Is it possible to maintain the logs on an external device? I want to use a NanoPI R4S as main router but would like to have logs about incoming requests to the router.

Hmm what you mean for external device? Is what I’m doing, I’m using an external drive, you can use everything as long as it’s mounted somewhere on the R4S :slight_smile:

1 Like