4

I'm using a Lenovo laptop with Intel video drivers, and I'm trying to control the brightness. I installed the xbacklight and xserver-xorg-video-intel packages, added these lines to /etc/X11/xorg.conf:

Section "Device"
    Identifier  "Card0"
    Driver      "intel"
    Option      "Backlight"  "intel_backlight"
EndSection

and I verified that the /sys/class/backlight/intel_backlight/ directory does exist. When I run xbacklight, I get the error:

No outputs have backlight property

How do I configure the backlight? I'm using Debian 9 x64 and the system is fully up to date.

EDIT: I can manually change the brightness by elevating my permissions with sudo and writing to the brightness file:

echo 500 > /sys/class/backlight/intel_backlight/brightness

EDIT: I get the same "No outputs have backlight property" if I run xbacklight as root or with sudo.

  • 1
    Not all drivers implement backlight. Are you sure you are using Intel and not framebuffer? – Rui F Ribeiro Nov 13 '18 at 15:40
  • @RuiFRibeiro I'm not sure. How do I check? I assumed that the intel_backlight directory meant that I was using Intel drivers. – Michael A Nov 13 '18 at 15:42
  • Have you tried running xbacklight using sudo or as root ? – cesar Nov 16 '18 at 19:12
  • @cesar Yes. I get the same errors. I updated the question to reflect that. Thanks! – Michael A Nov 16 '18 at 21:43
2
+25

There can be numerous reason why this doesn't work, and they are all to complicated to ask in a comment to the question, so I'll leave this as a resource here - and if none of these work feel free to comment rather than down-voting and I'll remove it (or leave for others who end up here with the same problem but different causes).

The first thing you can try is adding one of these kernel parameters:

acpi_osi=Linux
acpi_osi="!Windows 2012"
acpi_osi=

This is a pretty common issue where the backlight stops working after a suspend (I know this isn't directly related, but might be worth mentioning).

Another issue might be that you're lacking sufficient permission to actually modify the brightness (again, probably not related to OP since the error message is usually different and OP has already tried it). If that's the case, modify the udev-rules by changing/adding this to /etc/udev/rules.d/backlight.rules:

ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

Another, also common issue, is when used in conjunction with multiple graphic cards or hybrid graphics (like the Optimus project).

If so, you can try to add one of the following kernel parameters:

acpi_backlight=video
acpi_backlight=vendor
acpi_backlight=native
acpi_backlight=none    # <-- Mainly for AMD/ATI drivers

Finally, what OP might be here for:

Change /etc/X11/xorg.conf.d/20-intel.conf to reflect:

Section "Device"
    Identifier  "Intel Graphics" 
    Driver      "intel"
    Option      "Backlight"  "intel_backlight"
EndSection

Odds are xrandr or xbacklight have just got a faulty mapping against /sys/class/backlight/<path>. Thus, manually setting it to intel_backlight might solve your issue. All that might be wrong is the Identifier, judging by the question. If it still doesn't work, verify and make sure that the Device-config is actually the one in use, because it really sounds like a mapping issue between xrandr/xbacklight and the path where it thinks it'll find the backlight-directory.

Any of these might give you a clue or hint as to which driver and config is being used:

lspci | grep VGA
lsmod | grep "kms\|drm"
find /dev -group video
cat /proc/cmdline
find /etc/modprobe.d/
cat /etc/modprobe.d/*kms*
glxinfo | grep -i "vendor\|rendering"
grep LoadModule /var/log/Xorg.0.log
egrep -i " connected|card detect|primary dev|Setting driver" /var/log/Xorg.0.log
udevadm info -a -p /sys/class/backlight/intel_backlight/

I hope it's as simple as this; if it's not, again, I'd be happy to change my answer or delete it all together. Just sharing some knowledge gathered while struggling with the same thing. bugs.debian.org issue

Oh, and the kernel parameter nomodeset tends to interfere with backlight settings. I don't know why. But if whoever ends up here uses it, try to remove that and see if at least the backlight kicks in again.

  • 1
    You may want to add to your "test and clues area" .... udevadm info -a -p /sys/class/backlight/intel_backlight/ – RubberStamp Nov 17 '18 at 23:02
  • Good one @RubberStamp. Some times the simplest of tools gets you the furthest. – Torxed Nov 17 '18 at 23:05
0

Every step required for xbacklight control

Follow these steps:

  1. $ sudo nano /etc/default/grub and replace the corresponding line with GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
  2. $ sudo update-grub
  3. No joking, make sure that the appropriate drivers are actually installed: $ sudo apt install xbacklight xorg xserver-xorg-video-intel
  4. Issuing $ find /sys -type f -name brightness should yield something like /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness
  5. $ cd /sys/class This directory should contain a soft link called brightness to the brightness device discovered in the previous step. Should it be missing, create it: $ sudo ln -s /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness /sys/class/brightness
  6. $ sudo nano /etc/X11/xorg.conf should read:
Section "Device"
    Identifier      "Device0"
    Driver          "intel"
    Option          "Backlight"      "intel_backlight"
EndSection

Section "Monitor"
    Identifier      "Monitor0"
EndSection

Section "Screen"
    Identifier      "Screen0"
    Monitor         "Monitor0"
    Device          "Device0"
EndSection
  1. The assignment of the physical XF86MonBrightnessDown and XF86MonBrightnessUp keys is explained here for Xubuntu LTS or XFCE users.
  2. Finally, reboot for these changes to take effect.
0

If anyone finds this using Arch Linux, I simply replaced xorg-backlight with acpilight, and then sudo backlight -set 10 works fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.