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.
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"