Installing Arch 2007.08-2 on a ThinkPad T43

From ThinkWiki
Revision as of 22:59, 24 March 2008 by Seppe (Talk | contribs) (Thinkpad keys and OSD)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Base installation

Follow the Arch Linux official Beginners Guide.

Wireless LAN

As in http://wiki.archlinux.org/index.php/Wireless_Setup, install wireless-tools, check for hardware and install appropriate driver package ipw2200-fw.

I installed Network Manager too. Check http://wiki.archlinux.org/index.php/NetworkManager

Cpu Frequency scaling

Follow official Arch page: http://wiki.archlinux.org/index.php/Cpufrequtils

Suspension/Hibernation

Follow the guide http://wiki.archlinux.org/index.php/Pm-utils just till Advanced configuration; then install laptop-mode-tools (this will fix all brightness problems too).

Touchpad

Follow the guide http://wiki.archlinux.org/index.php/Touchpad_Synaptics

Multimedia and codecs


Thinkpad keys and OSD

If you want to use the OSD capabilities:

  • Install the tpb package
sudo pacman -S tpb

To handle all thinkpad keys:

  • Add ibm_acpi in the MODULES list in your /etc/rc.conf
  • Now you can configure the keys in /etc/acpi/handler.sh

This is my /etc/acpi/handler.sh (it handles wifi/bluetooth switch [Alt-F5] and Turn off monitor [Alt-F3] keys):

#!/bin/sh
# Default acpi script that takes an entry for all actions

# NOTE: This is a 2.6-centric script.  If you use 2.4.x, you'll have to
#       modify it to not use /sys

minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`
maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`
setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"

set $*

case "$1" in
	button/power)
		#echo "PowerButton pressed!">/dev/tty5
		case "$2" in
			PWRF)	logger "PowerButton pressed: $2" ;;
			*)    logger "ACPI action undefined: $2" ;;
		esac
		;;
	button/sleep)
		case "$2" in
			SLPB) echo -n mem >/sys/power/state ;;
			*)    logger "ACPI action undefined: $2" ;;
		esac
		;;
	ac_adapter)
		case "$2" in
			AC)
				case "$4" in
					00000000)
						echo -n $minspeed >$setspeed
						#/etc/laptop-mode/laptop-mode start
					;;
					00000001)
						echo -n $maxspeed >$setspeed
						#/etc/laptop-mode/laptop-mode stop
					;;
				esac
				;;
			*) logger "ACPI action undefined: $2" ;;
		esac
		;;
	battery)
		case "$2" in
			BAT0)
				case "$4" in
					00000000)	#echo "offline" >/dev/tty5
					;;
					00000001)	#echo "online"  >/dev/tty5
					;;
				esac
				;;
			CPU0)	
				;;
			*) logger "ACPI action undefined: $2" ;;
		esac
		;;

	button/lid)
		#echo "LID switched!">/dev/tty5
		;;
	ibm/hotkey)
		case "$4" in
			00001003)
				for kk in $(users) ; do
					su $kk -c "xset -display :0 dpms force standby"
				done
			;;
			00001005)
				cat /proc/acpi/ibm/bluetooth | awk '{ print $2 }' | while read line; do
					if [ $line == "enabled" ]; then
			          		echo disable > /proc/acpi/ibm/bluetooth
		         		else
	              				echo enable > /proc/acpi/ibm/bluetooth
				     	fi
					break
			       	done   
			;;
			*)
				logger "ACPI group/action undefined: $1 / $2"
			;;
		esac
		;;
	*)
		logger "ACPI group/action undefined: $1 / $2"
		;;
esac