Hello FreeBSD!

It’s been more than two weeks now that I switched from Linux to FreeBSD. There are multiple reasons behind this change and I will not dwell on all of them. If you read this blog (do you? :)), you probably know that I am a long time advocate of Debian. One particular thing that I like with Debian is that it doesn’t tie your hand with a large set of packages. It is an universal operating system that you can tailor to better suit your needs.

However, as time passes it became harder to modify anything. More and more I find myself patching programs that just want to do things on their own fancy way. More and more some random daemon just gets in my way because it supposedly covers all possible use cases. And recently I came under the impression that my system was just a bunch of layers of layers of various daemons doing their stuff somehow, somewhere, all of them trying to reinvent the wheel, with a twist.

Finally there is one important thing you should remember, Linux is not UNIX. Actually in the past few years, it started to diverge from this philosophy quite significantly. This article presents some differences between the UNIX and the Linux/FLOS model much better than I could do. And this is where we come to the root of my decision. While I can understand some of the benefits of the later approach, it dawns on me that as an user, I do not fit in FLOS and if I keep using Linux as a desktop, this life will be a hell of frustration and ranting without end. Note that this transition was long time foreseeable. I always spent a lot of time with BSDs. However these were casual and experimental setups and I didn’t do much more than porting stuff to it.

I could as well use this system on a daily basis. So I decided to take the leap and use FreeBSD on my laptop (ThinkPad X201). I first installed FreeBSD 10 (RELEASE), but it didn’t work as expected. In particular the Intel KMS driver did not work properly. Also xrandr did not work, and the performances were far lower than Linux. Needless to say, I was a bit downhearted. I expected so much from this first installation.

After an evening weighting the pros and cons, sadly contemplating the idea of returning to Linux, I decided to give it another try with FreeBSD 11 (CURRENT). Fortunately almost everything worked perfectly then. The Intel KMS driver works, although I don’t have access to the ttys (ttys and suspend now work on HEAD). Xrandr works perfectly which is imperative to give a presentation. The wireless card, sound card, fingerprint reader and ultra base also work with no apparent problem.

However I still have some problems with the function keys not detected on the external ThinkPad keyboard. Also xscreensaver does not always detect the finger print reader. Finally the secondary mouse and keyboard are not always properly detected by X. I guess this is probably a problem with HAL. But I did not look into it yet (ums_load="YES" in /boot/loader.conf).

I did several quick benchmarks to compare the performances with the Debian installation. I will post the results in a few days. I will also leverage the change to update some of my projects and also to clean my configurations a little bit. I already did so for Emacs and Awesome WM, though for now I’ve something else to do.

10 thoughts on “Hello FreeBSD!

  1. Did you load acpi_ibm.ko? And set “dev.acpi_ibm.0.events=1” in sysctl.conf? Then the function keys should work.

  2. I did so and then capture the keys with devd. Though the media keys (prev, next, play/pause, stop) are not visible and the keys are not relayed to Xorg but I don’t know if this is expected. I relay the commands to the X session when needed.

    Although this is for the ThinkPad laptop keyboard. I also have an external ThinkPad keyboard (with trackpoint and fn keys). On this keyboard the function keys are not detected at all.

  3. Does suspend & resume work, specifically resume? It’s a bit of a pattern with >FreeBSD 9.* that things suspend fine but never resume.

    I’ve got an X201 at home that is currently running Gentoo but I’d like more FreeBSD in my life – I’ve got a couple of servers at work running it.

  4. UPDATE: ttys and suspend/resume now work on HEAD (tested with r274088).

    Resume doesn’t work with Intel/KMS. On console it works but not with all modules (still have to check which one is causing the problem). So far I still have to halt the system when moving.

    Remember this is 11-CURRENT, I gave up with 10-RELEASE when I could not get the Intel/KMS driver to work properly.

    Also expect your laptop to boot much slower than Linux, although this shouldn’t be a problem once suspend/resume is fixed.

    Beside that it is fairly usable and a lot more fun 🙂

  5. yes, I’m agree with nosheep, I’m using Lenovo Thinkpad x201i and FreeBSD 10.2 and everything works fine now. My personal website is jcatala.net, and there I publish some posts about FreeBSD and this laptop 😉


Leave a Reply

Your email address will not be published. Required fields are marked *

forty eight + = fifty three