FreeBSD on new Thinkpads (T480)

Recently I decided to run exclusively FreeBSD 11.2 (RC3) on my new Thinkpad T480. I'm using drm-kmod-next, overall the system runs quite well. But one really annoying problem is that none of the FN-brightness up/down, wireless, etc.. was working. Even using the acpi_ibm driver. It took me a whole week-end, but at the end I found that the acpi_ibm driver does not support new Thinkpad Models. I've worked out a patch to enable support for newer models, the patch is submitted here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229120. It works perfectly fine for my T480, my I'm pretty sure it will work also for other models.

I hope the patch will be useful for somebody here, if you have a new Thinkpad model you can try it out, but the above patch applies on top of another one that has been already pushed to 12-CURRENT, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229074. This one adds *dev.acpi_ibm.0.mic_led* sysctl to turn on/off the led light over mic mute (F4) button, found on some models (like my x230 and T480).
 
Depending on your configuration (If you have a Samsung SM961 nvme ssd), you might end up having this #bug 211713 on FreeBSD when you wakeup the laptop from suspend, it works, but you have to wait for 10-20 seconds until it is usable again. If you have a SATA configuration (which is very fast anyway for desktop and daily use) suspend should work just fine. Wireless works great, sound is very nice, I'm using even a docking station to work with two external monitors on FreeBSD, you might have a look at the following link https://wiki.freebsd.org/Laptops/Thinkpad_T480.
 
I've got the PCIe SSD, which goes through the SATA interface if I'm not mistaken. Would have liked the NVMe version, but that was only offered on the 1TB SSD. Given the bug you've referenced, the PCIe version isn't such a bad option after all.

Any chance you could update the wiki page with a reference to that bug? Will update that page myself with whatever issues and successes come across once I've got my T480.

That's one thing I've found frustratingly hard with regards to FreeBSD and laptops. Accurate information on what works on what model laptop.
 
I actually agree with this. A lot of FOSS operating systems overlook a hardware list. They either do not have one or it becomes quite out of date.

It is difficult though. A lot of hardware models with the same name have different (often incompatible) chipsets. It is almost as if hardware companies don't want us running open operating systems...

What I tend to do is have a long read through the mailing lists and get a "feel" for what model hardware everyone else is using.
 
That patch was merged a couple years ago so you should not need to, assuming you are on 13+. You’d have to dig through commit logs to see if it’s on your version of it’s something earlier.

Here’s a thread about applying source patches.
So this is the situation - earlier laptop was another model when Freebsd was installed. Presumably this patch _may_ not have been applied because if it would then buttons would work on the newer laptop, right?

So I guess what I am trying to ask is if it's still not working on a system ( os was installed on another machine) - how does one go about fixing it?
 
I’m not quite following, but, newer machines often have problems. As for how you find and fix it - that I don’t know. I think that’s a question for freebsd-hackers@ mailing list.
 
OS development is beyond my current abilities, so again freebs-hackers@ is prob going to be the place. But, looking at the commit it appears it needed an addition to the ibm_ids list. Maybe your machine has a different ID. So, I’d start by looking at the current version of that file and see if your machine’s ID is in that list. That first clue is about all I’m good for on this… and I’m not even sure it’ll be helpful - but maybe :)
 
Last edited:
I’m not quite following
Thanks for the reply - let me explain : The current hard drive was in another laptop when it was installed (that laptop had no functionality of Fn keys) - now I've shifted the hard drive to another laptop - and the buttons don't work as they're supposed to on the current machine. Are they supposed to work out of the box? Or such things only work when the system is installed on a particular machine?

As for the model - its a fairly well used model - I was actually expecting it to work without having to do anything - but turns out that's not the case.
 
Short answer: I don’t know.

What model do you have? What’s the configuration? Have you loaded the acpi_ibm(4) driver? Note that it says “Depending on the ThinkPad model, event codes may vary,” so you may need to configure something to respond to the correct codes.

Longer answer: my opinion, based on experience and lots of research, is that almost no things laptop work out of the box. If they do, it’s because someone got that laptop, it didn’t work, they figured out how to make it work, committed the changes, and you happened to end up with a laptop close enough that yours worked ”out of the box.”

So if yours doesn’t… some digging will be required.
 
Back
Top