Ubuntu – What does the kernel boot parameter “set acpi_osi=Linux” do

acpigraphicskernellaptop

I am facing an issue with brightness control in my laptop which has Intel HD graphics and Ubuntu 10.10 64-bit. So when I searched for a fix I found that a common suggestion is to edit the GRUB file line, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" to
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

Documentation for boot parameter acpi_osi tells:

acpi_osi=   [HW,ACPI] Modify list of supported OS interface strings
            acpi_osi="string1"      # add string1 -- only one string
            acpi_osi="!string2"     # remove built-in string2
            acpi_osi=               # disable all strings

http://redsymbol.net/linux_boot_parameters/

I don't find a reason why this should fix any laptop issue.

So could anyone tell me what the kernel boot option acpi_osi=Linux do?

Best Answer

I think you mean =Windows, not Linux. The argument tells the kernel to lie to the ACPI BIOS and tell it that it is something other than Linux (which is why specifying Linux is silly).

I'm sure he means what he wrote. Yes, BIOS's usually disable functionality if Windows is not detected, but specifying Linux is not silly because by default the kernel responds false when asked if Linux is running. acpi_osi=Linux tells the kernel to respond true.(see drivers/acpi/osl.c) It seems that you need to tell the BIOS the truth.

It's either a driver problem or incorrect ACPI implementation. You'd have to take out your dsdt and disassemble it to review the code and get a better understanding of what is broke or disabled under the Linux OSI.

Reference

Related Question