Checking out FreeBSD 13.2-RELEASE
Author: -fab- <fab@redterminal.org>
License: CC BY-SA 4.0
Published on: Mon, 24 Jul 2023 14:17:03 +0200
Last updated: Mon, 24 Jul 2023 14:17:03 +0200
As some of you might know, FreeBSD makes an excellent server OS; for example this gemlog is served by FreeBSD. However, in this post I'll describe FreeBSD as a desktop / laptop operating system from the viewpoint of a linux user.
FreeBSD vs. Linux
There are several differences compared to Linux. For example in the development process: unlike GNU/Linux, where the kernel, the userland tools and everything else is made by different projects, FreeBSD is a complete operating system. Everything (kernel, userland tools, some servers and documentation) is developed and maintained by the FreeBSD team.
While the Linux kernel and most of the userland tools are licensed under the "copyleft" GNU GPL, the FreeBSD system is licensed under the "permissive" BSD license. As a result Apple could base main parts of it's MacOS on FreeBSD and make it proprietary software. I leave it to the reader if this is a good thing or not.
Hardware support
I can't tell much about general hardware support, but on my Thinkpad T460s all things I need are supported out of the box (I didn't check the webcam). If you plan to run a desktop or laptop with FreeBSD you should carefully check the compatibility.
My Installation
I won't describe all the details here, how to create a usable environment; you should follow the documentation, but it's really not difficult. Also there are lots of YouTube videos showing how to install FreeBSD.
The installation is simple and straight forward. If you're unsure you can safely go with the defaults.
The most important choice during installation is the filesystem: UFS or ZFS. UFS has long been the default filesystem, but has recently changed to the more modern ZFS, which has some very interesting features. More on that later. So I chose ZFS on a single SSD.
When installing a mainstream Linux distribution you get a completely set up desktop environment most of the time. A fresh install of FreeBSD presents you with a (sometimes daunting) login prompt on the text console. But that has the advantage that you can set up your system to your wishes without any unneeded bloat.
At first I updated FreeBSD to the latest patch level. At the time of writing this was 13.2-RELEASE-p1 (patch level 1).
After that I built up my graphical environment only with binary packages. I didn't use the Ports tree (compile packages from sources) for simplicity. I explicitly installed 49 binary packages with pkg which gave me a system with a total of 617 packages with dependencies.
These are the packages I initially installed (explicit):
alacritty, amfora, ant-dracula-theme, awesome, bash,
bash-completion, curl, doas, drm-kmod, dunst, elinks,
exa, font-awesome, fzf, git, hack-font, htop,
ja-font-firge-nerd, lightdm, lightdm-gtk-greeter,
lxappearance, mpv, neofetch, neomutt, neovim, newsboat,
nitrogen, noto-emoji, pass-otp, picom, pinentry-gtk2,
pkg, polybar, powerline-fonts, py39-pynvim, py39-ranger,
py39-ueberzug, qutebrowser, ripgrep, rofi, rofi-emoji,
screen, syncthing, tmux, unclutter, xdotool, xf86-video-intel,
xorg, ytfzf
After setting up Xorg and AwesomeWM and pulling the other configs in with syncthing, I just had to configure a few things special to FreeBSD, mainly the widgets for the polybar status line, because the measurement of values like temperature, load, wifi strength and battery power is different on Linux.
Suspend on lid close / resume on lid open works after setting the right system configuration option. For persistence this should be set in the /etc/sysctl.conf file.
$ sysctl hw.acpi.lid_switch_state=S3
I'm lucky with my T460s for supporting this without problems. Can be difficult on other hardware.
Then I installed 'beadm' for distinct boot environments (BEs) on ZFS. With these it's easy to make snapshots of the environment before upgrading the system for example. These boot environments can be selected on the boot screen in case an upgrade (or something else) goes terribly wrong. This is one of the advantages of "root on ZFS" which I mentioned earlier. Although I had to limit the ZFS ARC cache to 4 GB. Otherwise ZFS tries to fill most of my 20GB RAM with it's cache.
Problems so far
I've been building up and tinkering my FreeBSD install for around a week now and there are only minor problems:
- I couldn't get "ueberzug" working for displaying images in the terminal (maybe outdated)
- ytfzf (YouTube from the terminal) works very unreliable (maybe outdated)
- FreeTube is not available (Electron app)
Conclusion
I had to change my opinion about FreeBSD not being a good experience as a desktop/laptop OS. If your hardware is supported it is a really reliable, stable and comfortable system - and it's not Linux! It's a lot of fun to tinker with it and configure it as I please. I will continue to use it for at least one month or two until I want to try another OS. But FreeBSD surely is a highlight.
FreeBSD is now definitely on my list of usable daily drivers and it's good to have some alternatives to Linux. If you want to try out something different and have fun learning new things, give FreeBSD on the desktop a try!
All in all - have fun!
-fab-
--
Back to index
Homepage