summaryrefslogtreecommitdiff
path: root/content/2023/freebsd-on-thinkpad-x1-extreme-g2.md
blob: 01c65350b340ed5b8858169a4336993e4b863052 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
---
title: "FreeBSD on a Thinkpad Extreme G2"
category: "software"
abstract: it works, but there are some drawbacks
date: 2023-02-25T06:06:18+01:00
year: 2023
draft: false
tags: 
- Freebsd
- thinkpad
- nvidia
- ax200
---

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*

### Installation

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](https://docs.freebsd.org/en/books/handbook/bsdinstall/) 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.

{{<img-center "freebsd-setup-fs.png" "Partitioning" "https://docs.freebsd.org/en/books/handbook/bsdinstall/">}}

Many things worked out of the box, but not all of them.

### Hardware

Setting X-Org was a breeze. Nvidia drivers are [available and ready to go](https://docs.freebsd.org/en/books/handbook/x11/#x-configuration-nvidia); no additional configuration is necessary.

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](https://freebsdfoundation.org/freebsd-project/resourcesold/audio-on-freebsd/) via device hints.

The integrated camera also works after running `webcamd -d ugen0.2 -i 0 -v 0`. Tested via `pwcview.`

My laptop uses AX200 wireless card, which is [not yet fully supported by the system](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244261). It is recognized and works 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](https://wiki.freebsd.org/WiFi/80211ac) at all. Funny enough, it [seems to be supported by OpenBD](https://man.openbsd.org/man4/iwx.4). 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](https://wiki.freebsd.org/WiFi/Iwlwifi)  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](https://www.gnu.org/licenses/gpl-3.0.html) and [BSD license](https://docs.freebsd.org/en/articles/license-guide/). 
{{<img-pull-right "freebsd-beastie.png" "FreeBSD Bestie">}}

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 base1000 ethernet connection, but on FreeBSD, only base100 worked.

Another problem is Suspend/Resume. I can easily [suspend](https://wiki.freebsd.org/SuspendResume) 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](https://www.thinkwiki.org/wiki/Problem_with_display_remaining_black_after_resume#Solution_for_ThinkPads_with_Intel_Extreme_Graphics_2) for Linux, but I have no idea how to apply them to BSD. 

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.

### Conclusion

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. Guess I just love junky things, like IRC and blogging :-). 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.