I have played around with the custom images today and I learned a few things that might be interesting to other people who want to switch from FriendlyWRT:
1. You can't install any kernel module packages
This is the biggest deal breaker for me.
I installed @anaelorlinski's R4S custom image and then I tried to install the package
kmod-sched-ctinfo for SQM with QoS... and I got an error like...
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-sched-ctinfo:
* kernel (= 5.10.x-XXXXXXXXXX) *
* opkg_install_cmd: Cannot install package kmod-sched-ctinfo.
It turns out OpenWRT prevents you from installing kernel modules that were compiled with a different config than the kernel.
You can read more about vermagic mismatches in this blog post.
It means that if you use a custom build for your R4S, you need to make sure it includes at build time all the kernel modules you may want to use in the future.
So that's probably only possible if you build the image yourself. And if you ever need to add another module, you will have to rebuild the image.
If you match the config of the official openwrt builds exactly, you may get a kernel that has a matching vermagic hash, but I don't know if that's going to be possible or if it would cause instability since we do want to actually patch the kernel in the custom builds (that's why we are running custom builds in the first place).
Perhaps, I will try to make that work. But not sure if it's worth the effort.
Expanding storage is unstable
I had a lot of trouble with expanding storage. Many times the R4S would not come online after expanding the storage.
Sometimes it worked and sometimes not.
And that's problematic, because...
You have to expand the storage every time you update/reflash the firmware
When you update the firmware in luci, it deletes everything, then restores only the files backed up by sysupgrade.
So you have to expand the storage again and risk breaking the system.
Then you have to find your SD card reader dongle, reflash the firmware, expand again, install the backup...
And having to do this each time you want to install a new kernel module makes it a huge hassle