$55 board turns a Raspberry Pi CM4 into a router
liliputing.com
liliputing.com
Many times there is less than 50% chance that you buy a supported revision unless you go with things like Turris Omnia or Raspberry Pi..
... but I do still think it's a good option compared to the WTF-that's-a-lot-for-a-router price of the CM4 one, especially with the current prices.
Which at that point, a true enterprise solution via ubiquiti or even cisco is affordable.
* $30 (not missing a zero)
* OpenWRT support
* 128MB RAM
* 3 gigabit ethernet ports
* 802.11ac Wi-Fi
Sure it's not going to compare to a full Raspberry Pi (tiny flash, no USB, no video, no expandability), but for plain routing it's fantastic value.(Mine was a used one, under $100.)
(I don't work for them, I just like their products)
Why aren't Ford making the Model T anymore? Why aren't Viewsonic making CRT monitors anymore? etc
They also do this the right way and upstream device support before they sell the device, so they don't have to support it. Upstream OpenWrt are already doing it.
IMHO most consumer routers need to be reset because they have memory leaks, that reduce the amount of memory available for the routing table. A power cycle becomes the common fix.
Meanwhile 4GB of RAM on PfSense can probably power an office of 50 engineers with 50% of its ram left available (and no swap)... and it will never need to be restarted.
Note: the specific router (TL-WR902AC) has a support page on OpenWRT, but apparently for newer versions it doesn't work.
If this continues, how will OpenWRT remain relevant?
The board mentioned above uses PCIe, as does the even smaller alternative “Raspberry Pi Compute Module 4 IoT Router Carrier Board Mini” from DFRobot [1].
Other boards use USB 3, like the “Dual Gigabit Ethernet NICs Carrier Board for Raspberry Pi Compute Module 4” from SeedStudio [2].
I wouldn’t recommend using USB.
[1]: https://www.dfrobot.com/product-2242.html
[2]: https://www.seeedstudio.com/Rapberry-Pi-CM4-Dual-GbE-Carrier...
I've heard this from networking wizards all the time during my internship but nobody actually explained whats wrong with usb to ethernet NICs
As the unfortunate owner of an intel NIC, USB ones where actually way more reliable.
Also, if you use a hypervisor and your router in a VM with USB pass through. The overhead on the CPU for USB pass through is significant. Better to PCI pass through the entire USB controller.
So, there are gotchas and pit falls but they are mostly manageable and avoidable with a bit of understanding.
I ran a pi4 + USB NIC as a router for years before switching to proxmox VM based router (still USB NICs). It was fine, the switch was rough until I figured out the issues.
With the RPi4 you have USB 3.0 on the main USB bus so the max bandwidth there is now 5 Gbps, but the next bottleneck to be faced is the PCIe x1 bus that is used to connect these CM4 modules to the third-party carrier boards. Now you are hitting a 4 Gbps limit.
Odd comment. Intel are one of the best NIC vendors out there.
What was your specific device and problem?
Hosting specific things (minecraft and smb in my case) has a chance of crashing it so hard only a power cycle fixes it.
It's hard to reproduce with smb but with MC I can reliably make it crash by spawning a couple hundred mobs in quick succession.
Sure this has HDMI output and more GPIO, but still.
[1]: https://www.friendlyelec.com/index.php?route=product/product...
[2]: https://www.stupid-projects.com/posts/benchmarking-the-nanop...
> Due to the shortage of the chip that has a unique built-in MAC address, we no longer list the R4S board with a unique MAC address for retail sales. If you want to order the R4S board with a unique MAC address, you have to place an order with a minimum order quantity of 100 pieces.
the f...?
The RaspberryPi advantage is its ubiquity. This means more eyes on any problem as well as being easy to reuse when no longer fit for purpose. (e.g. one of my Pis has been an adblocker, a kodi / plex box, and a few other things at various times). My ERX is and will forever be a router at the mercy of ubiquiti releasing new firmware fixes.
The Ubiquiti ER-X is supported by OpenWRT. Since you're planning to use OpenWRT in the future, why not run it on your ER-X?
Edit: or maybe not?
https://forum.openwrt.org/t/raspberry-pi-4-vs-edgerouter-x/1...
> The bad is that the ER-X CPU speed is decidedly mid-range. If you run SQM to tame bufferbloat, it will top out somewhere between 130-185 Mbps depending on OpenWrt version. It is good for ~20 Mbps running OpenVPN, and ~90 Mbps running a Wireguard VPN. So you are going to outgrow it sooner rather than later, if it is not already too slow for you. I've also noted it's getting pretty expensive to buy, which is strange. But I haven't found many alternatives as small as an ER-X with 5 ports included. So far, it does the job for me.
This seems like it might be still a little underpowered for some of my future plans (adblock, 1Gbps symmetric fiber for remote NAS access, etc.) I'll give it a whirl though.
The other question is whether the hardware can do that kind of throughput... I've run for years on an old crusty J1900 with 3 realtek NICs onboard, and while it can saturate a 1G connection with bulk traffic, it does struggle to route small packets.
[0] https://bit.ly/3zX5N1C -- AliExpress
I did all that and I'm quite happy with results. Maybe I'll do a blog post, when I finally start my blog.
For OS, I tried a couple different options including PFsense, VyOS, centos with Shorewall, and eventually settled on good old Debian with iptables rules.
What was nice about using an old laptop was that you get a built-in UPS that's good for at least an hour (with the screen off) so you almost never have downtime because of power outages (provided your modem still has power, and the node/dslam is still up).
https://pcengines.ch/apu4d4.htm
Bonus points for powering from whatever the display connector is.
(Portenta H7 is getting there coming from the Arduino end, but still woeful cpu capacity, and the one I got had display issues)
Or the ESP32 or larger STM32 microcontrollers.
Contrast with Arduino, where I plug it into my laptop and upload some code, thereafter I can plug it in/out/'turn it all about' with power and it reliably does 'stuff'
https://www.seeedstudio.com/blog/2021/03/14/introducing-the-...
Edit: my mistake. This is an older board by the same manufacturer.
At least not from scalping resellers?
>I'd like a small x86 based machine for the purpose,
Maybe check out the x86 rockpi, or odyssey from seeedstudio. Or something like this
And yep, I've only ever used dd-wrt, never openwrt directly, so not sure about that, but I've no desire to hand edit iptables rules or anything like that - I'll take a GUI any day.