GNOME Bugzilla – Bug 728354
GNOME cannot adjust backlight
Last modified: 2014-04-24 10:04:57 UTC
GNOME 3.12 cannot adjust backlight. When I use the Fn keys on my laptop the onscreen indicator pops up and changes the level of brightness, but backlight actually doesn't change. When I try to set up backlight in the user menu or power settings it randomly changes the backlight, but only in one out of ten attempts. Moreover the backlight is always on 100% after turning on the computer. The indicator in the user menu always shows 0%, though. I tried to eliminate the possibility that the problem is in other parts of the system. I tried older (3.12) and newer (3.14) kernel (didn't help). I also tried a different desktop enviroment (KDE) where I could adjust backlight without any problems. I can also adjust backlight with CLI tools such xbacklight and xrandr. I'm running up-to-date Fedora 20 with Richard Hughes' repository of GNOME 3.12. My computer is Lenovo Thinkpad X240.
Please try the following: $ gdbus call --session --dest org.gnome.Mutter.DisplayConfig --object-path /org/gnome/Mutter/DisplayConfig --method org.gnome.Mutter.DisplayConfig.GetResources This will get you lots of output but we're only interested in the first value. Should be like "(uint32 1, ..." - in this case it's 1. Then try calling: $ gdbus call --session --dest org.gnome.Mutter.DisplayConfig --object-path /org/gnome/Mutter/DisplayConfig --method org.gnome.Mutter.DisplayConfig.ChangeBacklight 1 0 10 Where 1 is the number you for from the first command. The second argument should be always be 0 if you only have one monitor and the third argument is the backlight percentage, you can use numbers from 0 to 100. Does this change the backlight reliably for you?
It doesn't change the backlight at all.
What did help was a boot parameter acpi_backlight=vendor. However, it doesn't fix the issue completely because GNOME doesn't remember the level of brightness from the last session and sets it to 0. So I boot to a black screen and have to adjust the backlight manually every time I boot the computer.
(In reply to comment #3) > What did help was a boot parameter acpi_backlight=vendor. > However, it doesn't fix the issue completely because GNOME doesn't remember the > level of brightness from the last session and sets it to 0. GNOME hasn't tried to remember the backlight for a long long while. This is implemented in systemd with systemd-backlight@.service. Take a look inside /var/lib/systemd/backlight/ > So I boot to a > black screen and have to adjust the backlight manually every time I boot the > computer.
(In reply to comment #4) > (In reply to comment #3) > GNOME hasn't tried to remember the backlight for a long long while. This is > implemented in systemd with systemd-backlight@.service. Take a look inside > /var/lib/systemd/backlight/ The file is empty and the service doesn't run which is weird because all I did was to install F20, add the GNOME 3.12 repo and update. The version of systemd is the same as in F20 without the repo. It seems to be hardware specific (it works on other chipsets), and some kind of combination of gnome and systemd because it works in F20 with gnome 3.10.
We traced this down to the intel DDX exposing a range of (0, 100) for the Backlight output property but only actually accepting values multiple of 5. See https://bugzilla.kernel.org/show_bug.cgi?id=67031 and the (rather long) bug this one is marked as dupe of. It seems that a number of recent laptops need to use a different backlight driver that can be selected on the kernel command line with video.use_native_backlight=1 . Aaron Lu seems to be collecting the affected laptop models and making this driver the default for them in the kernel.
Turns out that I root caused this a year ago... *** This bug has been marked as a duplicate of bug 698271 ***
Worth mentioning that video.use_native_backlight=1 breaks systemd-backlight and you boot into a black screen because backlight is set to 0. But this bug probably goes to systemd.