Corey Stephan, Ph.D.

*BSD, Free & Open Source Software

Raspberry Pi 4 with FreeBSD 13-RELEASE: A Perfect Miniature Homelab

Corey Stephan

A lovely gift that I received for Christmas (2020) was one of CanaKit’s Raspberry Pi 4 kits that comes with an aluminum case that functions as a heatsink, allowing the Pi’s ARM processor to be passively cooled even during high load. At the same time as I began exploring the Pi, I was learning everything that I could about the FreeBSD operating system.

When I first installed FreeBSD on the Pi, I had to use a special bootloader atop 13-CURRENT. The installation was not complicated, but it was far from smooth. I learned what I needed from the #freebsd-arm mailing list, and I sent a message to #freebsd-questions with a summary of my findings.

In the weeks leading to 13-RELEASE, the #freebsd-arm mailing list was ablaze with a heroic collective effort to ensure that a flawless image for the Pi 4 was available on the actual release date. I am here to say that it was a success.

With FreeBSD 13-RELEASE, almost everything works on the Raspberry Pi 4 out-of-the-box. The Pi either can be used with a monitor, keyboard, and mouse via the HDMI and USB ports or accessed remotely via the RJ-45 (Ethernet) jack and OpenSSHโ€”all of which is configured by default. Since 64-bit ARMv8 is now (as of 13-RELEASE, in fact) a Tier 1 platform for the FreeBSD project, a large percentage of packages in the official repository are available for easy installation on the Pi 4 (‘pkg install _’).

I have used the Pi 4 with FreeBSD 13-RELEASE for a range of tasks. Most commonly, I use it for Mumble voice communication (as a Murmur server) and for 24/7 continuous access to my favorite IRC channels on Libera.chat (including #freebsd, #freebsd-desktop, and #freebsd-wiki) by way of a Weechat session in tmux.

If you, too, might like to use FreeBSD 13-RELEASE on the Raspberry Pi 4 as a perfect miniature homelab, start by reading the Raspberry Pi page in the FreeBSD Wiki. Then, download the official Raspberry Pi 3/4 image and burn it to an SD card. Do not forget to change the passwords for the root and ‘freebsd’ accounts (which are listed in the Wiki entry). Enjoy the elegant simplicity.

Deus vos benedicat,
Corey Stephan

Comments

  1. Hi Corey,

    This is a great post regarding the Raspberry Pi4 and FreeBSD. I found it while looking for a GUI-based FreeBSD to use on the Pi4. Ideally, I want to configure my Pi4 as a travel router using FreeBSD and Wireguard VPN while still having the ability to use the Desktop OS ๐Ÿ™‚
    What I hate is the convoluted configuration involved in getting a FreeBSD Desktop working. I have used FreeBSD since 1997 and still use it for servers (no GUI required).
    Have you ever considered using your Pi as a Desktop machine? Imagine using Pi400 with FreeBSD Desktop OS!

    1. The Pi’s CPU is not powerful enough to handle the sort of multitasking that I have to do for my work. For someone who tends to do only one simple task at a time on his/her machine (e.g. basic Web browsing), however, the Pi 4 or Pi 400 (with 4GB or 8GB of RAM) might well be a compelling choice. A stand-alone window manager or lightweight desktop environment would be in order, of course.

      Regardless, have fun, and thank you for commenting.

  2. Going through some of your posts here, and it was a delight to find this piece on the Raspberry Pi 4 running FreeBSD. That’s very cool.

    Indeed, I tried both OpenBSD and Kubuntu, both with the GUI, on an Pi 4 equipped with 8GB DRAM and a USB-connected SATA SSD (Crucial MX500). The Pi 4, either with OpenBSD or Kubuntu, works well for stuff like simple Web browsing, as you mentioned in this article. It can even run LibreOffice, a little sluggishly, sure, but well enough for basic documents and spreadsheets. However, the wife wanted a small computer with which to watch Amazon movies while in the kitchen, and sadly, Amazon uses Digital Restrictions Management (DRM). Therefore, there’s a binary blob for decryption that needs to be installed in the Web browser to make that work. This blob is available for GNU/Linux, so I put Kubuntu 22.04 on there for her. She could watch these movies and TV shows at 1920x1080x60Hz (“1080p”), but the Pi 4 needs to be overclocked to 2 GHz, and the built-in video chip to at least 700 MHz, for frames not to be dropped. Initially it worked OK, but over time, it proved a bit too much, even with an Argon One V2 case and built-in fan keeping things as cool as possible. So, that Pi 4 became an OpenBSD firewall running pf and spamd, at which it excels.

    A better choice for multitasking in a small, reasonably power-efficient, package is the ODroid H3 series. She’s using an H3 (not the Plus version, but the straight H3) as that video watching station, using Kubuntu, and it does very well in this role. I’m continuing to put an ODroid H3+ (Plus, that is) through its paces with OpenBSD, as I mentioned in one of your later posts. So far, it’s doing pretty darn well, with Firefox, any LibreOffice application, and so on.

    The Pi 4 is better suited as a home server of some sort, I think, regardless of the OS running on it. The fact that FreeBSD and OpenBSD (and, according to the NetBSD project, that OS as well) run on it means we can have a nice, solid, pf-based firewall using the BSD of our choice, if we wish. That’s good news for us all. Currently, I’m running two Pi 4-based OpenBSD firewalls in a fail-over (pfsync) configuration on my home production network.

Leave a Reply