Difference between revisions of "Backlight"

From ArchWiki
Jump to: navigation, search
(brightd)
(Added address for GM45)
(25 intermediate revisions by 19 users not shown)
Line 1: Line 1:
 
[[Category:Laptops]]
 
[[Category:Laptops]]
 
[[Category:Power management]]
 
[[Category:Power management]]
Screen brightness can often be tricky to control. On many machines, physical hardware switches are missing and software solutions may or may not work well. Make sure to find a working method for your hardware! Too bright screens can cause eye strain.
+
Screen brightness can often be tricky to control. On many machines, physical hardware switches are missing and software solutions may or may not work well. Make sure to find a working method for your hardware! Screens that are too bright can cause eye strain.
  
 
There are many ways to adjust the screen backlight of a monitor, laptop or integrated panel (such as the iMac) using software, but depending on hardware and model, sometimes only some options are available. This article aims to summarize all possible ways to adjust the backlight.
 
There are many ways to adjust the screen backlight of a monitor, laptop or integrated panel (such as the iMac) using software, but depending on hardware and model, sometimes only some options are available. This article aims to summarize all possible ways to adjust the backlight.
  
==Overview==
+
== Overview ==
 +
 
 
There are many ways to control brightness. According to this discussion[https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/397617] and this wiki page [https://wiki.ubuntu.com/Kernel/Debugging/Backlight], the control method could be divided into these categories:
 
There are many ways to control brightness. According to this discussion[https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/397617] and this wiki page [https://wiki.ubuntu.com/Kernel/Debugging/Backlight], the control method could be divided into these categories:
* brightness is controlled by vendor specified hotkey. And there is no interface for OS to adjust brightness.
+
* brightness is controlled by vendor-specified hotkey and there is no interface for the OS to adjust the brightness
* brightness is controlled by OS:
+
* brightness is controlled by the OS:
** brightness could be controlled by ACPI
+
** brightness can be controlled by ACPI
** brightness could be controlled by graphic driver.
+
** brightness can be controlled by graphic driver
All methods expose themselves to the user by /sys/class/brightness. And xrandr/xbacklight could use this folder and choose one method to control brightness. But it is still not very clear which one xbacklight prefers by default.
+
All methods are exposed to the user through /sys/class/brightness and xrandr/xbacklight can choose one method to control brightness. It is still not very clear which one xbacklight prefers by default.
 
''See FS#27677 for xbacklight, if you get "No outputs have backlight property."'' There is a temporary fix if xrandr/xbacklight does not choose the right directory in /sys/class/brightness: You can specify the one you want in xorg.conf by setting the "Backlight" option of the Device section to the name of that directory (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651741 at the bottom of the page for details).
 
''See FS#27677 for xbacklight, if you get "No outputs have backlight property."'' There is a temporary fix if xrandr/xbacklight does not choose the right directory in /sys/class/brightness: You can specify the one you want in xorg.conf by setting the "Backlight" option of the Device section to the name of that directory (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651741 at the bottom of the page for details).
* brightness is controlled by HW register throught setpci
+
* brightness is controlled by HW register through setpci
 +
 
 +
== ACPI ==
  
==ACPI==
 
 
It is often possible to adjust the backlight by ACPI. This controls the actual LEDs or cathodes of the screen. When this ACPI option is available, the illumination is controllable using a GUI slider in the Display/Screen system settings or by simple commands on the CLI.
 
It is often possible to adjust the backlight by ACPI. This controls the actual LEDs or cathodes of the screen. When this ACPI option is available, the illumination is controllable using a GUI slider in the Display/Screen system settings or by simple commands on the CLI.
  
Line 32: Line 34:
 
The maximum brightness (often 15) can be found by running {{ic|cat}}:
 
The maximum brightness (often 15) can be found by running {{ic|cat}}:
  
# cat /sys/class/backlight/acpi_video0/max_brightness
+
{{hc|$ cat /sys/class/backlight/acpi_video0/max_brightness|
15
+
15
 +
}}
  
 
Brightness can then be set (as root) with {{ic|echo}}. Obviously you cannot go any higher than your screen's maximum brightness. The values for maximum brightness and brightness in general vary wildly among cards.  
 
Brightness can then be set (as root) with {{ic|echo}}. Obviously you cannot go any higher than your screen's maximum brightness. The values for maximum brightness and brightness in general vary wildly among cards.  
Line 39: Line 42:
 
  # echo 5 > /sys/class/backlight/acpi_video0/brightness
 
  # echo 5 > /sys/class/backlight/acpi_video0/brightness
  
Sometimes ACPI does not work well due to different motherboard implementations and ACPI quirks. This include some models with dual graphics (e.g. Nvidia-optimus/Radeon with intel (i915)) and some examples with this problem in notebooks such as Dell Studio, Dell XPS 14/15/17 and some Lenovo series, Kamal Mostafa kernel developer make [https://launchpad.net/~kamalmostafa/+archive/linux-kamal-mjgbacklight patches] for solved this issue included after 3.1 kernel version. You can try adding the following kernel parameters in your bootloader(grub, syslinux...) to adjust ACPI model:
+
Sometimes, ACPI does not work well due to different motherboard implementations and ACPI quirks. This includes some laptops with dual graphics (e.g. Nvidia/Radeon dedicated GPU with Intel/AMD integrated GPU) some examples of laptops with these problems are Dell Studio, Dell XPS 14/15/17 and some Lenovo series' laptops. Kamal Mostafa, a kernel developer made [https://launchpad.net/~kamalmostafa/+archive/linux-kamal-mjgbacklight patches] for solving this problem - these are included after Linux 3.1 . Additionally, on Nvidia-optimus laptops, the kernel parameter nomodeset can interfere with the ability to adjust the backlight. You can try adding the following kernel parameters in your bootloader(grub, syslinux...) to adjust ACPI model:
 +
 
 +
video.use_native_backlight=1
 +
 
 +
{{Note|This kernel setting was added in '''Linux 3.13'''. }}
 +
 
 +
or
  
 
  acpi_osi=Linux acpi_backlight=vendor
 
  acpi_osi=Linux acpi_backlight=vendor
Line 48: Line 57:
 
''acpi_backlight=vendor will prefer vendor specific driver (e.g. thinkpad_acpi, sony_acpi, etc.) instead of the ACPI video.ko driver.''
 
''acpi_backlight=vendor will prefer vendor specific driver (e.g. thinkpad_acpi, sony_acpi, etc.) instead of the ACPI video.ko driver.''
  
==Switching off the backlight==
+
For Lenovo IdeaPad laptops, you may also need to blacklist the {{ic|ideapad_laptop}} module by adding {{ic|blacklist ideapad_laptop}} to {{ic|/etc/modprobe.d/blacklist.conf}}, creating the file if needed. ([http://askubuntu.com/a/304762 Source])
 +
 
 +
{{Tip|Also, you can try:
 +
<nowiki>
 +
acpi_osi="!Windows 2012" acpi_backlight=vendor # On some new laptops with pre-installed Windows 8 and/or hybrid graphics
 +
acpi_backlight=legacy
 +
acpi_osi=Linux
 +
</nowiki>
 +
and all combinations of these lines.
 +
 
 +
The first line works on asus G750 notebook (keys don't work, only from {{ic|/sys/class/backlight/asus-nb-wmi/brightness}}. You need to also do
 +
# modprobe asus-nb-wmi
 +
}}
 +
{{Tip|If you have got intel_backlight and a manufacturer backlight (dell, toshiba, etc.) that stops working after suspend, try:
 +
<nowiki>acpi_backlight=vendor</nowiki>
 +
and the following X11 quirk ({{ic|/etc/X11/xorg.conf.d/80-backlight.conf}}):
 +
<nowiki>
 +
Section "Device"
 +
    Identifier  "Intel Graphics"
 +
    Driver      "intel"
 +
    Option      "AccelMethod"    "sna"
 +
    Option      "Backlight"      "intel_backlight" # use your backlight that works here
 +
    Driver      "intel"
 +
    BusID      "PCI:0:2:0"
 +
EndSection</nowiki>
 +
}}
 +
 
 +
{{Note|Disabling legacy boot on Dell XPS13 breaks backlight support.}}
 +
 
 +
== Switching off the backlight ==
  
 
Switching off the backlight (for example when one locks the notebook) can be useful to conserve battery energy. Ideally the following command inside of a graphical session should work:
 
Switching off the backlight (for example when one locks the notebook) can be useful to conserve battery energy. Ideally the following command inside of a graphical session should work:
Line 59: Line 97:
 
For example, this can be put to use when closing the notebook lid as outlined in the entry for [[Acpid#Laptop_Monitor_Power_Off|Acipd]].
 
For example, this can be put to use when closing the notebook lid as outlined in the entry for [[Acpid#Laptop_Monitor_Power_Off|Acipd]].
  
 +
== Backlight utilities ==
 +
 +
=== xbacklight ===
  
==Backlight utilities==
 
===xbacklight===
 
 
You can adjust the backlight through the xorg-server command {{ic|xbacklight}}.  The utility is provided by the {{Pkg|xorg-xbacklight}} package in [extra].
 
You can adjust the backlight through the xorg-server command {{ic|xbacklight}}.  The utility is provided by the {{Pkg|xorg-xbacklight}} package in [extra].
  
Line 72: Line 111:
 
  xbacklight -dec 40
 
  xbacklight -dec 40
  
===xcalib===
+
=== xcalib ===
The program [http://xcalib.sourceforge.net/ xcalib] can be downloaded from [https://aur.archlinux.org/packages.php?ID=10969 AUR] and used to dim the screen. Again, the user gotbletu posted a demonstration on [http://www.youtube.com/watch?v=A9xsvntT6i4 Youtube]. This program can correct gamma, invert colors and reduce contrast, the latter of which we use in this case:
+
 
 +
The package {{AUR|xcalib}} ([http://xcalib.sourceforge.net/ upstream url]) is available in the [[AUR]] and can be used to dim the screen. Again, the user gotbletu posted a demonstration on [http://www.youtube.com/watch?v=A9xsvntT6i4 Youtube]. This program can correct gamma, invert colors and reduce contrast, the latter of which we use in this case:
  
 
* dim down:
 
* dim down:
Line 80: Line 120:
 
This program uses ICC technology to interact with X11 and while the screen is dimmed, you may find that the mouse cursor is just as bright as before.
 
This program uses ICC technology to interact with X11 and while the screen is dimmed, you may find that the mouse cursor is just as bright as before.
  
===redshift===
+
=== redshift ===
The program [http://jonls.dk/redshift/ redshift] in the community repository uses {{ic|randr}} to adjust the screen brightness depending on the time of day and your geographic position. It can also do RGB gamma corrections and set color temperatures. As with {{ic|xcalib}}, this is very much a software solution and the look of the mouse cursor is unaffected. To execute a single quick adjustment of the brightness, try something like this:
+
 
 +
The program [[redshift]] in the official repositories uses {{ic|randr}} to adjust the screen brightness depending on the time of day and your geographic position. It can also do RGB gamma corrections and set color temperatures. As with {{ic|xcalib}}, this is very much a software solution and the look of the mouse cursor is unaffected. To execute a single quick adjustment of the brightness, try something like this:
  
 
  redshift -o -l 0:0 -b 0.8 -t 6500:6500
 
  redshift -o -l 0:0 -b 0.8 -t 6500:6500
Line 87: Line 128:
 
{{Tip|If your longitude is west or your latitude is south, you should input it as negative.
 
{{Tip|If your longitude is west or your latitude is south, you should input it as negative.
 
Example for Berkeley, CA:  
 
Example for Berkeley, CA:  
  gtk-redshift -l 37.8717:-122.2728  
+
  redshift-gtk -l 37.8717:-122.2728  
 
}}
 
}}
  
===relight===
+
=== relight ===
[http://xyne.archlinux.ca/projects/relight relight] is available in [http://xyne.archlinux.ca/repos Xyne's repos] and [https://aur.archlinux.org/packages.php?ID=66487 the AUR]. The package provides a service to automatically restore previous backlight settings during reboot along using the ACPI method explained above. The package also contains a dialog-based menu for selecting and configuring backlights for different screens.
+
 
 +
[http://xyne.archlinux.ca/projects/relight relight] is available in [http://xyne.archlinux.ca/repos Xyne's repos] and as package {{AUR|relight}} in the [[AUR]]. The package provides a service to automatically restore previous backlight settings during reboot along using the ACPI method explained above. The package also contains a dialog-based menu for selecting and configuring backlights for different screens.
 +
 
 +
=== setpci (use with great care) ===
  
===setpci (use with great care)===
 
 
It is possible to set the register of the graphic card to adjust the backlight. It means you adjust the backlight by manipulating the hardware directly, which can be risky and generally is not a good idea. Not all of the graphic cards support this method.
 
It is possible to set the register of the graphic card to adjust the backlight. It means you adjust the backlight by manipulating the hardware directly, which can be risky and generally is not a good idea. Not all of the graphic cards support this method.
  
Line 99: Line 142:
 
  # setpci -s 00:02.0 F4.B=0
 
  # setpci -s 00:02.0 F4.B=0
  
===Calise===
+
=== Calise ===
 +
 
 
The software [http://calise.sourceforge.net/wordpress/ calise] can be found in AUR.
 
The software [http://calise.sourceforge.net/wordpress/ calise] can be found in AUR.
 
* Stable version: {{AUR|calise}}
 
* Stable version: {{AUR|calise}}
Line 107: Line 151:
 
For more information, calise has its own wiki: [http://calise.sourceforge.net/mediawiki/index.php/Main_Page Calise wiki].
 
For more information, calise has its own wiki: [http://calise.sourceforge.net/mediawiki/index.php/Main_Page Calise wiki].
  
The main features of this program are that it's very precise, very light on resource usage, and with the daemon version (.service file for systemd users available too), it has practically no impact on battery life.
+
The main features of this program are that it is very precise, very light on resource usage, and with the daemon version (.service file for systemd users available too), it has practically no impact on battery life.
  
===brightd===
+
=== brightd ===
Macbook-inspired {{AUR|brightd}} automatically dims (but doesn't put to standby) the screen when there is no user input for some time. A good companion of [[Display Power Management Signaling]] so that the screen doesn't blank out in a sudden.
+
 
 +
Macbook-inspired {{AUR|brightd}} automatically dims (but does not put to standby) the screen when there is no user input for some time. A good companion of [[Display Power Management Signaling]] so that the screen does not blank out in a sudden.
  
 
== KDE ==
 
== KDE ==
[[KDE]] users can adjust the backlight via System Settings -> Power Management -> Power Profiles.
+
 
 +
[[KDE]] users can adjust the backlight via ''System Settings > Power Management > Power Profiles''.
 
If you want set backlight before kdm just put in /usr/share/config/kdm/Xsetup :
 
If you want set backlight before kdm just put in /usr/share/config/kdm/Xsetup :
  
 
  xbacklight -inc 10
 
  xbacklight -inc 10
  
== NVIDIA Settings ==
+
== NVIDIA settings ==
 +
 
 
Users of [[NVIDIA|NVIDIA's proprietary drivers]] users can change display brightness via the nvidia-settings utility under "X Server Color Correction." However, note that this has absolutely nothing to do with backlight (intensity), it merely adjusts the color output. (Reducing brightness this way is a power-inefficient last resort when all other options fail; increasing brightness spoils your color output completely, in a way similar to overexposed photos.)
 
Users of [[NVIDIA|NVIDIA's proprietary drivers]] users can change display brightness via the nvidia-settings utility under "X Server Color Correction." However, note that this has absolutely nothing to do with backlight (intensity), it merely adjusts the color output. (Reducing brightness this way is a power-inefficient last resort when all other options fail; increasing brightness spoils your color output completely, in a way similar to overexposed photos.)
  
 
== Backlight PWM modulation frequency (Intel i915 only) ==
 
== Backlight PWM modulation frequency (Intel i915 only) ==
 +
 
Laptops with LED backlight are known to have screen flicker sometimes. The reason for this, is that it is hard enough to dim LEDs by limiting direct current flowing through. It is easier to control brightness by switching LEDs on and off fast enough.
 
Laptops with LED backlight are known to have screen flicker sometimes. The reason for this, is that it is hard enough to dim LEDs by limiting direct current flowing through. It is easier to control brightness by switching LEDs on and off fast enough.
  
Line 128: Line 176:
 
If you have an Intel i915 GPU, then it may be possible to adjust PWM modulation frequency to eliminate flicker.
 
If you have an Intel i915 GPU, then it may be possible to adjust PWM modulation frequency to eliminate flicker.
  
Install intel-gpu-tools from community repo
+
Install {{Pkg|intel-gpu-tools}} from the official repositories. Get value of the register, that determines PWM modulation frequency
  
# pacman -S intel-gpu-tools
+
{{hc|# intel_reg_read 0xC8254|
 +
0xC8254 : 0x12281228
 +
}}
  
Get value of the register, that determines PWM modulation frequency
+
The value returned represents period of PWM modulation. So to increase PWM modulation frequency, value of the register has to be reduced. For example, to double frequency from the previous listing, execute:
 
+
# intel_reg_read 0xC8254
+
0xC8254 : 0x12281228
+
 
+
The value returned represents period of PWM modulation. So to increase PWM modulation frequency, value of the register has to be reduced. For example, to double frequency from the previous listing, execute
+
  
 
  # intel_reg_write 0xC8254 0x09140914
 
  # intel_reg_write 0xC8254 0x09140914
Line 144: Line 189:
  
 
Refer to dedicated topic for details https://bbs.archlinux.org/viewtopic.php?pid=1245913
 
Refer to dedicated topic for details https://bbs.archlinux.org/viewtopic.php?pid=1245913
 +
 +
If you are using the Intel GM45 chipset use address 0x61254 instead of 0xC8254.
 +
 +
{{Note|1=Backlight percentages are wrong informed after this manipulation, and Intel developers do not support this (cf. [https://bugs.freedesktop.org/show_bug.cgi?id=76217 bug 76217]).
 +
You can get the right brightness percentage through the following command:
 +
 +
# intel_backlight
 +
 +
However, xbacklight -inc and -dec will not work as expected}}
 +
 +
== Troubleshooting ==
 +
 +
=== Backlight fails to adjust on Intel chipsets with Kernel 3.13 ===
 +
Adding the following file helps.
 +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 +
Section "Device"
 +
        Driver      "intel"
 +
        Option      "Backlight"  "intel_backlight"
 +
 +
EndSection}}

Revision as of 22:10, 1 April 2014

Screen brightness can often be tricky to control. On many machines, physical hardware switches are missing and software solutions may or may not work well. Make sure to find a working method for your hardware! Screens that are too bright can cause eye strain.

There are many ways to adjust the screen backlight of a monitor, laptop or integrated panel (such as the iMac) using software, but depending on hardware and model, sometimes only some options are available. This article aims to summarize all possible ways to adjust the backlight.

Overview

There are many ways to control brightness. According to this discussion[1] and this wiki page [2], the control method could be divided into these categories:

  • brightness is controlled by vendor-specified hotkey and there is no interface for the OS to adjust the brightness
  • brightness is controlled by the OS:
    • brightness can be controlled by ACPI
    • brightness can be controlled by graphic driver

All methods are exposed to the user through /sys/class/brightness and xrandr/xbacklight can choose one method to control brightness. It is still not very clear which one xbacklight prefers by default. See FS#27677 for xbacklight, if you get "No outputs have backlight property." There is a temporary fix if xrandr/xbacklight does not choose the right directory in /sys/class/brightness: You can specify the one you want in xorg.conf by setting the "Backlight" option of the Device section to the name of that directory (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651741 at the bottom of the page for details).

  • brightness is controlled by HW register through setpci

ACPI

It is often possible to adjust the backlight by ACPI. This controls the actual LEDs or cathodes of the screen. When this ACPI option is available, the illumination is controllable using a GUI slider in the Display/Screen system settings or by simple commands on the CLI.

Different cards might manage this differently. Check /sys/class/backlight to find out:

# ls /sys/class/backlight/
intel_backlight

So this particular backlight is managed by an Intel card. It is called acpi_video0 on an ATI card. In the following example, acpi_video0 is used.

The directory contains the following files and folders:

actual_brightness  brightness         max_brightness     subsystem/    uevent             
bl_power           device/            power/             type

The maximum brightness (often 15) can be found by running cat:

$ cat /sys/class/backlight/acpi_video0/max_brightness
15

Brightness can then be set (as root) with echo. Obviously you cannot go any higher than your screen's maximum brightness. The values for maximum brightness and brightness in general vary wildly among cards.

# echo 5 > /sys/class/backlight/acpi_video0/brightness

Sometimes, ACPI does not work well due to different motherboard implementations and ACPI quirks. This includes some laptops with dual graphics (e.g. Nvidia/Radeon dedicated GPU with Intel/AMD integrated GPU) - some examples of laptops with these problems are Dell Studio, Dell XPS 14/15/17 and some Lenovo series' laptops. Kamal Mostafa, a kernel developer made patches for solving this problem - these are included after Linux 3.1 . Additionally, on Nvidia-optimus laptops, the kernel parameter nomodeset can interfere with the ability to adjust the backlight. You can try adding the following kernel parameters in your bootloader(grub, syslinux...) to adjust ACPI model:

video.use_native_backlight=1
Note: This kernel setting was added in Linux 3.13.

or

acpi_osi=Linux acpi_backlight=vendor

or

acpi_osi=Linux acpi_backlight=legacy

acpi_backlight=vendor will prefer vendor specific driver (e.g. thinkpad_acpi, sony_acpi, etc.) instead of the ACPI video.ko driver.

For Lenovo IdeaPad laptops, you may also need to blacklist the ideapad_laptop module by adding blacklist ideapad_laptop to /etc/modprobe.d/blacklist.conf, creating the file if needed. (Source)

Tip: Also, you can try:
 acpi_osi="!Windows 2012" acpi_backlight=vendor # On some new laptops with pre-installed Windows 8 and/or hybrid graphics
 acpi_backlight=legacy
 acpi_osi=Linux
 

and all combinations of these lines.

The first line works on asus G750 notebook (keys don't work, only from /sys/class/backlight/asus-nb-wmi/brightness. You need to also do

# modprobe asus-nb-wmi
Tip: If you have got intel_backlight and a manufacturer backlight (dell, toshiba, etc.) that stops working after suspend, try:
acpi_backlight=vendor

and the following X11 quirk (/etc/X11/xorg.conf.d/80-backlight.conf):

 Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "AccelMethod"     "sna"
    Option      "Backlight"       "intel_backlight" # use your backlight that works here
    Driver      "intel"
    BusID       "PCI:0:2:0"
 EndSection
Note: Disabling legacy boot on Dell XPS13 breaks backlight support.

Switching off the backlight

Switching off the backlight (for example when one locks the notebook) can be useful to conserve battery energy. Ideally the following command inside of a graphical session should work:

sleep 1 && xset dpms force off

The backlight should switch on again on mouse movement or keyboard input. If the previous command does not work, there is a chance that vbetool works. Note, however, that in this case the backlight must be manually activated again. The command is as follows:

vbetool dpms off

To activate the backlight again:

vbetool dpms on

For example, this can be put to use when closing the notebook lid as outlined in the entry for Acipd.

Backlight utilities

xbacklight

You can adjust the backlight through the xorg-server command xbacklight. The utility is provided by the xorg-xbacklight package in [extra].

A useful demonstration was posted by gotbletu on YouTube. He suggests the following commands to adjust the backlight:

  • brighten up:
xbacklight -inc 40
  • dim down:
xbacklight -dec 40

xcalib

The package xcalibAUR (upstream url) is available in the AUR and can be used to dim the screen. Again, the user gotbletu posted a demonstration on Youtube. This program can correct gamma, invert colors and reduce contrast, the latter of which we use in this case:

  • dim down:
xcalib -co 40 -a

This program uses ICC technology to interact with X11 and while the screen is dimmed, you may find that the mouse cursor is just as bright as before.

redshift

The program redshift in the official repositories uses randr to adjust the screen brightness depending on the time of day and your geographic position. It can also do RGB gamma corrections and set color temperatures. As with xcalib, this is very much a software solution and the look of the mouse cursor is unaffected. To execute a single quick adjustment of the brightness, try something like this:

redshift -o -l 0:0 -b 0.8 -t 6500:6500
Tip: If your longitude is west or your latitude is south, you should input it as negative.

Example for Berkeley, CA:

redshift-gtk -l 37.8717:-122.2728 

relight

relight is available in Xyne's repos and as package relightAUR in the AUR. The package provides a service to automatically restore previous backlight settings during reboot along using the ACPI method explained above. The package also contains a dialog-based menu for selecting and configuring backlights for different screens.

setpci (use with great care)

It is possible to set the register of the graphic card to adjust the backlight. It means you adjust the backlight by manipulating the hardware directly, which can be risky and generally is not a good idea. Not all of the graphic cards support this method.

When using this method, you need to use lspci first to find out where your graphic card is.

# setpci -s 00:02.0 F4.B=0

Calise

The software calise can be found in AUR.

It basically computes ambient brightness, and set screen's correct backlight, simply making captures from the webcam, for laptop without light sensor. For more information, calise has its own wiki: Calise wiki.

The main features of this program are that it is very precise, very light on resource usage, and with the daemon version (.service file for systemd users available too), it has practically no impact on battery life.

brightd

Macbook-inspired brightdAUR automatically dims (but does not put to standby) the screen when there is no user input for some time. A good companion of Display Power Management Signaling so that the screen does not blank out in a sudden.

KDE

KDE users can adjust the backlight via System Settings > Power Management > Power Profiles. If you want set backlight before kdm just put in /usr/share/config/kdm/Xsetup :

xbacklight -inc 10

NVIDIA settings

Users of NVIDIA's proprietary drivers users can change display brightness via the nvidia-settings utility under "X Server Color Correction." However, note that this has absolutely nothing to do with backlight (intensity), it merely adjusts the color output. (Reducing brightness this way is a power-inefficient last resort when all other options fail; increasing brightness spoils your color output completely, in a way similar to overexposed photos.)

Backlight PWM modulation frequency (Intel i915 only)

Laptops with LED backlight are known to have screen flicker sometimes. The reason for this, is that it is hard enough to dim LEDs by limiting direct current flowing through. It is easier to control brightness by switching LEDs on and off fast enough.

However, frequency of the switching (so-called PWM modulation frequency) is not high enough actually, and some people may notice flicker either explicitly or by feeling headache and eyestrain.

If you have an Intel i915 GPU, then it may be possible to adjust PWM modulation frequency to eliminate flicker.

Install intel-gpu-tools from the official repositories. Get value of the register, that determines PWM modulation frequency

# intel_reg_read 0xC8254
0xC8254 : 0x12281228

The value returned represents period of PWM modulation. So to increase PWM modulation frequency, value of the register has to be reduced. For example, to double frequency from the previous listing, execute:

# intel_reg_write 0xC8254 0x09140914

You can use online calculator to calculate desired value http://devbraindom.blogspot.com/2013/03/eliminate-led-screen-flicker-with-intel.html

Refer to dedicated topic for details https://bbs.archlinux.org/viewtopic.php?pid=1245913

If you are using the Intel GM45 chipset use address 0x61254 instead of 0xC8254.

Note: Backlight percentages are wrong informed after this manipulation, and Intel developers do not support this (cf. bug 76217).

You can get the right brightness percentage through the following command:

# intel_backlight
However, xbacklight -inc and -dec will not work as expected

Troubleshooting

Backlight fails to adjust on Intel chipsets with Kernel 3.13

Adding the following file helps.

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"

EndSection