I, too, would like to know what the status of this bug is.
Running Debian Wheezy on HP Elitebook 8560w Quadro 2000m, recent nvidia proprietary driver versions (including 331.38) break brightness control.
Problem is reproducible in Debian Sid and in Fedora 20 with latest updates, so it doesn’t seem fixed by more recent versions of linux packages.
Brightness control works in 304.88 driver from Debian Wheezy repos, and earlier versions (295.41 dev driver from cuda toolkit 4.2). I expected better driver support for Quadro products.
Tested nvidiabl - brightness control still doesn’t work in my case with recent drivers 331.38.
Also tried different solutions found on the web, like EnableBrightnessControl in xorg.conf, acpi_vendor etc., none of them worked. In all cases I tried changing brightness using echo to files, xbacklight and laptop keys - none worked with recent drivers.
Since the only difference between working and non-working backlight control is installation of recent version of nvidia proprietary drivers (other packages are very rarely updated and with bug-fixes only in stable branch of Debian), I think it is safe to say that it is nvidia’s job to fix this bug.
run ‘sh NVIDIA-Linux-x86_64-331.38.run -x’ to extract files
‘cd NVIDIA-Linux-x86_64-331.38’ to extracted dir
apply patch with ‘patch -p1 < …/nvidia_3.13_kernel.patch’
run ‘./nvidia-installer’
make sure ‘Option “RegistryDwords” “EnableBrightnessControl=1”’ is in the device section of /etc/X11/xorg.conf, otherwise brightness control still won’t work.
backlight brightness control now works with 3.13.1 kernel, but still doesn’t work when booting the old 3.2.0 kernel from Debian stable repos (wheezy-backports has 3.12 for now).
On some optimus laptops, the backlight is only controlled by the Intel card, so it is normal that using EnableBrightnessControl doesn’t work. (Not everybody in this thread has this specific issue) It is fixed in the 3.13 kernel by using the video.use_native_backlight=1 kernel parameter though.
Found out that without “EnableBrightnessControl=1” in xorg.conf, backlight control won’t work with 3.13.1/338.31 with patch combo, had this option from previous tries to get it to work. Edited previous post.
It looks that way, at least for 8560w with Quadro graphics. I wish it worked with 3.2.0, then I wouldn’t have to build kernel and could have used debian stable one from repos.
Have you tried the workaround suggested by __alex? It works for me. (Ubuntu 12.04.4 LTS, kernel 3.13.2 from kernel.ubuntu.com, and nvidia 331.38).
However, I have reverted to stock 12.04.4 LTS with nvidia 304.116 as I have experienced a few integration problems. I will wait for the .5 release, which will definitely have kernel>3.13, and install the nvidia driver via jockey.
Could somebody test this workaround with the current nvidia driver (331.20) in the Ubuntu repository?
I have more or less the same Problem on an older Macbook 5.5 with nvidia 9400m. No matter what NVIDIA driver I use the backlight conrtol doesn’t work.
As a workaround I found the nvidiabl project [url]https://github.com/guillaumezin/nvidiabl[/url]. The drawback for me an a lot of others is, that with a recent Version (tested with 331.38 304.119 and 331.49 ) The backlight always becomes maximum when an application uses VDAPU [url]https://github.com/guillaumezin/nvidiabl/issues/56[/url]. This behaviour makes it kind of annoying. As a fix for that, I could use NVIDA 173.14.39 drivers. With that driver version and nvidiabl I can perfectly and fully control my backlight but I lose a awfull lot of other features e.g. webgl.
For completness here is my nvidia-bug-report file [url]Dropbox - Error
As the Nvidia proprietary driver is closed source software, my only way to help You (and the people here with this problem) is spending my precious time on testing. I would like to highlight the fact that our problem seemed to be fixed with Linux kernel 3.13, 331.38 driver, and the EnableBrightnessControl setting, however, it is not.
These are my experiences (with a Quadro 1000m card):
Drivers 304.x control brightness well, work reasonably well, VDPAU does not work.
Drivers between 304.x and 331.38 do not control brightness at all, work well.
Driver 331.38 controls brightness well, works well, webgl performance is not that great compared to 334.21 and 304.116
Driver 331.49 and 334.21 do not control brightness at all (although they work well).
Now we have two-two states which worked and not. I hope that gives enough comparison points for a successful debug, and forget this bug forever.
So since the last update of my System surprisingly everything is working. Sadly I do not know what exactly changed but my setup is a follows:
Sabayon Linux
Kernel 3.13.5
Nvidia driver 331.49 (from nvidia not my dist repo)
nvidiabl nvidiabl-0.83
When I was doing the updated I only remember that I got a new point release of the kernel from 3.13.4 to 3.13.5 and since that really everything is working very well. I can not remember having such a nice responsive System. Thank you very much who ever did the magic change.
I can confirm that the latest driver 331.49 on 3.13.6 vanilla kernel can’t control brightness on HP 8560w.
Previous driver 331.38 with 3.13.6 vanilla kernel - works with patch applied that I mentioned in my previous post.
Same patch cannot be applied successfully to 331.49 driver, probably need some modifications, but I don’t have any free time to spare right now to figure it out.
Anyone from NVIDIA care enough to comment on progress for this bug?
The 331.38 driver controlled brightness fine, but it’s performance was not that good on my 8560w. The Chrome Experiment 100000 Stars produced around 10-15 FPS. On 331.49 and on 334.21, the one I’m using right now gives just buttery smooth high FPS. I started to look for workarounds, and found two, so I decided that I will move on with the drivers. The the workarounds are redshift, and nvidiabl. Both require terminal commands to change brightness, but it’s okay for me.
Redshift:
Available in the Ubuntu and Wheezy repositories. Just install, and use the command:
// brightness-value should be between 0.1 and 1.0
// To stop the effect, kill it with ‘fg’ and CTRL-C
Pros:
Works
Cool by being able to change the screen temperature
Easy to use (no need for administrator rights, only one command)
Cons:
On KDE, the brightness of the cursor (and only of the cursor) remained the same (maximum), maybe on GTK based systems it’s not a problem. Not as bad as it sounds.
Nvidiabl:
The DKMS package is required for this. Install the 0.85 debian package from the downloaded GIT zip (install folder). After that, issue the following commands:
su
modprobe nvidiabl max=20000
echo value > /sys/class/backlight/nvidia_backlight/brightness
// value is between 0 and 127 - min should be around 5-10, because you could turn the screen of completely
// the ‘value’ value is relative to the scale set by max (20000 works fine for me)
// in case of experimenting with max, first one has to remove the module by ‘modprobe -r nvidiabl’, then apply the new modprobe nvidiabl max=value. The key is that 127 should set brightness to maximum
Pros:
Works as expected
Cons:
More commands
I couldn’t automatize the modprobing command at startup
Hi rope, nvidiabl doesn’t work for me for some reason with 331.49 or with whatever driver version, I can’t control brightness with it as you suggested. Do you have any remaining workarounds in place related to backlight, in grub or xorg.conf? acpi_verdor for example? I tried for now to remove EnableBrightnessControl=1 in case it interfered with nvidiabl, but it made no difference - still can’t control backlight with nvidiabl.
Maybe nvidiabl just doesn’t work with Quadro 2000m on HP 8560w?
As to redshift and cursor being too bright, are you sure it controls brightness of the backlight and not just brightness of colors? It doesn’t do much for battery life in that case. Here Redshift (software) - Wikipedia its suggested that hardware cursor is causing it to have constant brightness, try changing to software.
Also you can map your command to change brightness to acpi event in acpid (acpid - ArchWiki), since HP 8560w does seem to have good acpi support, or just use KDE global hotkeys.
Unfortunately I don’t have any more workarounds for the problem.
About RedShift… As far as I understand now, it decreases the gamma value, so yes, it alters the displayed colors. And I believe what you suggested about battery life is true - it didn’t occur to me though.
I use nvidiabl and it works on my 8560w with Quadro 1000m and nvidia 334.21. I didn’t configure anything, just installed the debian 0.85 package. Sometimes the max=20000 value sets the brightness to 60% at 127, so I have to increase that magic max value and re-modprobe, so that 127 would set the maximum brightness. I don’t understand what’s behind this max value, and I hope I won’t damage my workstation by using this solution. However, it seems to bet working…
I would like to share a shell script I wrote today. Those why are as lucky as I am that nvidiabl is controlling brightness fine, might find this script helpful. It is basically a volume control for the brightness and max “scale” values.
EDIT: One must switch to root user to use this script!
#!/bin/bash
# NVIDIA Brightness Tool
if [ -d "/sys/class/backlight/nvidia_backlight/" ]; # Check if nvidiabl interface exists
then
modprobe -r nvidiabl
fi
modprobe nvidiabl max=20000
echo 127 > /sys/class/backlight/nvidia_backlight/brightness
scale=20000
brightness=127
input="first" # For do-while loop
while [[ "$input" == "first" ]] || [[ "$input" == "a" ]] || [[ "$input" == "s" ]] || [[ "$input" == "d" ]] || [[ "$input" == "w" ]] || [[ "$input" == "q" ]]; do
clear
case $input in
"w")
if [ $brightness -ge 122 ]; then
brightness=127
else
brightness=$(($brightness+5))
fi
echo $brightness > /sys/class/backlight/nvidia_backlight/brightness
;;
"s")
if [ $brightness -le 6 ]; then
brightness=1
else
brightness=$(($brightness-5))
fi
echo $brightness > /sys/class/backlight/nvidia_backlight/brightness
;;
"a")
if [ $scale -le 20000 ]; then
scale=20000
else
scale=$(($scale-10000))
fi
modprobe -r nvidiabl
modprobe nvidiabl max=$scale
echo $brightness > /sys/class/backlight/nvidia_backlight/brightness
;;
"d")
if [ $scale -ge 200000 ]; then
scale=200000
else
scale=$(($scale+10000))
fi
modprobe -r nvidiabl
modprobe nvidiabl max=$scale
echo $brightness > /sys/class/backlight/nvidia_backlight/brightness
;;
"q")
exit 0;;
*)
;;
esac
echo -e "NVIDIA Brightness Tool" # Description and key bindings
echo -e "Usage:"
echo -e "\tw : Increase brightness"
echo -e "\ts : Decrease brightness"
echo -e "\td : Increase interval"
echo -e "\ta : Decrease interval"
echo -e "\tq : Exit"
brightness=$(cat /sys/class/backlight/nvidia_backlight/brightness)
echo -e "\nCurrent brightness: $brightness"
echo -e "Current scale: $scale"
read -n 1 input
done
clear
exit 0