Cannot change brightness (Ubuntu 16.04 LTS and onward)

This does not make your brightness function keys work, but is a workaround.

Install Brightness Controller with the following commands:

sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt update

For Version 1 with up to 4 Monitor Support:

sudo apt install brightness-controller-simple

Brightness Controller Version 1

For Version 2 with Multi Monitor Support and Color Temperature support:

sudo apt install brightness-controller

enter image description here

Note: This does not decrease the intensity of backlight, so won't save your batteries. But you can use this as a last resort to save your eyes. This also works in desktops, where there is no option to control brightness.


Hardware brightness buttons

Since Ubuntu LTS 18.04

Here is every step required for xbacklight control:

  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. $ cat /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
    

    If it doesn't, edit it with $ sudo nano /etc/X11/xorg.conf

  7. The assignment of the physical XF86MonBrightnessDown and XF86MonBrightnessUp keys is explained here for Xubuntu LTS or XFCE users.

  8. Finally, reboot for these changes to take effect.

Finer-grained brightness control (all Ubuntu versions)

If brightness control happens to be too coarse, then make this additional adjustment.

Ubuntu LTS 16.04

To find out if you have integrated Intel video graphics, enter the following command:

$ ls /sys/class/backlight/
    intel_backlight  panasonic

At least intel_backlight should be mentioned, most probably in addition to an OEM name like for example panasonic, dell_backlight, etc.

If this is the case, proceed with creating the following file

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

containing the following lines:

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

Reboot, and enjoy your backlight buttons! [Source]

Before Ubuntu LTS 16.04

Under (X)Ubuntu 14.04 LTS, brightness control on my Panasonic Toughbook CF-52 used to work fine by adding acpi_osi=Linux to the GRUB_CMDLINE_LINUX_DEFAULT= line in /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"

and issuing

$ sudo update-grub

after editing and before rebooting.


Another option is the application Redshift, which in addition to adjusting brightness can also adjust the color temperature to reduce the blue light at night.

Example usage: redshift -b 0.8 will set the brightness to 0.8 on a scale of 0 to 1