Running a FreeBSD desktop.

Run a FreeBSD or NetBSD desktop.

Rubenerd’s article encouraging people to try FreeBSD or NetBSD.

Challenge accepted. I’ve been interested in *BSDs for about a year now. I’d learnt about them from a family member as a child, but stumbling upon Michael W. Lucas’ excellent talk about FreeBSD jails piqued my interest. Rubenerd’s recent article lead me to pulling my fedora nvme out of my laptop (a Thinkpad T470), putting another drive in, and installing FreeBSD…

I’ve actually installed and used OpenBSD on a spare desktop, this was an extremely simple install and worked without issue. I also have a VPS running OpenBSD. A laptop however is different, with WiFI, disk encryption etc. I am actually going to do real work on this thing

Starting out

Installing FreeBSD is quite easy. If you’ve ever recovered Windows or MacOS, you’ll probably be okay. If you’d installed any sort of linux you will definately be okay. There are indeed some distros that will remain nameless that I’d argue are harder to install than FreeBSD (or OpenBSD for that matter).

I’d encourage anyone interested to run through the process quickly in a VM.

I installed FreeBSD on a 256gb NVME: ZFS, encrypted disk and (8g) of encrypted swap. I don’t think there is much of a need for more complicated partitioning. I used the minimal iso as I’d just be updating the packages anyway. Here I hit my first snag. There was an issue configuring the wifi; not entirely sure why (intel wifi apparently is supported out of the box), but i’d already planned to plyg my laptop into ethernet for the install process.

The installer is quick, I’d chosen not to install debug or lib32, but did select the ports and src packages. I’m going to aim to build my own kernel at some point, if we’re going to attempt this challenge, we should it properly.

Having planned my path forward in a VM, I installed sudo, vim, xorg, icewm, and firefox.

Here is where I hit my first snag. Despite the intel wifi card being supported, and indeed loaded correctly; I couldn’t get wifi to work. I bounced around the handbook for a bit getting quite frustrated before purging the wpa_supplicant.conf and starting from scratch. This didn’t take long, but was annoying and a process i’d rather not repeat.

The next snag was harder. I couldn’t get X to work. I hadn’t had this issue at all in the VM so I was genuinely quite confused. Xorg log suggested a driver issue, so a bit more time with the handbook and duckduckgo lead me to installing the drm-kmod package. This was a bit of an annoyance; I’d assumed that Intel Graphics would have been included by default, and I’d already searched for an intel module using pkg search(1)

Lessons learnt

  • if you follow the handbook and pull the latest ports tree, you might notice that ports are one, two or even three versions ahead of what you install with pkg. By default pkg uses the quarterly release which “provides users with a more predictable and stable experience for port and package installation and upgrades (FreeBSD Handbook, 4.2.2)” If you are like me and wanting to use, say KDE, this explains why the version numbers in pkg, ports and online all seem to be different.

  • Audio is great, its not like audio used to be when I first starting using linux in high school. Clear, crisp and responsive.

  • What does remind me of using linux in high school however is the WIFI situation. Yes the wifi chip is supported, but it needs to be manually loaded, and then it requires a bit of work to configure. No NetworkManager goodness (yet!).

Desktop specifics

  • laptop battery is worse, its not super noticable on my thinkpad t470 with 2nd battery, but its something I’d probably plan around if I was to have a long day at the office.

  • kld_load is good, but for a laptop, acpi_video is something that you might have expected to be automatic, but isn’t.