Brightness hotkeys not seen by kernel on Asus n55s, other hotkeys ok.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xserver-xorg-input-evdev (Ubuntu) |
Invalid
|
Low
|
Unassigned |
Bug Description
On an Asus n55sf, there is an issue with the handling of brightness adjust keys.
## Severity: consistent annoyance for the target human user
Rationale:
* On this laptop, the most natural way to set LCD brightness (hotkeys) *seems* to work at first.
* But the user's choice is consistently overriden.
* More precisely: it is overriden whenever, on batteries, there is a pause in keyboard/mouse activity (e.g. when the user reads text on-screen, or comes back to the laptop after a minute).
* Caveat: the problem is *not* the laptop dimming the brightness to save power, this is expected behavior. The problem is, when user provides events again, brightness is not reverted to value set by hotkeys.
## Context
* X session, it can be Unity or other (e.g. xfce), scenario is the same.
* Bug noticeable when running on batteries (due to automatic brightness change on idle).
## Expected behavior
* pressing Fn-F5 and Fn-F6 changes the brightness
* pressing Fn-F5 and Fn-F6 show on-screen notification
* on battery after 30 seconds without key/mouse event, backlight is dimmed. Then, pressing any key or moving mouse restores brigthness at the value set using keys
## Observed behavior
* pressing Fn-F5 and Fn-F6 changes the brightness -> OK
* pressing Fn-F5 and Fn-F6 *does not* show on-screen notification -> minor
* on battery after 30 seconds without key/mouse event, backlight is dimmed. Then, pressing any key or moving mouse restores brigthness at the last value set using software (gnome-
## Steps to reproduce
* set backlight to 100% (using gnome-control-
* unplug AC power to run on battery
* change brightness using Fn-F5, e.g. some value halfway (usage scenario : now on the move, need to save power)
* count a little more than 30 seconds without touching keyboard/
* press e.g. shift, or move mouse or touchpad
* expected : brightness jumps to halfway (set using hotkeys)
* observed : brightness jumps to maximum (set using software)
## Additional information
* Other keys work: sound volume, wifi toggle, touchpad toggle, sound play/pause/
* Some working keys *do* display OSD feedback (at least volume up/down/mute, touchpad toggle, sound play/pause/
* Some working keys do not display OSD feedback (wifi toggle, supend, LCD toggle, LCD/external display toggle)
* On a different laptop, Asus X77VN, brightness keys do show on-screen notification with percentage bar, and the bug is never experienced. Laptop is different model but same brand and software, same packages, same system and user settings (Unity or xfce, same behaviour).
## Interpretation
* Everything seems consistent with the interpretation that although brightness hotkeys do work, Ubuntu is never aware of that. So when Ubuntu changes the brightness, it can not do better than use the value set using software.
## Workaround
* In gnome control center, uncheck "Dim screen to save power". A quick test shows that Ubuntu does not change brightness, so user preference set by hotkey is preserved.
## Other
$ lsb_release -rd
Description: Ubuntu 12.04.1 LTS
Release: 12.04
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xorg 1:7.6+12ubuntu1
ProcVersionSign
Uname: Linux 3.2.0-30-generic x86_64
.tmp.unity.
ApportVersion: 2.0.1-0ubuntu12
Architecture: amd64
CompizPlugins: [core,composite
CompositorRunning: compiz
Date: Mon Aug 27 19:24:46 2012
DistUpgraded: Fresh install
DistroCodename: precise
DistroVariant: ubuntu
ExtraDebuggingI
GraphicsCard:
Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Device [1043:2050]
NVIDIA Corporation GF106 [GeForce GT 555M] [10de:1247] (rev ff) (prog-if ff)
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Beta amd64 (20120419)
MachineType: ASUSTeK Computer Inc. N55SF
ProcKernelCmdLine: BOOT_IMAGE=
SourcePackage: xorg
Symptom: display
UpgradeStatus: No upgrade log present (probably fresh install)
XorgConf:
Section "Device"
Identifier "Default Device"
Option "NoLogo" "True"
EndSection
dmi.bios.date: 08/29/2011
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: N55SF.207
dmi.board.
dmi.board.name: N55SF
dmi.board.vendor: ASUSTeK Computer Inc.
dmi.board.version: 1.0
dmi.chassis.
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK Computer Inc.
dmi.chassis.
dmi.modalias: dmi:bvnAmerican
dmi.product.name: N55SF
dmi.product.
dmi.sys.vendor: ASUSTeK Computer Inc.
version.compiz: compiz 1:0.9.7.
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.32-1ubuntu1
version.
version.
version.
version.
version.
version.
version.
version.
affects: | xorg (Ubuntu) → xserver-xorg-input-evdev (Ubuntu) |
summary: |
- Partially broken brightness hotkey handling. + Brightness hotkeys not seen by kernel on Asus n55s, other hotkeys ok. |
Summary : interestingly, in a bare X session, xev does not react to those hotkeys, while it reacts to other. Does it mean the problem lies at X level ?
## General test
To isolate the problem, I logged in with an empty account running OpenBox only (no full desktop environment) and ran xev.
Here is the complete list of hotkeys I see when pressing special keys and Fn-* combinations, as reported by xev.
$ grep -o 'XF86[^ )]*' /tmp/xevlog.txt | sort | uniq olume olume
XF86AudioLowerV
XF86AudioMute
XF86AudioNext
XF86AudioPlay
XF86AudioPrev
XF86AudioRaiseV
XF86AudioStop
XF86Bluetooth
XF86Calculator
XF86Display
XF86Launch1
XF86Phone
XF86Sleep
XF86TouchpadToggle
XF86WebCam
XF86WLAN
They all occur at expected places, except XF86Phone (Fn-T, without other symbol), XF86Launch1 (Fn-C, symbol like a monitor showing letter S). Also pressing Fn-F2 shows XF86WLAN (expected) but also XF86Bluetooth a few seconds after (expected only XF86WLAN but that's probably a feature).
In bug description you can see which keys does what in regular desktop environment.
## Specific interesting part
Now, something different happens when pressing Fn-F5 (brightness down), Fn-F6 (brightness up) and Fn-F7 (backlight toggle, icon shows screen covered by a big X).
All three keys do change backlight as expected, but :
Fn-F5 (brightness down) cause no event seen by xev
Fn-F6 (brightness up) cause no event seen by xev
Fn-F7 (backlight toggle) causes the events below (it seems to be the only key that provides keycode 253):
KeyPress event, serial 48, synthetic NO, window 0x1600001,
root 0xca, subw 0x0, time 704540, (23,116), root:(253,574),
state 0x10, keycode 253 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 48, synthetic NO, window 0x1600001,
root 0xca, subw 0x0, time 704540, (23,116), root:(253,574),
state 0x10, keycode 253 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
## Now what ?
Does it mean that these keys are missing at X input driver level ?
I'd be okay to test some fix at the X level, so that this problem gets fixed.
Thanks.