Brightness doesn't change on Dell XPS15 9550 with 16.04

If I try to change screen brightness on my Dell XPS15 with Fn + F11 or Fn + F12 or in the System Settings Dialogue, nothing happens. The bar indicating the screen brightness changes but the screen stays at a constant brightness, except when I turn the brightness off, the screen goes dark. I tried changing the grub settings as indicated here: Unable to change the brightness on my Dell XPS 15 (L502X), but that didn't change anything. Has anyone encountered this problem before and can tell me how to solve it?


Solution 1:

I had the exact same behaviour than you so hopefully this will solve your issue:

In a terminal Ctrl + T type acpi_listen and press alternatively the luminosity up and down keys F11 and F12 you should get and output similar to the one below.

alexisv@SlingBeast-XPS15:~$ acpi_listen
 PNP0C14:02 000000d0 00000000
video/brightnessup BRTUP 00000086 00000000
 PNP0C14:02 000000d0 00000000
video/brightnessup BRTUP 00000086 00000000
 PNP0C14:02 000000d0 00000000
video/brightnessdown BRTDN 00000087 00000000
 PNP0C14:02 000000d0 00000000
video/brightnessdown BRTDN 00000087 00000000

That tells us the BIOS is registering the key presses and forwarding them to the OS correctly.

Now press Ctrl + C to exit from acpi_listen and type lspci, in my case I was looking for the Intel VGA chip PCI id.

00:01.0 PCI bridge: Intel Corporation Sky Lake PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 07)

Then still in the terminal type:

sudo nano /usr/share/X11/xorg.conf.d/20-intel.conf

The file didn't existed so I created it, paste into the newly created file the following content:

Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"
EndSection

The BusID section should match the "VGA compatible controller:..." ID retrieved previously with lspci. "00:02:0" becomes "PCI:0:2:0"

Save it, log out and restart.

That did for me. Creating the missing X config file got rid of the behaviour you described.

Let me know if it works.