Installing FreeBSD on a T480



Last Updated:

bsd thinkpad

freebsd

My adventures installing FreeBSD on a ThinkPad, spurred out of frustration with Linux Mint.

Linux Mint Woes

My bad luck with Linux Mint persists. The past couple weeks I have been trying out Linux Mint Debian Edition, which if you don’t know is like normal Linux Mint but based on Debian instead of Ubuntu. I actually prefer it to the Ubuntu version, just because I am much more familiar with Debian than Ubuntu.

To migrate over to LDME, first I installed it on a different drive and then used rsync to copy over all my stuff from my old drive. After booting I ran into this weird login loop glitch. Every time I tried to log in through the display manager, I would get sent right back to the same login screen. After doing some research online some people said this was due to a corrupt .Xauthority file, but deleting that did not help my situation. I ended up just reinstalling LDME again and then using rsync but this time without includes dot files. I hoped this would avoid an issues caused by corrupt configs.

And it worked! I had all my old stuff in my new LDME system (minus dot files).

Well it worked for a while. It’s been a week or two since I’ve been using this machine with Linux Mint, but today when I booted up my T480 I was greeted with the login loop glitch again! Cause by seemingly nothing this time!

Well screw this I thought, I don’t feel like trying to debug this again, so I’m just going to throw out the whole OS and try something brand new on this ThinkPad for learning and fun.

Enter FreeBSD.

Why BSD?

Just to be clear before I go any further, I am not recommending FreeBSD as a good desktop alternative to Linux Mint. As will be seen in the following series of posts, setting up FreeBSD on a laptop is not for the faint of heart. I’m just using this an opportunity to learn something new.

BSD stands for the Berkeley Software Distribution, and it is a family of open-source Unix-like operating systems like Linux. You can read more about it here from the folks at FreeBSD.

I’ve been interested in trying a BSD operating system for a while now. Many BSD enthusiasts and bloggers rave about how much better it is than Linux. I don’t have any problems with Linux right now (other than my previously noted Linux Mint woes, but on my other computers I mostly just use Debian) and am not trying to fully switch, I am just very curious about Unix systems in general and have been really itching to try a BSD system.

FreeBSD vs OpenBSD

I debated for a while whether to try FreeBSD or OpenBSD for a while now. I decided to go with FreeBSD first but in the future I am sure I will also try OpenBSD. I ultimately decided FreeBSD because it has more features like Linux compat and ZFS, and is suppose to be much more performant than OpenBSD. But supposedly OpenBSD has really good hardware support because the OpenBSD developers tend to eat their own dog food and run it as the main OS on their development machines. “Really good” of course being relative to using BSD on a laptop.

Some Differences from Linux

Three differences I thought might be worth pointing out.

Licensing

Linux and much of its software is licensed under the GPL, and requires that any derivative work must also be GPL and therefore have its code open-sourced and allow for modification and distribution.

The BSD projects including FreeBSD are licensed under the BSD Licenses, which is much more permissive and has almost no restrictions use and distribution of the software. This means you can modify it and include it in your proprietary product without being required to share the source code. As freebsd.org puts it, they aim to provide software “without strings attached”.

Derivative vs Clone

Another difference is that while Linux is a clone of AT&T’s Unix, BSD is an actual descendent of Unix.

Distributions vs Full OSes

There is one last big different I wanted to point out: Linux technically is not a full operating system in itself and is instead just the kernel, then we have distros (Ubuntu, Debian, Arch, etc) which are built on of this and complete the full operating system. This is not how it works in the BSD family. FreeBSD, OpenBSD, NetBSD, and the rest all have their own kernels and user lands. FreeBSD is not a distribution of BSD, it is it’s own complete operating system, and the same applies to the other BSDs.

Getting Started

I am following the FreeBSD Handbook.

installer

Before installing, I disabled Secure Boot and TPM in the BIOS. TPM needs to disabled for suspend to work.

I use Ventoy to keep all my bootable ISOs, so I downloaded the DVD iso from the FreeBSD releases, verified the image, and booted into my usb on the T480.

panic

On first attempt I immediately got a kernel panic after selecting the option to boot into the installer. Tried the USB on a different computer and got the same problem.

Turns out my Ventoy just wasn’t up to date! Recently they added support for FreeBSD 14.0. Read here. After updating I was able to boot into the installer. So make sure your Ventoy is up to date if you are also using Ventoy!

getty

Actually, I spoke to soon. Now I get a new error.

At this point I gave up on Ventoy just dd’d the FreeBSD ISO directly onto another flash drive I had. Then guess what: same error!

success

Finally, I tried used the memstick.img from the same FreeBSD download page instead of the DVD, and dd’d this onto my USB, and finally I was able to boot into the installer!

zfs

I chose ZFS for my file system and setup encryption, decided to attempt setting up wi-fi later and for now just plugged an ethernet cable.

hardening
I enabled all the system hardening options since they all seemed like good ideas.

config

I also enabled powerd on system startup since I am on a laptop and expect the battery life to be kinda bad.

I also thought it was neat you add the option to create multiple users at installation. I just created the one user for myself though since this is just my computer.

complete

Finally managed to get into a BSD system!

So there’s three shells to pick from: sh which I am sure everyone has heard of, then csh and tcsh which I have never heard of. For my default shell I just picked sh since that is the one I am familiar with.

One odd thing I noticed is the fan on my computer seems to be continually on? Rebooting the machine fixed it though.

My next mission will be setting up KDE and then wi-fi. I’ll leave that for another day though.