What does acpi_osi actually do? And how would it help to battery life?
I am currently on a 11th Gen Framework Laptop. Before adding acpi_osi="!Windows2020" to the kernel parameters, the best idle total power I could achieve was around 5W. After I added the kernel parameter while not changing everything else including TLP configuration, I saw a ~40% decrease in idle total power under the same condition (about 3.0W). I have auto brightness turned on, and the brightness was similar before and after the discovery.
Also, is there some acpi_osi or acpi_os_name parameter needed for 12th Gen Framework Laptop to get a good battery life?
Fedora 37 here, kernel 6.1.10-200.fc37.x86_64, 11 gen BIOS 3.17 as well.
The laptop is virtually always plugged into either the Framework AC adapter or a TB4 dock, so I don’t have any battery life/consumption numbers to report/compare.
However I do have acpi_osi="!Windows 2020" in the command line because without it s2idle sleep does not work. That’s completely independent of the TB dock and as far as I can tell was “always” (since I got the laptop and installed Fedora 35 on it in the Nov 2021 timeframe) needed to get s2idle to work. I’d be curious about your or others’ experience - does s2idle work for you with/without this argument?
I tested again without the acpi kernel parameter and it does seems to have little or no effect. The result may come from different screen brightness.
By the way, at the time I bought the 11th gen framework laptop, on arch wiki there was a tip about acpi_osi kernel parameter. That tip said leaving it to blank may lead to CPU stalls and the possible preferred option was “Windows 2020”.
But now that tip is gone. Are there some issues that’s not present on 12th gen motherboards?
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
acpi_osi="string1" # add string1
acpi_osi="!string2" # remove string2
acpi_osi=!* # remove all strings
acpi_osi=! # disable all built-in OS vendor
acpi_osi=!! # enable all built-in OS vendor
acpi_osi= # disable all strings