If you, like me, got an Nvidia graphics card in your laptop you may have problems with brightness control with recent Nvidia (proprietary) drivers .
First time I came over this is more than a year ago, back then I lost brightness control after upgrading from Nvidia 304.x to anything newer.
Since the working 304.x driver was available then, in my Ubuntu 13.04 (and later 13.10) I never sat down figuring it out.
I recently switched back to Fedora, and they’ve got the same problem.
In Fedora I was also unable to control brightness with the 304 driver as well, I suspect recent versions of the 304.[something above 100] also brake, or there is some combination of Linux kernel version, Nvidia driver version and mabye something else .
There are loads of posts regarding brightness control that brakes, and as far as I can see there are more than one type of problem, f.example I see a lot of fixes that seem to be related to Nvidia Optimus but those solutions doesn’t work for my Quadro 1000m .
Here’s what fixed it for me.
Download nvidiabl from https://github.com/guillaumezin/nvidiabl
$ unzip nvidiabl-master
$ cd nvidiabl-master
$ sudo yum install dkms
$ cd install/tarball/
$ sudo dkms ldtarball --archive=nvidiabl-0.87-source-only.dkms.tar.gz build install
$ sudo echo nvidiabl > /etc/modules-load.d/nvidiabl.conf
That last line will ensure the nvidiabl module is loaded upon booting Fedora .
Now you got a module that you can use a script to echo brightness values into some file in /sys, but you can take this a step further:
(open /etc/default/grub in your favorite editor and append to the GRUB_CMDLINE_LINUX line)
GRUB_CMDLINE_LINUX="[...] acpi_backlight=vendor [...]
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
the acpi_backlight=vendor tells Linux to skip using acpi for brightness and that put nvidiabl in ‘charge’ as the only brightness control module under /sys/class/backlight/ , and in my Fedora 20 running Gnome 3 that magically made brightness control work as it’s supposed to again .
Note that I’ve also got this /etc/X11/xorg.conf
# RPM Fusion - nvidia-xorg.conf
Option "RegistryDwords" "EnableBrightnessControl=1"
In my setup with the current nvidiabl module it kind of brakes after suspend / resume, some suspend / resume script fail to set /sys/class/backlight/nvidia_backlight/actual_brightness
I worked around that by telling systemd/system-sleep to unload / load the nvidiabl driver:
case $1 in
/usr/sbin/modprobe -r nvidiabl
*) echo "ERROR: used incorrectly."
Thnx to archlinux.org where I found out about acpi_backlight=vendor .
And I’ll paste some of the links I’ve been at regarding this problem, but there are numerous others that I don’t recall at the moment: