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 []. 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
% cat /etc/acpi/video_brightnessdown.sh #!/bin/sh xbacklight -dec 10%
% cat /etc/acpi/video_brightnessup.sh #!/bin/sh xbacklight -inc 10%
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  While you are at it, be sure to read the well-written help sections for the kernel config settings :)
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.
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.
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.
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"