LCD Brightness

From ThinkWiki
Jump to: navigation, search
This page is a stub

You can help ThinkWiki by expanding it.

Regular ACPI

This worked for my X61:

Once your brightness keys work, you can set the brightness by writing to the procfs:

# echo 100 > /proc/acpi/video/VID1/LCD0/brightness

using a script and acpid events. However this may lead to a bug (screen flickers) described on the Debian mailing list [[1]]. This bug is related to the X server as it does not occur on the tty1. To fix it change your xrandr backlight control to native:

$ $xrandr --output LVDS --set BACKLIGHT_CONTROL native

For my X61, these following scripts from this japanese site helped:

% cat /etc/acpi/video_brightnessdown.sh
#!/bin/sh
xbacklight -dec 10%
% cat /etc/acpi/video_brightnessup.sh
#!/bin/sh
xbacklight -inc 10%

2.6.26 kernel

If you are using a 2.6.26 kernel, you are supposed to use the regular ACPI backlight control instead of thinkpad-acpi, on any Lenovo (Windows Vista-capable) ThinkPad.

Modify the kernel config by first disabling CONFIG_THINKPAD_ACPI_VIDEO and then enabling both CONFIG_VIDEO_OUTPUT_CONTROL and CONFIG_ACPI_VIDEO [2] While you are at it, be sure to read the well-written help sections for the kernel config settings :)

Thinkpad-ACPI

If you have an older ThinkPad model, such as the T20, you may want to use thinkpad-acpi. You can adjust the brightness of your screen by software using either procfs or sysfs.

If the following commands fail, you may want to try other module parameters for thinkpad-acpi. I had to use backlight_mode=1 for example on my T20. Just add the following line to your /etc/modprobe.conf

options thinkpad-acpi brightness_mode=1

See the chapter LCD brightness control of Documentation/laptops/thinkpad-acpi.txt in the kernel sources for more informations.

Using procfs

To adjust the brightness to a certain level:

# echo 'level 3' > /proc/acpi/ibm/brightness

Just one level up or down:

# echo 'up' > /proc/acpi/ibm/brightness
# echo 'down' > /proc/acpi/ibm/brightness

See /proc/acpi/ibm/brightness for a list of all available commands.

Using sysfs

The sysfs-interface allows more a flexible method of brightness control:

Get the current brightness level:

# cat /sys/class/backlight/thinkpad_screen/actual_brightness

Get the highest brightness level:

# cat /sys/class/backlight/thinkpad_screen/max_brightness

Adjust the brightness to a certain level:

# echo 3 > /sys/class/backlight/thinkpad_screen/brightness

Ubuntu 8.10 Intrepid Ibex

The hardware keys work out of the box on a clean install of Ubuntu 8.10 Intrepid Ibex and openSUSE 11.1. No tweaking necessary.

X61 appears to have some problems; the hardware keys for adjusting brightness are recognized, but they don't actually change the brightness. Setting xrandr to native, as described above, fixes the problem.

Nvidia driver

The Nvidia driver does not enable Brightness Control by default. The solution is to add to the xorg.conf, using the xorg.conf.d mechanism:

Create the a new entry in xorg.conf.d:

sudo vim /usr/share/X11/xorg.conf.d/20-nvidia.conf

Add the following:

Section "Device"
	Identifier "NVIDIA"
	Driver "nvidia"
	Option  "NoLogo" "True"
	Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection

This should allow you to continue to use the dynamic xorg.conf for external monitors, etc...

If you have a hard-coded /etc/X11/xorg.conf, you can add the following:

 # Add to your "Device" section in /etc/X11/xorg.conf and restart X
 Option "RegistryDwords" "EnableBrightnessControl=1"

Ubuntu Bug #726692