Getting full speaker performance with Linux on Framework Laptop 16

In order to get full speaker performance in Linux on Framework Laptop 16, you’ll need to toggle the Linux Audio Compatibility setting in BIOS. You can find the steps for that here: Ubuntu 22.04 LTS Installation on the Framework Laptop 16 - Framework Guides


Hrm, I’m planning to multi-boot mine… any chance of more details on what this setting does and the impact of leaving it on when running Windows?


I was going to ask that exact question, I’d be interested in this, also.

We haven’t had any official word on what this actually does. Just speculation from users based on one of your Audio deep dives (the dual chipsets and dual speakers).

What happens if you’re using Linux and left it on Windows Audio in the BIOS? And vice versa (Windows and left it on Linux Audio in the BIOS)?

I’m sure I will not be the only person who dual-boots with their FW16.



I would also be dual booting a 16.

I don’t know what the BIOS setting changes, but I am a Linux kernel ALSA (sound) developer, so I will find out when I get my FW 16.
My guess is that it presents a different device depending on the BIOS setting.
In Linux, try “lspci -vnn” and see what changes when the BIOS setting changes.


Once the Windows Audio Driver is installed, the BIOS setting should have no effect. The obvious question then is, “why isn’t this setting on by default?”. That is a question we’re discussing internally and we may update this in future BIOS’s.


Thanks for the update, this is exactly what I was hoping for!

My speculation then is that it’s basically just fiddling with non-public hardware registers that the Windows driver knows about, but are “trade secrets” possibly covered under NDA.

Another possibility of course is that they are publicly documented, but since the “right” values are platform-specific, the Linux driver isn’t interested in having a huge list of platform-specific settings in it.



Hi. Can anyone tell us exactly what the BIOS setting does and why? What registers it touches etc. I could then add it to the Linux kernel source code to work irrespective of what the BIOS setting does.

The setting changes the HDA VERB table between Linux and Windows.

Hardware wise we have a HDA codec with a class D amp that drives the high frequency speakers, and also an attached i2s amplifier for the main speakers.

The Linux version will configure EQ settings for both amplifiers correctly for Linux. Which is normally done by the Windows driver.

We would enable the linux settings as default for both, but the additional configuration will lead to a device failure in windows with the windows HDA driver.