Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad Z61m
Contents
- 1 Installing from USB stick
- 2 Tested Configuration
- 3 Hardware Support
- 4 HOWTOS
- 4.1 Set up the Middle Button Scrolling
- 4.2 Configure Trackpoint and Touchpad
- 4.3 Workaround for the Volume Buttons
- 4.4 Make Fn-Space (Screen Magnify) work
- 4.5 Map ThinkVantage Button
- 4.6 Set up External Monitor or Beamer (VGA)
- 4.7 Set up Color Management
- 4.8 Set up Fingerprint Reader
- 4.9 Set up Hard Drive Active Protection System
- 4.10 Set up HDAPS accelerometer event
- 5 Power Management
- 6 External Sources
Installing from USB stick
If you already use Ubuntu 9.10 Karmic, installing Ubuntu 10.04 from USB stick is very easy. Just download the latest ISO, plug the USB stick in and run System-->Administration-->Create a USB startup disk. Load the downloaded ISO and hit "Make Startup Disk". For more information check this page. After that reboot your Thinkpad and press F12. This will allow you to boot from USB stick and start the installation routine.
Tested Configuration
- Lenovo ThinkPad Z61m (9450-H9G)
- Intel Core 2 Duo T5500 (1,66 GHz, 2 MB L2, 667MHz FSB)
- 2 GB RAM (2x 1 GB PC2-5300 DDR2 667MHz)
- 15.4" wide-screen TFT WXGA 1280x800
- Intel Graphics Media Accelerator 950
- Seagate Momentus 7200.3 ST9160411ASG (160 GB SATA 7200 RPM) reflashed to Dell OEM Firmware
- Ultrabay Enhanced DVD±RW Burner (GMA-4082N, FRU 39T2723)
- Intel HD Audio with AD1981HD codec
- Broadcom Gigabit Ethernet (10/100/1000)
- ThinkPad Bluetooth with Enhanced Data Rate (BDC-2)
- Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter
- IrDA 1.1 (FIR - 4Mbps)
- 4-in-1 digital media reader (MultiMedia Card, MemoryStick, SD)
- Integrated Fingerprint Reader
- ThinkLight
- UltraNav
- CardBus slot (Type 2)
- ExpressCard slot (54 or 34)
- UltraBay Enhanced
- 3x USB 2.0, Firewire, VGA out, S-Video out, Headphone Jack, Microphone Jack
- Built-in Microphone
Hardware Support
Device / Function | Works? | Comment |
Suspend & Hibernate | yes | out of the box |
Intel GMA950 2D and 3D | yes | out of the box |
Intel 3945ABG WiFi | yes | out of the box |
Bluetooth | yes | out of the box |
Broadcom Gigabit Ethernet | yes | out of the box |
DVD±RW Burner | yes | out of the box |
Ultrabay Hotswapping | partial | hotswapping optical drives (like DVD±RW) works out of the box, for HDD hotswapping look here |
Hard Drive Active Protection System | yes | must be activated and configured. See here |
Intel HDA Sound | yes | out of the box, modem must be enabled in BIOS |
PCMCIA | yes | out of the box |
Express Card | yes | out of the box, tested with a Conrad 1 Port SATA II ExpressCard 34 (SiL3531) and an external eSATA HDD (easyNova DATA BOX PRO-35SUS) |
TPM | unknown (should work) | not tested, for further information check out these links [1], [2] |
Firewire | unknown (should work) | not tested |
USB | yes | out of the box |
IRDA | unknown (should work) | not tested |
Docking | unknown (should work) | not tested |
Fingerprint Reader | yes | works with ThinkFinger. See here |
VGA out | yes | out of the box |
S-Video out | partial | a 100 Hz Sony TV was recognized as a 30 Hz TV, poor picture |
Modem | unknown | not tested |
Microphone | yes | both internal and external mics work out of the box, but are muted by default. See bellow |
Headphones | yes | out of the box |
Touchpad | yes | out of the box |
Trackpoint | yes | out of the box, to enable middle button scrolling see bellow |
Multimedia Card Reader | yes? | works out of the box with all kinds of SD cards. No other cards have been tested |
FnFx, FnPageUp, FnHome, FnEnd | yes | out of the box, except of FnF9 and FnSpace. For configuring FnSpace see here |
FnUp, FnDown, FnLeft, FnRight | partial | depends on the player, works out of the box with Rhytmbox but not Audacious. Thus, needs additional configuration |
ThinkVantage | yes | does nothing by default, but can be easily mapped to something useful. See here |
Volume up, Volume down, Volume mute | partial | the volume buttons work but don't affect the software (Pulse Audio) mixer. For possible workarounds see here |
Back and Forward keys (near the arrow keys) | yes | out of the box |
FnSpace (Screen Magnify) | yes | requires some acpi hacking. See here |
HOWTOS
Set up the Middle Button Scrolling
Start a terminal and run
sudo gedit /usr/lib/X11/xorg.conf.d/20-trackpoint.conf
paste this
Section "InputClass" Identifier "Trackpoint" MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "EmulateWheelTimeout" "200" Option "Emulate3Buttons" "false" Option "YAxisMapping" "4 5" Option "XAxisMapping" "6 7" EndSection
and save. Reboot.
Configure Trackpoint and Touchpad
The most convenient way to do this is to install GPointing Device Settings via
sudo apt-get install gpointing-device-settings
After that you will find it in System -> Preferences -> Pointing Devices
GPointing Device Settings, however, can't configure such important Trackpoint settings as sensitivity, speed and press to select. To do this, open a terminal, run
sudo apt-get install sysfsutils sudo gedit /etc/rc.local
paste
for i in 1 2 3 do if [ -d /sys/devices/platform/i8042/serio1/serio$i ]; then echo -n 200 > /sys/devices/platform/i8042/serio1/serio$i/speed echo -n 150 > /sys/devices/platform/i8042/serio1/serio$i/sensitivity echo -n 1 > /sys/devices/platform/i8042/serio1/serio$i/press_to_select fi done
before
exit 0
and save. This will set sensitivity to 200, speed to 150 and activate press to select. Replacing "echo -n 1" by "echo -n 0" in the file will deactivate press to select. To find the right speed and sensitivity values, you should do some tests before by issuing
echo -n 200 | sudo tee /sys/devices/platform/i8042/serio1/serio?/sensitivity echo -n 150 | sudo tee /sys/devices/platform/i8042/serio1/serio?/speed
in the terminal and using different numerical values between 0 and 255. The default values are 128 for sensitivity and 97 for speed.
Workaround for the Volume Buttons
Volume buttons work but don't control software mixer (PulseAudio) settings. Thus you effectively get two volume scales completely independent from each other: Ubuntu's software mixer and Z61m's hardware mixer. That's confusing and inconvenient but as of 2010-05-05 (see Bug #357673) still unfixed.
Possible Workaround #1
Probably the easiest workaround is to make things work like they did in earlier Ubuntu versions (e.g. 7.04). This means that each time you press a hardware volume button you do see a notification via Ubuntu's OSD but you also change both mixers (hardware and software) simultaneously. This means that you get a quite weird volume scale and reach maximal loudness at approximately 50-80% of the software mixer. The experience shows, however, that most users don't consider that to be disturbing and are mostly fine with these "solution". To check, if it's okay for you, open a terminal and run
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask
If you are happy with the result all you should do is make it persistent. To do this, open a terminal, run
sudo gedit /etc/rc.local
paste
cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask
save and exit. If you don't like the result, don't make it persistent. Just reboot and try Workaround #2 or #3.
Possible Workaround #2
A simple workaround is to set hardware volume control to an acceptable level and not to use those volume buttons afterwards. Instead, you can use the software mixer only. It's easy to configure WinF1 and WinF2 which are not used in Ubuntu by default to act as volume buttons for the software mixer. To do this go to System -> Preferenced -> Keyboard shortcuts, click on "Volume Down" and press WinF1. Now click on "Volume Up" and press WinF2. If you also need mute, you can define Win1 for that. The changes will be applied immediately.
To check the current level of the hardware mixer, open a terminal and run
alsamixer
Then, hit F6 and select ThinkPad Console Audio Control. Change the values using Z61m's volume buttons. Values between 50 and 29 are quite acceptable, higher values might lead to sound distortions when having max volume in the software mixer.
Possible Workaround #3
If you still want to use the hardware volume buttons you can add a special volume indicator for them. In this case you can still apply the Workaround #1 to get special keyboard shortcuts for the software mixer, or you can simply set the software mixer to something like 50% and use the hardware mixer only. To add a simple volume indicator for the hardware mixer, do the following. Open a terminal and run
sudo apt-get install xosd-bin sudo gedit /etc/acpi/ibm-volchange.sh
paste this
#!/bin/sh # # This script show the current state of the internal volume mixer test -f /usr/share/acpi-support/key-constants || exit 0 . /usr/share/acpi-support/power-funcs osd_cat=`pidof osd_cat` for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXconsole; if [ x"$XAUTHORITY" != x"" ]; then export DISPLAY=":$displaynum" if [ "$osd_cat" != "" ]; then /usr/bin/killall osd_cat /usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" & break else /usr/bin/osd_cat -p bottom -d 1 -s 1 -o 120 -A center -f "-microsoft-verdana-*-r-*-*-*-*-0-*-*-*-*-*" -c green -b percentage -P $(/usr/bin/amixer -c 29 | /bin/grep Mono: | /usr/bin/awk -F" " '{print $4}' | /usr/bin/tr -d "[]") -T "Thinkpad Hardware Volume Mixer" & break fi fi done
save and close gedit. In the same terminal run
sudo chmod +x /etc/acpi/ibm-volchange.sh sudo gedit /etc/acpi/events/ibm-volume-up
paste this
# /etc/acpi/events/ibm-volume-up event=ibm/hotkey HKEY 00000080 00001015 action=/etc/acpi/ibm-volchange.sh
save and close gedit. In the same terminal run
sudo gedit /etc/acpi/events/ibm-volume-down
paste this
# /etc/acpi/events/ibm-volume-down event=ibm/hotkey HKEY 00000080 00001016 action=/etc/acpi/ibm-volchange.sh
save and close gedit. In the same terminal run
sudo kill -SIGHUP `pidof acpid`
close the terminal. Now you should be able to see the new volume indicator.
Make Fn-Space (Screen Magnify) work
Open a terminal and run
sudo apt-get install kmag sudo gedit /etc/acpi/events/asus-rotate
replace it's content by the following
# /etc/acpi/events/ibmwireless # This is called when the user presses Fn-Space event=ibm/hotkey HKEY 00000080 00001014 action=/etc/acpi/ibm-zoom.sh
and save. Now run
sudo cp /etc/acpi/ibm-wireless.sh /etc/acpi/ibm-zoom.sh sudo gedit /etc/acpi/ibm-zoom.sh
and replace its content by the following
#!/bin/sh # # This script activates gnome-mag when Fn+Space is pressed test -f /usr/share/acpi-support/key-constants || exit 0 . /usr/share/acpi-support/power-funcs magnifier_pid=`pidof kmag` for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXconsole; if [ x"$XAUTHORITY" != x"" ]; then export DISPLAY=":$displaynum" if [ "$magnifier_pid" != "" ]; then /usr/bin/killall kmag break else /usr/bin/kmag & break fi fi done
Save and reboot. Now when pressing Fn-Space you can open KMagnifier. Pressing Fn-Space once again will close KMagnifier. You can configure KMagnifier as you like and your settings will be saved automatically
Map ThinkVantage Button
ThinkVantage Button is recognized but is not mapped to any function so that pressing it does nothing. To change this go to System->Preferences-> Keyboard shortcuts. There you can look for some predefined actions ThinkVantage Button might do for you. To map the button to a certain action simply click on the action and press ThinkVantage. Via Add you can also add your own commands, for instance to start your browser or e-mail client.
Set up External Monitor or Beamer (VGA)
Connect your monitor/beamer to VGA port and go to System -> Preferences -> Monitors. For quick access to those settings it might be useful to activate "Show monitors in panel".
You can also use this to configure an external device connected to S-Video Out.
Set up Color Management
To use ICC/ICM profiles you should install GNOME Color Manager via
sudo apt-get install gnome-color-manager
After that it should appear under System -> Preferences -> Color Profiles. Alternatively you can start it from the terminal by issuing
gcm-prefs
GCM should detect your Thinkpad monitor automatically. All you need to do is supply the correct ICC/ICM profile by clicking on the list under Color Profile and selecting Other profile ...
Lenovo does supply ICM profiles for most Thinkpads, but in order to open the appropriate .exe-archive under Linux you'll need Wine. Install Wine by running
sudo apt-get install wine
After that download 79oi22ww.exe and right-click the file. Go to the Properties tab and tick Allow executing file as program In the Open With tab select Wine Windows Program Loader and close the dialog. Now double-click 79oi22ww.exe, and hit Next -> I accept the agreement -> Next -> Next -> Install -> Finish. Using Nautilus go to "~/.wine/drive_c/DRIVERS/WIN/MONITOR". There you'll find different ICM profiles which can be used by GCM. TPFLX.icm is for FlexView panels whereas TPMB60.ICM and TPMB72.ICM are for MaxBright panels. If you have only a plain TFT panel (not MaxBright) then stick to TPLCD.icm.
After importing the appropriate profile to GCM and selecting it, be sure to go to Defaults tab and select Apply display correction and Set profile for color managed applications Unfortunately, GCM doesn't seem to support manual adjustments of gamma, brightness or contrast on Thinkpad displays.
At least adjusting gamma is possible when using xgamma. In a terminal run
xgamma
to see you current gamma settings. You should see something like
-> Red 1.000, Green 1.000, Blue 1.000
It is possible to adjust gamma values for all colors at the same time by issuing something like
xgamma -gamma 0.9
or for red, green and blue separately
xgamma -rgamma 0.815 -ggamma 0.844 -bgamma 1.0
If you want to be able to relate RGB gamma values to a certain colour temperature, take a look at this page by Mitchell Charity. Thus, to get something like 7800K you'll have to issue
xgamma -rgamma 0.8115 -ggamma 0.8351 -bgamma 1.0
After having found your favourite settings, you'll probably want to make them persistent. To do this go to System -> Preferences -> Startup Applications, select the "Startup Programms" tab, click Add and add something like this
Name: xgamma Command: xgamma -rgamma 0.8 -ggamma 0.8 -bgamma 1.0
(replace these values by your values) Click Add and then Close. Now these xgamma settings will be applied on each Gnome startup
Set up Fingerprint Reader
Although thinkfinger can be installed from Lucid repos, it contains some regressions which prevent fingerprint authentication from working properly. For more information check out Bug #256429 Martin Schwenke provides a PPA with the fixed version of thinkfinger which seems to work quite well.
To install thinkfinger open a terminal and run
sudo add-apt-repository ppa:martin-meltin/ppa sudo apt-get update sudo apt-get install libpam-thinkfinger=0.3+r118-0ubuntu4ppamartinmeltin5 sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable
after that run
tf-tool --acquire $USERNAME
to acquire your fingerprint. Now you can use Z61m's fingerprint reader when using sudo/gksudo or in GDM login screen.
There seems to be a gnome-keyring related problem in Lucid when using fingerprint to log in. In that case Network Manager (nm-applet) may not appear in the panel or freeze when trying to change connection settings (Bug #529338). A known workaround is not to use fingerprint when logging in. You, however, still can use fingerprint for sudo, gksudo and all other supported authentication prompts.
Set up Hard Drive Active Protection System
Open a terminal and run
sudo apt-get install tp-smapi-dkms sudo apt-get install python python-gtk2 python-gnome2 hdapsd
Now run
sudo gedit /etc/modules
and add
tp_smapi
to the very end of the file so that it looks like this (example)
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. lp tp_smapi
Reboot. Now HDAPS should work. If you want to have a HDAPS icon in your notification area like in Windows, follow these steps to install ThinkHDAPS
Download https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb and put it into your home directory. Right click on the file and select "Extract Here". In terminal run
cd ~ cd thinkhdaps_0.2.1-1_all tar -zxvf data.tar.gz sudo cp usr/bin/thinkhdaps /usr/bin/ sudo chmod +x /usr/bin/thinkhdaps sudo cp usr/share/pixmaps/* /usr/share/pixmaps/
Now you can run
thinkhdaps &
to make the ThinkHDAPS icon appear in the notification area
To make it autostart go to System -> Preferences -> Startup Applications, select the "Startup Programms" tab, click Add and add this
Name: thinkhdaps Command: thinkhdaps
Click Add and then Close. Now the ThinkHDAPS icon should be always visible in the notification area.
To change the sensitivity run
sudo gedit /etc/default/hdapsd
and change the SENSITIVITY value. Default is 15 whereas higher values mean less sensitive. For example 25 seems to be just fine.
Set up HDAPS accelerometer event
This section assumes you set up tp_smapi.
To add the device rule (this worked for X61t, there is more info about the udev rule on the HDAPS Talk page)
echo 'KERNEL=="event[0-9]*", ATTRS{phys}=="hdaps/input1",ATTRS{modalias}=="input:b0019v1014p5054e4801-*",SYMLINK+="input/hdaps/accelerometer-event"' | sudo tee /etc/udev/rules.d/51-hdaps.rules
Then force the reloading of rules.d
sudo udevadm trigger
Now you should have a
/dev/input/hdaps/accelerometer-event
Power Management
Fix the hard drive clicking bug
If you don't know what the hard drive clicking bug is, read this. Although this bug was apparently fixed in Ubuntu Karmic, Lucid seems to be affected.
To fix the bug open a terminal and run
sudo cp /usr/lib/pm-utils/power.d/95hdparm-apm /etc/pm/power.d/ sudo gedit /etc/pm/power.d/95hdparm-apm
Insert "hdparm -B 254 /dev/sda" after "resume_hdparm_apm" so that the appropriate section looks like this
case "$1" in thaw|resume|true|false) # true and false for power.d resume_hdparm_apm hdparm -B 254 /dev/sda ;; *) exit 254 ;; esac
To test the fix try suspending/resuming and plugging/unpluging AC power. After each process run
sudo hdparm -B /dev/sda
hdparm should always report
/dev/sda: APM_level = 254
Set up Fan Control
To override BIOS fan control you can install ThinkPad Fan Control. Go to System -> Administration -> Synaptic Package Manager. Switch to the "Third Party Software" tab and click on "Add". As APT line add this
deb http://ppa.launchpad.net/tp-fan/ppa/ubuntu jaunty main
Click "Add Source" then "Close" and finally "Reload" as suggested. Now use "Synaptic Package Manager" to install following packages
tpfand tpfan-admin tpfand-profiles
Go to System -> Administration -> ThinkPad Fan Control and click on "Unlock". Select "Control system fan by software" and you're done.
It's also possible to define your own fan control rules thus overriding the default settings. To do this select "Manually configure system fan trigger temperatures". Here is an example for a Z61m with Core2Duo T5500 and GMA 950. Models with discrete graphics (like FireGL) will probably need lower threshholds as they usually produce more heat and thus require better cooling.
Sometimes ThinkPad Fan Control's daemon tpfand crashes for unknown reasons causing software fan control to stop working (i.e. BIOS starts controlling the fan). A quick and dirty solution is to create a cronjob which will check if tpfand is working and restart it if necessary. To do this open a terminal and execute
sudo gedit /usr/bin/fan_check.sh
paste this
#!/bin/bash echo "Checking if tpfand is still running" ps -ef | grep -v grep | grep tpfand if [ $? -eq 1 ] then echo "tpfand is not running - restarting" sudo /etc/init.d/tpfand restart else echo "tpfand is still running" fi
and save the file. Now run
sudo chmod +x /usr/bin/fan_check.sh sudo crontab -e
if asked to choose an editor, choose nano. Paste this
SHELL=/bin/bash */5 * * * * /usr/bin/fan_check.sh
Finally press Ctrl+O, Enter, Ctrl+X to save the file. Now a cronjob will be executed every 5 minutes to make sure tpfand is running.
tpfand relies on HAL for determining the ThinkPad's model. If the detection routine fails, tpfand stops immediately (see Bug #575199). If for some reasons you experience this problem, it is prossible to tweak this detection routine by editing tpfand's settings.py
sudo gedit /usr/lib/python2.6/dist-packages/tpfand/settings.py
and replacing
self.product_id = None self.product_name = None self.product_pretty_vendor = None self.product_pretty_name = None self.product_pretty_id = None
by
self.product_id = self.product_name = self.product_pretty_vendor = self.product_pretty_name = self.product_pretty_id =
this will prevent tpfand from crashing even if it wasn't able to detect your ThinkPad's model.
Configure Battery Charge Control
In a terminal run
sudo apt-get install sysfsutils sudo apt-get install tp-smapi-dkms
Now run
sudo gedit /etc/modules
and add
tp_smapi
to the very end of the file. Run
sudo gedit /etc/sysfs.conf
and add
devices/platform/smapi/BAT0/start_charge_thresh=85 devices/platform/smapi/BAT0/stop_charge_thresh=96
to the very end of the file. Save and reboot. With this values your battery will start charging at 80% and stop charging at 96%. Of course you can also put other values between 1 and 100.
To check the current thresholds run
cat /sys/devices/platform/smapi/BAT0/start_charge_thresh
and
cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh