Screen brightness on Intel - Ubuntu 14.04


Some people, including myself, have problems with hardware screen brightness buttons on laptops equipped with Intel graphics card. Not a big thing, one might say, but I like when things work as they supposed to, especially when I need them. I usually spend quite a while on a train with my laptop, and turning the brightness down just a bit can give me those few more precious minutes of juice.

Solved!

After a bit of digging, I have learnt that the problem has been solved and easily. Moreover, there is not one but two solutions!

There are basically two different routes you can take it:

  • xorg configuration
  • kernel boot parameters

Let's have a quick look at them.

Solution 1 - xorg configuration

Xorg usually does not require custom config file unless you want to do something fancy. Of course you can consider bringing back basic functionality as fancy. If that's the case, this route is perfect.

First of all, have a look at your PCI bus, in order to identify your card:

$ lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Mars [Radeon HD 8730M] (rev ff)

That's how it looks on my machine. I am interested in the Intel card, so I need to remember its bus id 00:02.0.

Next you need to create the config file:
$ sudo nano /usr/share/X11/xorg.conf.d/20-intel.conf

and put the following content in, which will tell the xorg driver to use intel_backlight:

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

Please note that the BusID should match.

Save, restart your Xorg and you should be able to enjoy controlling brigtness from your keyboard.

Solution 2 - kernel boot parameter

This solution has two versions, one for kernels pre-3.13 and another for kernels 3.13+. In both cases you need to change the file /etc/default/grub and add a boot option to the kernel. The difference is in the actual option you need to put there. Here is what needs doing.

  • Open the grub config file:

    $ sudo nano /etc/default/grub.
  • Look for GRUB_CMDLINE_LINUX and change its value like so:
    • For kernels < 3.13

      GRUB_CMDLINE_LINUX="acpi_osi=Linux acpi_backlight=vendor
    • For kernels >= 3.13

      GRUB_CMDLINE_LINUX="acpi_osi=Linux video.use_native_backlight=1"
  • Save the file.
  • Update grub:

    $ sudo update-grub
  • Reboot.
  • Enjoy.

If you need to know which kernel you are running, simply say:
$ uname -r

And that's it.

Resources

To save you some googling, here's what I came across:

Disclaimer

Works for me on Inspiron 17R 5721 with dual graphics, as mentioned above. Considering what people say on forums, it works for them as well. I hope it will work for you.