Time flies when .. other people are doing the work? Something like that, anyway. This is an update to an earlier post, over 18 months old at this point, about FreeBSD on the Slimbook Base 14.

July 2020

It’s vaguely ironic that I’m writing this just as the new KDE Slimbook is announced, with 8-core AMD Ryzen 4000 onboard, which would presumably knock the socks off my older (even if it’s only eight months or so) laptop.

It should go without saying that I like this machine. It’s my daily-driver for on-the-go work (which, in the absence of travel due to COVID-19, means “when I work in the living room, rather than in my office in the attic”). Most of the time the machine runs openSUSE Tumbleweed with a recent KDE Plasma + applications on it, but personally I’d be happier with just one OS for the bits-I-need-to-work.

So while I was not paying attention (or rather, doing my usual mix of KDE, Calamares, and FreeBSD ports work) the FreeBSD kernel and drm-kmod-devel port advanced to the point that 10th generation Intel graphics does work. Huzzah!

March 2021

This is the current look of the machine. From not-traveling it’s suffered little in the way of wear-and-tear, but it also hasn’t got that thick layer of stickers that a laptop might otherwise accumulate. I still think it needs a pride sticker of some sort.

Sway with applications
Sway with applications

September 2021

The FreeBSD Foundation is the non-profit that supports the FreeBSD community. Among other things, it also sponsors development of some critical parts of the operating system. There is a technology roadmap, and on it, in the middle of 2021, there is an item for laptop users: WiFi.

For KDE readers, the FreeBSD Foundation is quite comparable to KDE e.V. in the kind of activities it supports, but different in the size of its budget and that it explicitly supports directed development.

The WiFi work is sponsored to update the iwl driver – modern Intel wireless. At a FreeBSD developer summit in Brussels a few years back a decision was made to be more pragmatic: if there’s working code from Linux that can be used, then shimming it into place in the FreeBSD world is generally OK. That’s just the realities of the relative size of the developer community kicking in.

So Intel Wireless has had plenty of work done in order to port, move and shim things into the FreeBSD kernel. Bjoern Zeeb published patches at the beginning of September that apply to the development version of FreeBSD’s kernel (14-CURRENT). I upgraded via source to that on my laptop, and now have working Plasma Wayland and Intel Wireless.

October 2021

With Bjoern’s work, and other 14-CURRENT work, let’s check out how the laptop as a whole works in FreeBSD today.

I used this laptop at the end of August, with KDE Plasma Wayland, but now I realise that I hadn’t done any graphics work since then – and since changing over to 14-CURRENT for WiFi-testing I hadn’t left the text-console.

FreeBSD pkg is pretty robust in these cases, though: it tells me a major OS upgrade has happened (yes, yes it has) and that it should be bootstrapped and upgraded.

WiFi

Kernel and world FreeBSD can build from source – that is particularly important when chasing -CURRENT. I built main-n249277-395db99f32b-dirty which can be read as “git revision 395d, with Bjoern’s patches”. That’s so three weeks ago, though.

WiFi The machine contains a Intel(R) Wireless-AC 9560 160MHz. Labeling on it has been weirdly inconsistent, with Linux lspci calling it various names over the past 14 months as well. With Bjoern’s work, loading the kernel module (kldload if_iwlwifi) now says:

Intel(R) Wireless WiFi driver for FreeBSD
iwlwifi0: <iwlwifi> mem 0x6025104000-0x6025107fff at device 20.3 on pci0
iwlwifi0: could not load firmware image 'iwlwifi-QuZ-a0-jf-b0-64.ucode'
iwlwifi0: File size way too small!
iwlwifi0: successfully loaded firmware image 'iwlwifi-QuZ-a0-jf-b0-63.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37
iwlwifi0: loaded firmware version 63.c04f3485.0 QuZ-a0-jf-b0-63.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wireless-AC 9560 160MHz, REV=0x354
iwlwifi0: Detected RF JF, rfid=0x105110
iwlwifi0: base HW address: 0c:00:00:00:00:00
wlan0: Ethernet address: 0c:00:00:00:00:00
iwlwifi0: lkpi_ic_getradiocaps: Adding chan 1/2412/0/0/0 returned error 55
iwlwifi0: lkpi_ic_getradiocaps: Adding chan 36/5180/0/0/0 returned error 55

I suppose that is reasonable. Then it’s time to start the rest of the WiFi stack, with /etc/rc.d/netif start wlan0. The details depend on configuration described in the wiki (above) and below, so this is not necessarily applicable to everyone. Once the interface starts, the fan on the laptop kicks in and stays on for a minute or two – I don’t really know what causes that.

For my laptop, now that the “experimenting” phase is past, I could add this all to my startup scripts and not worry about doing things by hand on each boot.

WiFi Configuration As far as I know, there is no convenient way to manage wifi on FreeBSD. No NetworkManager, and hence no convenient way to manage connections. Instead, edit /etc/wpa_supplicant.conf by hand and add the networks that are relevant:

network={
        ssid="FBSDwifiForMe"
        psk="GroffTheBSDGoat"
}

So here’s a clear “future work” opportunity to make WPA more accessible from the desktop for FreeBSD users.

To figure out which networks are in range – e.g. at a coffee shop – ifconfig wlan0 scan spits out a ton of information. Turns out there are 64(!) access points visible from where I sit at home.

WiFi Speed Doing a 2GiB upgrade of packages was slow. Larger files downloaded at around 1MB/s, which is not-good-at-all. I’ll need to throw some network profiling at it – I may have been fetching from a bad mirror, or it might be the WiFi.

December 2021

I didn’t use the laptop with FreeBSD much this month, it’s mostly my video-call box with meet.kde.org – something I still have not set up correctly with my FreeBSD workstation.

WiFi tops out inside the house at 2.2MB/s, it is reported as a 36Mbit 802.11a connection in system tools, so that is .. not great, but a far cry from what it could be.

KDE Plasma Wayland, which was working in September, is now broken. It’s not just my laptop, it’s on my workstation (AMDGPU), on the spare machine (Intel iGPU) and the laptop (Intel iGPU). I have chatted a bit with Plasma developers, but the debugging is on me, unfortunately.

Takeaway

I won’t say anything about FreeBSD on laptops in general, but on this laptop it manages “acceptable”, but no more than that. For now, it will keep running openSUSE, just like the kids laptops around here.