Backlight brightness not hooked to ACPI events (Ubuntu 16.04)

Hello,

I have a Clevo P751DM-G with a GeForce GTX 980M, running Ubuntu 16.04 and nvidia 367.27.

Issue: when setting laptop’s LCD brightness up and down with the Fn-F8/Fn-F9 keys, this has no effect on the LCD screen.

After some investigations, I found that the Fn-keys are properly generating ACPI events:

$ acpi_listen 
video/brightnessdown BRTDN 00000087 00000000
video/brightnessup BRTUP 00000086 00000000

The video module provides /sys/class/backlight/acpi_video0.
Pressing Fn-keys properly increase/decrease the value in /sys/class/backlight/acpi_video0/brightness, but writing into it has no effect on the screen (but the new value is still saved).
Also, the Desktop Environment open a popup indicating a change in brightness setting.
=> Everything seems to be working on the ACPI event side.

On the other hand, I can change brightness with xbacklight -set XX or nvidia-settings -n -a BacklightBrightness=XX.
=> This has real effect on the screen.

So, the only missing piece seems to be the glue between ACPI events and brightness control.
I know I can workaround it with an acpid event handler, but I expect it to work out of the box without any manual script hacking.

  1. Is my expectation correct?
  2. What can I do to further investigate the issue? (are there some logs to look for? should I provide some more information?)
  3. Is this an nvidia driver issue or should I look for other component? (Xorg, kernel, …)

Are you able to change backlight and brightness with xrandr tool ? Please provide nvidia bug report too.

I can change backlight and brightness with xbacklight, nvidia-settings (with arguments “-n -a BacklightBrightness=…”) and, well, xrandr but manpage says it’s only software correction.
nvidia-bug-report.log.gz (229 KB)

Currently, the best workaround I found is running a daemon watching for any /sys/class/backlight/acpi_video0/actual_brightness change and then running xbacklight with the new value (daemon’s shell script described here: http://sub-pop.net/post/fedora-23-on-system76-oryx-pro/ )

This is a little misleading. The “xrandr --brightness” option controls the brightness of the gamma ramp, which adjusts the color values in the GPU before sending the pixels to the display. So it’s not really a “software” modification, but it doesn’t affect the actual backlight brightness.

xbacklight, the nvidia-settings ‘BacklightBrightness’ attribute, and "xrandr --set Backlight " all change the actual backlight power. /sys/class/backlight/acpi_video0 is also supposed to adjust the backlight power, but it sounds like it’s broken in the SBIOS on a lot of laptops.

Well, my backlight brightness issue seems to be gone for several driver versions now (I don’t remember which one exactly. Or maybe was it with an upgrade to Ubuntu 17.04), since I had to remove all my workarounds (they were suddenly broken) and it still works as expected. But I never updated my BIOS.

I am also having this issue.

I have Clevo P775DM3 and I also have this problem.

Worst, in my case neither xbacklight nor nvidia-settings has any effect on screen.

UPDATE> My problem with backlight was solved by updating LCD panel firmware. And, probably, by BIOS upgrade which I had done before. But sole BIOS upgrade was not sufficient.

Hi,

I am also having the same problem. Can you provide me pointers for doing a BIOS upgrade and LCD Panel firmware update?

I received instructions and links by email. Without any warranty, you can damage your computer by doing it.

BIOS: http://downloads.eurocom.com/support/drivers/models/SkyX7E2/bios/P775Dm3_B0611_efi.zip
Format the USB drive FAT32
Extract the .zip file to the Flash drive.
After this is complete, there should be 4 folders on the USB drive, EFI and bios.
Reboot the system, and press F2 to enter bios.
Verify that under BOOT menu, it is set to UEFI.
Reboot the system, and tap F7 for the boot menu, select the USB drive.
When it is at a command prompt, select the USB drive, it will be listed as FS(then a number)
For these instructions, I will use FS2.

Power on the system, and tap F7 for the boot menu, select the USB drive.
Type in FS2: and press enter
Type in cd bios and press enter
Type in MeSetX64 and press enter.

The system will auto reboot, tap F7 and select the USB drive.
Type in FS2: and press enter
Type in cd bios and press enter
Type in FLASHME.NSH and press enter.

After the flash is complete, enter the bios (F2), and press F3 to load defaults, then F4 to save and exit.
After the reboot, enter the bios (F2), and verify uefi setting.
https://drive.google.com/open?id=1HxpHUZ0M0k49BSoklvrUAhiRPYqoYph9
LCD panel firmware.
Double click on Auxtool.exe
Select Nvidia and okay.
And follow the instructions on screen

I’am not sure if the drive link still works, however. And the second step must be done in windows …