I've been using OpenWRT on various WiFi routers for a while. When I update the router to a new version of OpenWRT, it wipes out all of my packages, so I just ssh to the router and paste in a little script I have to re-install the necessary packages. This works because the packages I need (ddns, 6in4, etc.) aren't required for basic IPv4 connectivity. Hence, my router works well enough to bootstrap itself back to fully operational.
Now, however, I would like to place my WiFi access points in a different location and use OpenWRT for a non-WiFi router. I got a Raspberry PI 4b and an ASUS USB-C2500 Ethernet dongle, and was hoping to use the built-in Ethernet port for the WAN and the faster 2.5GBaseT USB adapter for the LAN. (The Ethernet adapter seems to work under archlinuxarm.)
Unfortunately, the Ethernet dongle does not work out of the box on OpenWRT, because it requires installation of a separate driver package (presumably kmod-usb-net-cdc-ether or similar). I could install the driver now before deploying the Raspberry Pi as my router. The problem is that if I do so, it will no longer be simple to upgrade OpenWRT, as I will lose the ability to ssh into the box when the USB driver has been deleted after an upgrade.
Does anyone have suggestions on how best to handle this situation? I've considered using VLANs to connect the Raspberry Pi twice to the LAN, once on some management VLAN. Or I thought of making the raspberry pi a client on the WiFi network. But these are kind of gross solutions. Is there a cleaner way to update OpenWRT when it needs an Ethernet driver?