FreeBSD on a Thinkpad Extreme G2
My wife got a new computer, so I can easily break my laptop whenever I want - so it’s time for FreeBSD!
All this applies to FreeBSD 13.1 at the time of publishing. I’ll add links to any additions and errata in the future
The installation process is great. It’s more involved than something like Fedora, and some concepts were foreign to me. Handbook’s chapter on installation guided me through every step, so there were no problems. Within 15 mins of booting from the USB Drive, I had a working hardened system running on an encrypted ZFS drive with wireless networking and essential services configured.
Many things worked out of the box, but not all of them.
Setting X-Org was a breeze. Nvidia drivers are available and ready to go; no additional configuration is necessary. (update: I was wrong, but it is fixed now)
Sound, of all things, work out of the box. Unfortunately, it doesn’t auto-switch to headphone output, but there is a known way to do this via device hints.
The integrated camera also works after running
webcamd -d ugen0.2 -i 0 -v 0. Tested via
My laptop uses AX200 wireless card, which is not yet fully supported by the system. It is recognized and works, but only up to WiFi 3 (g). I’d be ok with WiFi 4(n), but the driver is not ready, and WiFi 5 (AC) is not supported by the OS at all. Funny enough, it seems to be supported by OpenBD. I have yet to learn how different BSDs intertwine and different. FreeBSD is supposed to be more user-friendly, but it seems not to be the case here. Work on fully supporting the card is already planned, but I have no idea when I can expect results. From what I’ve learned, the team can’t reuse code from Linux due to licensing incompatibilities between GPL and BSD license. (update: there are more problems)
This is one of the few instances when I am rethinking my life choices, and I would love to be able to help with C code. Also, Bluetooth on this card is not supported, and there is no work done to address it - but luckily, I am already de-wirelessing my life.
USB devices are detected automatically and mostly work. However, my monitor (Dell P2723QE) has an integrated 1000Base-T ethernet connection, but on FreeBSD, only 100Base-T worked.
Another problem is Suspend/Resume. I can easily suspend the device, but after resuming it, the screen is still black. This seems to be a known problem across different OSes for this laptop and has some known warkarounds for Linux, but I have no idea how to apply them to BSD. (update: there is a fix working)
The biggest problem here is battery drain. I have
power enabled, but
acpinfo reports about over 1% per minute. I was getting about the same drain on Arch Linux, but Manajaro acted much better.
I have not tested the fingerprint reader as I’ve never used it.
My ThinkPad is far from being a brick under FreeBSD. It is, however, severely hindered. I plan to fix the memory drain and allow for a resume after suspension. This will make it a proper laptop again, as there are always USB dongles when faster WiFi is needed. Dongle town, however, is not what I want in the long term, and I’ll need to follow the progress of the driver implementation closely.
It seems that for a desktop computer everything would work.
I’m falling in love with the system and its simplicity and logic. So even if I fail at fixing the above, I’ll try to stick with it. And even if I get fed up with the state of hardware support, I’ll keep FreeBSD as a secondary system.
For personal servers, however, I see no way of abandoning BSD.
- 2023-02-27: Fixing resume due to graphic drivers
- 2023-02-04: Configuring NVIDIA
- 2023-03-15: Problems with WiFi after resume