Talk:Thinkpad-acpi
Problem with ACPI key event codes in OpenSuse 12.3
The below information was relevant on my Thinkpad Z60m running:
Linux 3.7.10-1.1-desktop OpenSuse 12.3 KDE 4.10.00 "release 1"
I am currently running:
Linux 3.7.10-1.4-desktop OpenSuse 12.3 KDE 4.10.2 "release 1"
and everything said below is still valid.
--Jespergoll (talk) 16:20, 9 May 2013 (CEST)
I upgraded my Thinkpad Z60m to OpenSuse 12.3 shortly after its release on March 13th 2013 - and soon found that my ACPI key handling script (/usr/lib/acpid/thinkpad_handler) was broken.
Specifically, they key events reported by the ACPI driver were different from what they had been before the upgrade - and so the following information (in ../Documentation/laptops/thinkpad-acpi.txt) was no longer true on my system:
The driver will report HKEY events in the following format: ibm/hotkey HKEY 00000080 0000xxxx
Now, instead, the same HKEY events are generally reported in the following format:
button/xxxxx YYY 00000080 00000000 K
- where "xxxxx" is a lowercase name for either the key or the key function, and YYY is a shorter, capitalized version of the same. For example, Fn-F12 ("suspend to disk") is now being reported as:
button/suspend SUSP 00000080 00000000 K
I have found one exception to this general rule: Fn-F7 (the video switch button) is now being reported as:
video/switchmode VMOD 00000080 00000000 K
So I had to rewrite my key handler script (/usr/lib/acpid/thinkpad_handler), and even the event mask (found in /etc/acpi/events/thinkpad). My general key event mask now looks like this:
event=button/.* action=/usr/lib/acpid/thinkpad_handler "%e"
To get the video switch script back in shape I created an additional event mask (/etc/acpi/events/video) with the following content:
event=video/switchmode action=/usr/lib/acpid/video_handler "%e"
and moved the video switching routines to a new script: /usr/lib/acpid/video_handler.
Here is a list of the key events I have explored, and the event reports they now produce:
FnF1 button/fnf1 FNF1 00000080 00000000 K FnF2 button/battery BAT 00000080 00000000 K 1 FnF3 button/screenlock SCRNLCK 00000080 00000000 K 1 FnF4 button/sleep SBTN 00000080 00000000 K FnF5 button/wlan WLAN 00000080 00000000 K FnF6 button/fnf6 FNF6 00000080 00000000 K FnF7 video/switchmode VMOD 00000080 00000000 K FnF8 button/zoom ZOOM 00000080 00000000 K 2 FnF9 button/f24 F24 00000080 00000000 K FnF10 (not reported) FnF11 button/fnf11 FF11 00000080 00000000 K FnF12 button/suspend SUSP 00000080 00000000 K ThinkVantage button/prog1 PROG1 00000080 00000000 K FnSpace button/zoom ZOOM 00000080 00000000 K 2
FOOTNOTES [Δ] |
- Fn-F2 and Fn-F3 seem to have become mixed up in the driver. On my machine, at least, Fn-F2 is "lock" and Fn-F3 is "battery".
- Please note that Fn-F8 and Fn-Space now produce identical event reports - so there is no way to distinguish one from the other.