I'm in the process of learning OpenWrt in some detail prior to buying a GL-iNet Beryl 7 and putting the real OpenWrt on it. My testing has been with an old AR750S Slate but it has limited memory and it's very slow when you have to mess with Web configuration via Luci.
So I had the idea of using one of my Raspberry Pi 4 boards to learn OpenWrt. I think this will remove the frustration of speed and memory because the smallest microSD card I have is 32GB and the PI 4 has 4GB of RAM. The clock speed is 1.5Ghz but can be overclocked to 2.0 easily enough.
Is there a list of USB LAN and WiFi adapters that would work with the PI 4? I've already found some stuff about expanding the root filesystem from 100MB to the full size of the microSD.
I can see this will make the learning easier due to the speed of finding out problems and solutions. The first time I booted the old Slate with OpenWRT it had a lot of interfaces and I was a little lost. The Pi came up with one WiFi and one LAN and I've been learning how to configure things from scratch.
There are options for this, but I would highly recommend that you simply invest that money in a proper recent travel router. The Pi makes a fine wired router, but it is a very poor choice for wireless, even with USB wifi dongles. There are multiple complications that you will experience trying to use USB wifi and/or Ethernet dongles which just aren't worth the extra trouble.
I appreciate your suggestions. I think what this exercise with the RPI 4 has done is show how complicated the architecture of OpenWrt is. Much simpler to see on a factory image on a RPI 4.
The use of the Interface layer has real advantages but the confusion I faced looking at the interfaces on my AR750S is leading me for a way to better understand it. I guess I'm just looking for the Dummy's Guide to OpenWrt
I partially agree, but I personally view it a bit differently...
OpenWrt is a sophisticated and extremely flexible/extensible platform that it optimized for embedded devices. That flexibility means that there can be a learning curve since there are a lot of features and capabilities exposed (or available) that are not typically seen on most consumer products -- some of the those things can cause problems if not properly configured.
In the case of running OpenWrt on a Pi with USB dongles, you need to determine which driver packages are required and install them before your dongles will even function. This is before you even start worrying about some of the physical issues you might encounter such as USB power budget issues and the like.
On the other hand, when using OpenWrt on one of the 'typical 'targets such as a consumer grade all-in-one router, things can be quite easy in that the firmware image includes all the necessary drivers and default configs so you can get going quickly.
I'm not sure what you mean by this, but the Pi has a number of limitations and quirks that may make it harder to use as a 'beginner' or 'demo' type setup (as compared to an all-in-one device).
There is lots of documentation, and we're here to help.
16 MB flash (with additional space via 128 MB NAND and µsdhc)
128 MB RAM
ath9k+ath10k dual-concurrent/ dual-band wifi
Yes, this is not going to be a runner.
Yes, it probably won't meet performance expectations in a modern environment.
But it meets all requirements to test effectively every aspect of OpenWrt (apart from heavy RAM usage, big adblocking lists, etc.).
As psherman already said, the RPi is a quite special environment for running OpenWrt. It works, it's well supported, it's fast and has lots of RAM. It lacks a second ethernet interface ('complex' VLAN setup + managed switch or addon USB ethernet card needed, for which you have to include the drivers yourself) and it's a total failure in terms of wireless (the onboard wireless is old, slow and very limited in features, USB WLAN cards won't really improve the situation).
Prices for the RPi are no longer favourable (might not be an issue if you already own it, but still something to keep in the back of your mind).
So what do you want to test specifically?
Wireless stuff? The AR750s will still wipe the floor with the RPi.
Random wired-only stuff? The AR750S will do, x86_64 or virtualization on x86_64 might fit the bill, yes the RPi4 can do as well - but so could any old x86_64 system with a 2-3 buck PCIe ethernet card (depending on the device not power efficient, might not matter for short term testing.
It seems clear that the AR750S is a good test bed for OpenWrt to learn the basic features and how to config them. While the Factory UI was easy, that firmware is years old. Switching to OpenWrt on the Slate was the only way to go. When I buy a Beryl 7, it will have officially support firmware and I'd feel safe in using it, but if I learn OpenWrt with Luci I'll have more capability if I can lean how to use it. Then I can switch the Beryl 7 to Openwrt.
One of the areas I'd like to understand is using the WAN Ethernet port as an additional LAN port. That's a checkbox in the GL.iNet UI, but I can't figure out to make that happen under Luci.
You'll see a port assigned as the device in the wan/wan6 interfaces. If you remove line from the wan interfaces, you can add it to br-lan (the bridge that is associated with the lan interface). It takes about 10 seconds.
The bigger question would be if that is sensible (wan part of the same switch as lan) or not, it always possible, it always works - but in some cases the resulting performance is bad.
…but that's something you can't (reasonably) emulate on a RPi (always software bridging, so no a realistic approximation of the typical plastic router) and depends on the internal PCB design (and SOC) of the device in question (and there are further interesting side effects of multi-port uplinks).
This is not entirely my angle/point, but the takeaway is still similar. I'll elaborate a bit because it's useful for future readers.
A Pi can actually be a great platform for learning OpenWrt, if you already have one available and if you have either a USB-ethernet dongle or a managed switch. It's actually pretty great in that it is unbrickable (just pull the card and re-image it), you're unlikely to run out of storage space given the size of most cards, it's got lots of ram, and even USB and HDMI so you can work on the local console.
The points I was trying to make...
For an OpenWrt novice, using a Pi can actually be harder than using a traditional AiO wifi router. It's not insurmountable, but it adds a layer of complexity.
Onboard wifi is nearly useless, and USB wifi dongles present a number of challenges (i.e. what drivers do they need? do they support AP mode? how good is the performance for range, throughput, multi-client connectivity? and importantly how much power do they draw?)
With ethernt dongles, drivers and power draw are the biggest concerns.
The Pi has limited power to deliver to the USB ports, even with a beefy main supply (and if you're using a lesser main supply, you'll absolutely run into issues).
This means that just a wifi USB dongle alone can exceed the available power and cause brownouts and other glitches. Using 2 dongles (for example, one each: wifi and ethernet) will likely present problems. These can be mitigated with an external powered USB hub, but now the system is getting pretty unwieldy.
Power issues are often not (properly) identified by novices who see system instability and get frustrated/confused. And to be fair, it's not immediately obvious. "Experience is something you don't get until just after you need it."
The Pi is a terrible travel router for many of the above reasons, but also for form-factor reasons (a purpose built travel router will be more physically robust and easier to use).
Unless the Pi is actually your intended target, It is not worth buying a Pi and/or the USB dongles when you can spend that money on a real router.
For most ('all' of them) limited to 4-8 (or similar) connected clients max., due to limited on-device ressources (RAM inside the USB dongle). Neither will you notice overheating and general stability during a quick bench test, but you will in production. So while everything might look great during a quick test, it completely falls over in production with your 1-3 dozen of devices seeking connectivity. USB WLAN is never a solution, and the integrated brcmfmac WLAN is even worse.
Otherwise there are timing issues (cached packets) and latency (USB controller waiting for bus time) competition.
Inbound the integrated does most of the sorting and talks to CPU, USB adds to chaotic incoming traffic and has to send it along the USB bus to the PCI bus FIFO, but if it is sent to the USB controller for LAN, it is organized; so the dongle has less work.