Installing Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T61

From ThinkWiki
Revision as of 21:33, 30 March 2009 by Emma.lzhang (Talk | contribs) (To enable the Wi-Fi LED with the Atheros cards)
Jump to: navigation, search

NOTE: I copied the 8.04 document for the T61 and created this one with the information. Please help to update it so it accurately reflects Ubuntu 8.10.

Items that work out of the box

Intel Video: 2D and 3D acceleration works

Nvidia Video: 2D and 3D acceleration works . 64-bit Ubuntu 8.10 requires updated Nvidia driver 180.29 .

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 (Only has an effect over the bluetooth, wifi is unaffected)

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

Fingerprint Reader: With ThinkFinger, not as functional after upgrade (need to hit 'Enter'), see below

Items that need (some) tweaking to obtain full functionality

Sound (too quiet, no sound after resume)

NOTE!
Note: This seems to have been fixed in a recent update. Following these instructions will actually dampen sound if your sound is already at the appropriate volume. Only apply if necessary.

Sound works "out of the box", but is too quiet for many people. To fix this you need to do the following:

gksudo gedit /etc/modprobe.d/alsa-base

and add

options snd-hda-intel model=thinkpad power_save_controller=Y power_save=10

to the very end of the file (/etc/modprobe.d/alsa-base).

Note: power_save_controller=Y option fixes the problem with no sound after resuming from suspend.

Open Source Intel Wi-Fi Driver

The following information is important if you are upgrading from a previous version (2007 or earlier) of Ubuntu to 8.10.

Intel has created a new Linux Wi-Fi 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 Wi-Fi 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.

An additional note System lock-ups with Intel 4965 wireless

The version of the iwlagn wireless driver for Intel 4965 wireless chipsets included in Linux kernel version 2.6.27 causes kernel panics when used with 802.11n or 802.11g networks. Users affected by this issue can install the linux-backports-modules-intrepid package, to install a newer version of this driver that corrects the bug. (Because the known fix requires a new version of the driver, it is not expected to be possible to include this fix in the main kernel package.) http://www.ubuntu.com/getubuntu/releasenotes/810

To enable the Wi-Fi 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, on a Debian-based system, add

dev.wifi0.ledpin=1
dev.wifi0.softled=1

to the file /etc/sysctl.conf. If your distribution doesn't have a sysctl.conf file then you can add the two sysctl commands to an initscript.

To enable the Wi-Fi LED with the Atheros cards and Ath5K driver

If you want to use Ath5k driver for your adapter, which I think provides better signal quality, then open a terminal and run these commands:

# sudo su 

Install necessary build packages:

# apt-get install build-essential 

Then close Madwifi if you have it installed before:

# rmmod ath_pci; rmmod ath_hal

Download the most recent source code for Ath5k:

 
# wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2009-03-30.tar.bz2
# tar xvf compat-wireless-2009-03-30.tar.bz2
# cd compat-wireless-2009-03-30

Before compiling, you need to modify the file compat-wireless-2009-03-30/drivers/net/wireless/ath5k/led.c from:

/* IBM-specific AR5212 */
	{ PCI_VDEVICE(ATHEROS, PCI_DEVICE_ID_ATHEROS_AR5212_IBM), ATH_LED(0, 0) },

to:

/* IBM-specific AR5212 */
	{ PCI_VDEVICE(ATHEROS, PCI_DEVICE_ID_ATHEROS_AR5212_IBM), ATH_LED(1, 1) },

Save and then move on to compiling the driver, make sure you execute this command in the directory of compat-wireless-2009-03-30/

# make

Then confirm that all other drivers are unloaded:

# make unload 

Install:

# make install 

Load the module:

# modprobe ath5k 

Check the wireless network

# ifconfig wlan0 up; iwconfig  

Your Wi-Fi LED should be blinking happily ever after...

Now we add Madwifi to blacklist to completely forbid it:

# echo "blacklist ath_pci" >> /etc/modprobe.d/blacklist; echo "blacklist ath_hal" >> /etc/modprobe.d/blacklist 


Load ath5k automatically everytime the system starts:

# echo "ath5k" >> /etc/modules 

To remove ath5k, change directory to the directory compat-wireless-2009-03-30/

# sudo make uninstall 

Unload ath5k:

# sudo rmmod ath5k 

remove ath5k from /etc/modules and restart, then the whole removal process is done.

Network connection after suspend/resume

Networking may not work after a suspend or resume operation, this is because of the ath_pci driver and can be worked around by creating the file /etc/pm/config.d/madwifi and adding the single line

SUSPEND_MODULES=ath_pci

which causes the driver to be unloaded on suspend and reloaded on resume.

Fingerprint Reader with ThinkFinger

Here are the general instruction on how to enable the fingerprint reader with ThinkFinger Add the PPA repositories to your source.list (/etc/apt/source.list):

deb http://ppa.launchpad.net/jon-oberheide/ubuntu intrepid main
deb-src http://ppa.launchpad.net/jon-oberheide/ubuntu intrepid main

Update installer:

$ sudo apt-get update

And install:

$ sudo apt-get install thinkfinger-tools

From: Ubuntu 8.10 Intrepid Ibex - ThinkFinger Fingerprint Reader

NOTE: Just the above didn't worked for me. This did worked like a charm. --Lunatico 22:53, 18 December 2008 (CET)

Emulate Wheel (Middle-click scrolling)

