LCD Brightness
This page is a stub |
---|
You can help ThinkWiki by expanding it. |
Contents
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
A bug cropped up for some with recent nvidia driver causing brightness controls not to work (For example, on my W520 using the nvidia binary driver). The solution seems to be adding a flag to enable brightness control by the nvidia driver.
# Add to your "Device" section in /etc/X11/xorg.conf and restart X Option "RegistryDwords" "EnableBrightnessControl=1"