Nvidia brightness control fix

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
Section "Device"
        Identifier  "Videocard0"
        Driver      "nvidia"
        Option "RegistryDwords" "EnableBrightnessControl=1"
        Option          "NoLogo"

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_brightnessto 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: