pigeond pigeond

pigeon's blog - the pigeon concerto in D minor

Linux, ASUS W7J, and the ACPI brightness keys
2007/11/05 04:30:21

Was meant to write up a page about Linux on my ASUS W7J, but I never got the time yet…

Anyway, here’s a possible quick fix for those with an ASUS laptop (W7J at least) and a non-working brightness acpi key (in my case, it’s Fn + F5 and Fn + F6), even though /sys/class/backlight/asus-laptop/brightness works perfectly.

I poked around the disassembled DSDT code and did a bit of googling. After a few reboots and testing, I figured out passing acpi_osi="!Windows 2006" to the kernel fixes the issue.

Apparently with the (current) Linux ACPI driver, the OS interface (OSI) code will respond to the ACPI as quite a few different versions of M$ windows (see drivers/acpi/utilities/uteval.c for the entire list). This list can be modified by the kernel parameter acpi_osi (see Documentation/kernel-parameters.txt for full details).

So my guess is the DSDT thinks I’m running “Windows 2006″ (aka Vista), and so it is doing (or not doing) something with these two particular ACPI keys. Telling the Linux ACPI driver not to pretend to be Vista got rid of the problem.

This quick workaround also means that I didn’t have to patch my own DSDT and build a kernel with it.

[Updated: 5th November 2007] I was testing 2.6.23.x on the W7J, and I noticed both brightness keys Fn + F5 and Fn + F6 work without acpi_osi. I looked into it and I’ve found out that the ACPI video driver makes the keys work. And for some reasons with older kernels (2.6.22.x) the video module is not loaded automatically. So you can probably ignore what I said above months ago :)

Comments are closed.

blog top 24 tags
api bonding debian engrish fglive fgmap flightgear google ISP laptop lca2007 lca2008 linux live map mpserver navaids network qotd quote of the day taiwan vim windows wine
Web pigeond.net

this site is
created with vim

nearly all pages in this site are validated as
Valid HTML 4.01!

css validated by
Valid CSS!

pigeond.net copyright 2001 - 2014
designed, created, and coded by pigeon at pigeond dot net
all rights reserved