Installing Ubuntu 8.04 (Hardy Heron) on a ThinkPad T61
Contents
Items that work out of the box
Intel Video: 2D and 3D acceleration works
Nvidia Video: 2D and 3D acceleration works
Wireless: Intel cards tested. Atheros cards also works.
Wireless WAN: Cingular/AT&T card tested.
Network Card Intel 10/100/1000 tested
Wireless switch Tested
Webcam Tested with cheese and skype.
Headphones Works out of the box
Microphone Just needs to be activated, see section below
Keyboard Shortcuts: Most of them work out of the box, some need to be activated, see section below
Items that need (some) tweaking to obtain full functionality
Open Source Intel Wifi Driver
The following information is important if you are upgrading from a previous version of Ubuntu to 8.04.
Intel has created a new Linux Wifi driver project for Intel Wireless cards, "Iwlwifi". This driver is Open Source and no longer requires the Intel daemon to run in addition. This project will support the T61's Wifi Intel 3945ABG network adapter and Intel 4965AGN network adapter.
An automatic migration will occur when upgrading from Ubuntu 7.10 to Ubuntu 8.04. However, there is a caveat to be aware of:
- The new driver wants to name the interface wlan0 (by default -- you can rename it to anything you want), and requires a different entry in /etc/udev/rules.d/70-persistent-net.rules, which handles the naming of interfaces. Simply edit this file and delete your old entry for the ipw3945 driver, then unload/reload the new driver, or simply reboot. A new entry will automatically be created that is appropriate for the new driver. Here's an example of the lines to delete:
# PCI device 0x8086:0x4227 (ipw3945) SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:1b:77:a4:0e:2f", NAME="eth1"
If you need to perform a manual migration, the Ubuntu Help Community has written some documentation that will make this very easy to do.
Compiz and XV Playback on Intel GM965/GL960
With Ubuntu 7.10 (Gutsy Gibbon) you currently have to choose between using Compiz and working video playback using XV. On 8.04 (Hardy Heron) alpha 5 you can play videos using XV under compiz, it works right out of the box using the Live-CD.
Suspend with Nv140m
- Update as of July 17th 2008 -- Using 8.04.1 with the newest nvidea drivers, I had no problems suspending without any additional configuration. **
Suspend may not work even after editing acpi-support. Enable bluetooth (Fn+F5) may result in a successful suspend. NOTE: that although the wifi led does not change when Fn+F5 is used, the wifi is still toggled by this key.
Hal "S3 BIOS" parameter issue!
After doing the changes to the /etc/default/acpi-support file (described here), I for one, managed to have stable suspend support by creating a new file called: /etc/hal/fdi/information/lenovo.fdi with the following contents:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> <device> <match key="system.hardware.vendor" string="LENOVO"> <merge key="power_management.quirk.s3_bios" type="bool">false</merge> </match> </device> </deviceinfo>
Still no suspend with nvs140m? Got Modell 6460?
Fix above didn't work for me on a 15.4 wide T61 Modell 6460 with nv140m. Bios is updated to 2.14 but didn't change anything, except the usb bug is fix. Suspend seems to work fine, but resume gives me a black screen (backlight off - no reaction to brightness up) and I can hear 2 beeps. Most of the time I can reboot with ctrl+alt+delete but the screen stays dark until bios.
follow the instructions above but create the new file called: /etc/hal/fdi/information/lenovo.fdi with the following contents instead:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> <device> <match key="system.hardware.vendor" string="LENOVO"> <merge key="power_management.quirk.s3_mode" type="bool">true</merge> <merge key="power_management.quirk.s3_bios" type="bool">false</merge> <merge key="power_management.quirk.save_pci" type="bool">true</merge> </match> </device> </deviceinfo>
Also you want to set the following parameter in
/etc/default/acpi-support
SAVE_VIDEO_PCI_STATE=true
Working on hardy final
After trying out all these recipes on my 6457CTO waking up from suspend still did not work. Finally I came across a blog entry which pointed out the right way: [David Goodlad's blog]. I realized that all the fixes proposing editing the acpi-support file or adding a kernel parameter acpi_sleep=s3_mode must be wrong because since hardy gnome-power-manager gets its information solely from hal. So setting up correct hal information is the right way but the proposed solution (creating a /etc/hal/fdi/information/lenovo.fdi file) did not work for me. Ok, but now step by step:
- Revert ALL the proposed fixes from above. I found out that at least the lenovo.fdi solution is actually breaking the real fix. So for sure delete /etc/hal/fdi/information/lenovo.fdi
- Find out about the excact hal name of your machine:
hal-device |grep 6457
where 6457 is the model number of my t61, replace it with your own. In my case it spits out something like this: system.hardware.product = '6457CTO'. So now I know that hal identifies my machine as 6457CTO. sudo gedit /usr/share/hal/fdi/information/10freedesktop/20-video-quirk-pm-lenovo.fdi
and add a section to the end of the file, just above the </device> tag and replace 6457CTO with your hal device name:
<!-- T61 6457CTO uses NVidia driver --> <match key="system.hardware.product" string="6457CTO"> <!-- Proprietray NVidia driver quirks --> <merge key="power_management.quirk.s3_mode" type="bool">true</merge> <merge key="power_management.quirk.s3_bios" type="bool">false</merge> <merge key="power_management.quirk.save_pci" type="bool">true</merge> </match>
Now save and reboot. Now you might run into the problem of coming back from resume into a completely white screen where normally should be the password dialog. Entering your password blindly is not nice but at least you can resume.
TrackPoint
The TrackPoint works out of the box, but does not scroll nor does the tap-clicking (press to select) feature work. Therefor see: #tap-to-click feature To enable using the middle mouse button to scroll, replace the "Configured Mouse" section in /etc/X11/xorg.conf with the following:
Section "InputDevice" Identifier "Trackpoint" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "true" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" EndSection
Section "InputDevice" Identifier "UltraNav TrackPoint" Driver "mouse" Option "Device" "/dev/input/mouse1" Option "Protocol" "ExplorerPS/2" Option "Emulate3Buttons" "on" Option "Emulate3TimeOut" "50" Option "EmulateWheel" "on" Option "EmulateWheelTimeOut" "200" Option "EmulateWheelButton" "2" Option "YAxisMapping" "4 5" Option "XAxisMapping" "6 7" Option "ZAxisMapping" "4 5" EndSection
Audio
Works great out of the box, just the microphone has to be activated, it is considered a generic capture source and is muted by default.
To unmute the microphone:
- Right Click on the volume icon next to the clock and click on "Open Volume Control"
- Click Edit -> Preferences. A list of devices will be displayed, you should check the following (Do not uncheck any existing items):
Input Source Capture
- Click Close and there should be two additional tabs "Recording" and "Options". -
- Click Recording and click on the microphone under the Capture slider so that it no longer has a red line through it, and put the slider up as it may be deactivated.
- Click Options and under capture source select internal mic.
To test your mic using Sound Recorder select Capture as the sound source.
This solution has been tested with Sound Recorder and Skype.
To get the volume controls working:
- add the following line to /etc/modprobe.d/alsa-base, then reboot
options snd-hda-intel index=0 model=thinkpad
Multimedia Keys
Most Multimedia Keys work out of the box, just the play, forward and stop buttons need to be adjusted, therefore, press alt + F2 and type in gnome-keybinding-properties. Then everything works as followed:
- Fn-PgUp activates/deactivates the thinklight
- Fn-Up will trigger stop on a media player
- Fn-Down will toggle pause and play on a media player
- Fn-Left/Right go to prev/next tracks on a media player
- Fn-F2 properly locks the screen
- Fn-F3 shows remaining battery >>does not work on all machines<<
- Fn-F4 suspends (to ram)
- Fn-F9 ejects cds >>does not work on all machines, I think this is supposed to eject from a "dock"<<
- Fn-F12 hibernates (to disk)
- PrtSc opens the screenshot dialog
To enable the back, forward, and the menu keys you'll need to teach XKB what they are.
- Check the XkbLayout option (under InputDevice) in your /etc/X11/xorg.conf file to determine which keyboard layout Ubuntu is using (I'll use 'us' for the example).
- Navigate to /etc/X11/xkb/symbols and, as root, open the appropriate layout file (as determined above) in your favorite editor.
$ cd /etc/X11/xkb/symbols
$ sudo gedit us
- In the xkb_symbols "basic" section after the name[Group1]= "x"; (where x is a country name, or similar) line add the following:
key <I63> { [ Menu ] }; key <I69> { [ XF86Forward ] }; key <I6A> { [ XF86Back ] };
- Now log out and back in and all three of the buttons should function.
Thinkpad Button
Paste the following into /usr/share/hotkey-setup/ibm.hk
setkeycodes e017 148 # thinkpad button
You can also just type this into a terminal, to test it for the time of the current session.
Paste the following into the right file in /usr/share/xmodmap (check your country code)
keycode 159 = XF86Terminal
For immediate availability of the button, reload the file by executing
xmodmap <xmodmap.file>
Then use the "Keyboard Shortcuts" tool under "Preferences".
Items that don't work (a.k.a.: items that need more intense tweaking to get fixed)
tap-to-click feature
For the tap-to-click feature (taping the stick instead of using the left mouse button) i used a configure trackpoint utility: [1] there is a package for ubuntu 7.04 i386, but i compiled it by myself (using amd64):
1.) download the .tar.gz file
2.) unpack it
3.) install libgnomeui-dev
$ sudo aptitude install libgnomeui-dev
4.) in the folder, do:
$ ./configure
if everything worked fine:
$ make
then install it:
$ sudo make install
5.a) Gnome : Open it: System > configure trackpoint, and configure on your needs
5.b) Kde : K-menu > Prefences > configure trackpoint > right-click > edit entry, edit "command" to "kdesu configure-trackpoint"
Save & exit
Open it : K-menu > Prefences > configure trackpoint and configure on your needs
Hotswapping
With the new kernel, bay-drivers changed, so if you remove the ultrabay it will freeze your system! You can hack it with a simple comand, first you have to look where the device is:
$ less /sys/class/scsi_device/(x)\:0\:0\:0/device/model
for (x) first put in 0, if it tells you DVD or the name of the model you want to hotswap youre right. if not, go on with 1, 2 or 3...
then, once you are sure (I deactivated my harddisk like that) you put in:
$ echo 1 | sudo tee /sys/class/scsi_device/(x)\:0\:0\:0/device/delete
Now you should be able to remove the device.
If Ubuntu does not reactivate the device after putting it in again, do:
$ echo 0 0 0 | sudo tee /sys/class/scsi_host/host1/scan
Wireless activity LED
The LED is not implemented at least in the IWL4965 driver. For the Atheros wifi cards look at the solution [#To enable the Wifi LED with the Atheros cards|below]].
A patch posted in this thread works for me on R61 with IWL4965 card.
As an alternative, you can install a backported IWL4965 driver that may fix the LED problem on your system.
To active WiFi LED,
sudo apt-get install linux-backports-modules-hardy
You can download a compatible driver which supports WiFi led flicking and build it with modifying the config.mk by adding CONFIG_IWL3945_LEDS=y
and CONFIG_IWLWIFI_LEDS=y
these two options. For Ubuntu/Debian users, build-essential, linux-source-2.6.24 and linux-headers-generic packages are required.
To enable the Wifi LED with the Atheros cards
First check if this solution works on your computer. Open a terminal and run this commands:
sysctl dev.wifi0.ledpin=1 sysctl dev.wifi0.softled=3
Now connect to a wireless network and the LED should start working. If so and you want to make the changes permanent then:
1) Create a file ~/wifiLED and copy/paste the following into it:
#!/bin/bash # # Commands to enable the wireless LED sysctl dev.wifi0.ledpin=1 sysctl dev.wifi0.softled=3
2) sudo cp ~/wifiLED /etc/init.d
3) sudo chmod 755 /etc/init.d/wifiLED
4) sudo update-rc.d wifiLED defaults 90
After you reboot your wireless led should be working.
Hidden SSID
It has been reported that users wanting to access Hidden SSIDs have to enter the SSID and password manually in Network Manager to connect. Even after the SSID is saved in Network Manager, it will not reconnect automatically. The user has to connect manually by entering the information as previously described. It appears that updating the driver by following the instructions here resolves this issue.
Hard Disk Parking
Getting hard disk parking to work:
tp_smapi patch is not needed in linux-image-2.6.24-18
1. Patch your kernel with the 'protect' patch.
2. Installing the hdapsd daemon which does the actual parking.
$ sudo apt-get install hdapsd hdaps-utils
some other tweaks
screenblank with Fn + F3
Its ok, and might be usefull to get the estimated batterytime when pressing Fn+F3, as it should be. But i dont need that, i find the earlier command for F3, to blank the screen, more useful to save batterylife better.
For that, you must edit /etc/acpi/thinkpad-lockbattery.sh and replace LENOVO by IBM, and IBM by LENOVO :). Do not forget to copy the file before you change it!
Enable normal User to Limit CPU Speed
To let user set the CPU limit you need to open a Terminal an type there
sudo dpkg-reconfigure gnome-applets
answer the question with yes
Fix bluish WSXGA+ displays
Many T61 owners complain about a very bluish color temperature: My T61 WSXGA+ was also way too blue. I came across a thread at the notebook review forum http://forum.notebookreview.com/showthread.php?t=174408 which provided two useful ICC profiles which fixed the situation for me. Just install xcalib
sudo apt-get install xcalib
and load one of these profiles.