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" EndSection
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:
12 comments on “Nvidia brightness control fix”
You legend, worked perfectly for my Nvidia Quadro 2000M.
Thnx for commenting 🙂
I am also thankful for this solution. I did post a question about it in the Nvidia Developer Zone forum , could you take a look at it, please? Thanks!
I have just posted a solution in the same forum topic.
I replied in thedevtalk.nvidia.com post .
I’m back at 304.x at the moment, will upgrade again sometime soon .
oh, and thnx for that ‘save brightness value’ change, that was my next move.
I’ll copy your fix 🙂
This problem has caused me greif for the longest time, and out of the countless forum posts and bug reports I’ve read regarding it, this was the first one that worked.
Thank you so much — I can finally update to the latest version of the kernel (not being able to update backlight brightness was the one thing holding me back on an ancient kernel/nvidia driver version combo)
Also, this worked with my setup:
Glad things worked out for you !
Thnx for your feedback and info.
You’re my savior!
I recently started trying out Linux and this damn brightness control bug was killing my eyes.
Worked on a Samsung RV511 laptop (GeForce 315M) with Ubuntu 16.10.
Wow. This worked for me at Fedora 32 with NVIDIA drivers on my Macbook Pro Mid 2010. I was freaking out as I didn’t have any files in /sys/class/backlight which was being accessed by all the other solutions.