Modem

Bluetooth

If you have thinkpad-acpi kernel module loaded, you can enable and disable Bluetooth from command line. To enable:

# echo 1 > /sys/devices/platform/thinkpad_acpi/bluetooth_enable

To disable:

# echo 0 > /sys/devices/platform/thinkpad_acpi/bluetooth_enable

To disable or enable Bluetooth at startup, add one of the above commands to /etc/rc.local.

The bluetooth module requires uhci_hcd. Make sure /etc/modprobe.d/modprobe.conf does not blacklist it.

For everything else related to Bluetooth, follow the procedure described in Bluetooth section of the Arch Wiki.

Graphics/Xorg Configuration

Note that it's possible to switch the graphics adapter by only restarting X, but It's quite useless since you can't power up/down a graphic-card without rebooting. So it's either both graphic-card on at all times, or do the switching in the BIOS.

So please press the ThinkVantag-button» during boot up and enable either the Integrated or the Discrete graphics cards in your BIOS's "Config->Display" menu.

Audio

Once you have ALSA installed, fire up alsamixer and make sure that sound is not muted. You might also want to press the Volume Up or Volume Down button. It seems than the Mute button mutes everything, even system beeps. Pressing the Volume Up or Volume Down button can unmute, but not pressing the Mute button again.

Multimedia Keys

The screen brightness controls and the flashlight work without any tweaking. The other keys can be mapped using xev and xbindkeys. By following this guide you should be able to get everything working, but here's summary :

First, open a terminal and type xev. This starts the "Event tester".

Place your cursor on the "Event tester" window.

When you press a key on your keyboard or move your mouse, it should get displayed in a terminal. For instance, this is what shows up if you press Fn+F2

Now, the actual action will performed on XF86Sleep or XF86Suspend is configurable in session policy, so it may vary (e.g. depending on desktop environment).
If nomenclature of XF86Standby, XF86Hibernate or XF86Sleep is confusing, check the thread suspend / hibernate nomenclature for in-depth explanation.

Mute

To get the mute button to work, it is necessary to pass the string acpi_osi="Linux" to the kernel as a boot parameter. In GRUB2, add it to the "linux" line. See here for more details.

With the 3.1 bios, it seems that the mute button works normally (set it up the same as the volume buttons with, for instance, "amixer set Master toggle").

ACPI

To enable the fan speed control, it's necessary to load the thinkpad_acpi with option fan_control=1. After the thinkpad_acpi module is loaded with this option, you can monitor and adjust the fan speed via /proc/acpi/ibm/fan.

SUSPEND-RESUME

People have been having issues with suspend resume with the current intel xf86-video-intel 2.4.3.1 drivers in combination with the 4500mhd chipset. This is apparently an issue with concurrency as adding the following script (with mod 755) in /etc/pm/sleep.d fixes things. to some extent...

#!/bin/sh
# Workaround for concurrency bug in xserver-xorg-video-intel 2:2.4.1-1ubuntu10.
# Save this as /etc/pm/sleep.d/00CPU
. "/usr/lib/pm-utils/functions"
case "$1" in
hibernate|suspend)
for i in /sys/devices/system/cpu/cpu*/online ; do
echo 0 >$i
done
;;
thaw|resume)
sleep 10 # run with one core for 10 secs
for i in /sys/devices/system/cpu/cpu*/online ; do
echo 1 >$i
done
;;
*)
;;
esac