Michael Vogt described how to get middle-click scrolling to work again in Intrepid. Xorg.conf is not used to configure mice and keyboards anymore, but evdev is. This makes the configuration of middle-click scrolling a little bit different than previous versions of Ubuntu. In terminal:

sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi

Past and save the following code, which will give vertical wheel emulation only:

<match key="info.product" string="TPPS/2 IBM TrackPoint">
 <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
 <merge key="input.x11_options.ZAxsisMapping" type="string">4 5</merge>
 <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>

There is another method to get horizontal scrolling as well, but I don't think it worked for me.

Enabling touchpad on/off key (fn-f8)

The procedure shown here for T500 also works for T61.

Suspend/Hibernate

Nvidia drivers

One of the many problems associated with the Thinkpad *61 series and nvidia is the suspend/hibernate feature being broken.

If you have such a problem then try this fix.

First of all make sure that you use nvidia drivers. System -> Administration -> Hardware drivers and there the activate the latest one.

Then create file /etc/hal/fdi/information/lenovo.fdi

With contents:

<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="system.hardware.vendor" string="LENOVO">
      <!-- Ubuntu default settings: good for nvidia driver -->
      <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>

Reboot and check suspend and hibernation.

Update and success 1 March 2009 I didn't have success with above alone. After editing loads of hal files I cam across a suggestion that early versions of the nvidia 180 drivers dont do suspend/resume. It was also said that from 180.25 on they worked. So I manually upgraded to the using the documentation on the Ubuntu wiki - but basically it's a matter of removing anything that was installed by ubuntu (like getting rid of /lib/modules/2.6.27-11-generic/updates/dkms/nvidia.ko) and then running the nvidia installer, rebooting and you have the newer version - in my case 180.29. Now suspend to ram works!


Nvidia driver upgrade to latest version (180.29 currently)

If you want to upgrade to latest version, follow these instructions: http://adammichaelroach.com/blog/021809/installing-nvidia-18029-drivers-intrepid

GDM Startup problem with Nvidia 177 or 180 driver versions

There's a bug in the driver so that the driver hangs for 30 seconds after logout (in restart X server): http://www.nvnews.net/vbulletin/showthread.php?t=125286

Workaround: increase GdmXserverTimeout to 60. Modify /etc/gdm/gdm.conf

line 232: GdmXserverTimeout=60

More information in the Ubuntu bug report: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-177/+bug/258357

Nvidia performance (Firefox is very slow) and Xorg memory consumption problem

Firefox and X.org will stall with these error messages in the log file:

[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.
[mi] EQ overflowing. The server is probably stuck in an infinite loop.
[mi] mieqEnequeue: out-of-order valuator event; dropping.

For example http://grails.org website stalls Firefox and X.org.

I've added these settings to xorg.conf. The GDM Startup problem went away too.

Section "ServerFlags"
        Option  "Xinerama" "0"
        Option  "AllowEmptyInput" "false"
        Option "PixmapCacheSize" "1000000"
        Option "AllowSHMPixmaps" "0"
        Option "PixmapCache" "1"
        Option "PixmapCacheRoundSizeKB" "1024"
        Option "InitialPixmapPlacement" "2" 
        Option "GlyphCache" "1"
EndSection

I added did this from the command line:

nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1

more information: http://www.nvnews.net/vbulletin/showthread.php?t=118088 https://bugs.launchpad.net/ubuntu/+source/firefox-3.0/+bug/223238 https://bugs.launchpad.net/ubuntu/+source/firefox-3.0/+bug/190228 https://bugs.launchpad.net/firefox/+bug/207454

/etc/X11/xorg.conf settings with support for beamer
Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
        Option "ConnectedMonitor" "DFP-0,CRT-0"
        Option "UseDisplayDevice" "DFP-0,CRT-0"
        Option "TwinView" "true"
        Option "TwinViewOrientation" "Clone"
        Option "TwinViewXineramaInfoOrder" "DFP-0,CRT-0"
        Option "MonitorLayout" "LFP,LFP+CRT"
        Option "metamodes" "DFP-0: 1680x1050 +0+0, CRT-0: NULL; DFP-0: 1024x768 +0+0, CRT-0: 1024x768 +0+0; DFP-0: 1280x1024 +0+0, CRT-0: 1280x1024 +0+0; DFP-0: 1024x768 +0+0, CRT-0: NULL"
        Option "SecondMonitorHorizSync" "31-82" # 15,75-91,1
        Option "SecondMonitorVertRefresh" "56-76" # 43-85
        DefaultDepth    24
EndSection

Section "Module"
        Load    "glx"
EndSection

Section "Device"
        Identifier      "Configured Video Device"
        Option  "ModeValidation"        "CRT-0: NoEdidModes, NoHorizSyncCheck, NoVertRefreshCheck"
        Driver  "nvidia"
        Option  "NoLogo"        "True"
EndSection

Section "ServerFlags"
        Option  "Xinerama" "0"
        Option  "AllowEmptyInput" "false"
        Option "PixmapCacheSize" "1000000"
        Option "AllowSHMPixmaps" "0"
        Option "PixmapCache" "1"
        Option "PixmapCacheRoundSizeKB" "1024"
        Option "InitialPixmapPlacement" "2" 
        Option "GlyphCache" "1"
EndSection

Use "NVidia X Server Settings" (nvidia-settings) application to configure the external monitor (refresh rate & resolution). xrandr will stall, don't use it.