Install Ubuntu Intrepid Ibex on a T61p

From ThinkWiki
Revision as of 01:16, 11 November 2008 by Ghosty (Talk | contribs) (Fingerprint Reader)
Jump to: navigation, search

What works out of the box?

  • Wireless (Intel 3945ABG or 4965AGN)
    • Only tested G mode
  • Wired LAN
  • Video (VESA)
    • Hardware Drivers panel offers to install nVIDIA proprietary drivers on first boot.
  • Touchpoint and Trackpad
    • Including scroll at the right side of the pad by default.
    • Middle-button scrolling does NOT work.
  • Optical drive
    • Optiarc AD-7910A works fine with Brasero disc burning
      • Tested: CD-R, DVD+R
  • Sound card
  • SD/MMC Memory card reader (Ricoh)
    • Only tested SD (non-HC) cards.
  • Control buttons/Hotkeys
    • Volume control buttons
    • Screen brightness control
    • Thinklight control
    • WLAN/BT/OFF toggle
    • Media player control
  • Some ACPI features
    • Battery status, power graphs and history
    • Lid states and events
    • Only tested with a single 6-cell battery
  • ACPI features
    • Suspend to RAM
    • Suspend to Disk (Hibernate) FINALLY!! Be patient, though.
    • STR and STD work even with full disk encryption (DM-crypt + LVM)!

Getting the hardware to work

Display/Video

Installing the proprietary NVidia drivers is highly recommended, EVEN IF you won't use 3D acceleration, because the open source nv driver will drain your battery much faster since it does not support PowerMizer at all. Practically, this means that the GPU will constantly run at full speed, thus consuming ~12 Watts more than it would otherwise (which is a LOT of power for a laptop).

The first time you boot Ubuntu, you should get an alert asking if you want to install the binary driver. If not, it can be installed from the Hardware Drivers panel at System --> Administration --> Hardware Drivers. You will have a choice between the 173 and 177 version of the driver. Version 177 is recommended because it will provide Suspend to disk functionality, whereas v173 will not. However, 177 causes a log out bug that is addressed below.

Once the proprietary drivers are installed, the "NVidia X Server Settings" program will be available in System --> Administration.

Version 177 logout/X restart fix

There is a known issue in the v177 proprietary NVidia driver - See Launchpad bug 258357. Once you install the v177 driver, logging out or restarting X will cease to work, though suspend to RAM/Disk will continue to function.

The work around is as follows:

  • In /etc/gdm/gdm.conf , increase the value for GdmXServerTimeout to about 60. When logging out or restarting X, X will hang for ~35 seconds. By increased the value from its default, GDM will give X more time before it assumes X is faulty.

Microphone/Sound In

Might need to be turned on in the mixer

Hard Drive Active Protection System (HDAPS)

Please add to this section

Front radio kill switch

When killing Wireless LAN with the killswitch at the front, you won't be able to get WLAN back up after switching back. See Launchpad bugs 289286 and 193970 and the Release Notes on the Ubuntu Wiki.

This will be solved in intrepid-updates eventually.

For now there are a few ways to bring the interface back up (choose one):

  • # ip l s wlan0 up
  • # modprobe -r iwl3945 && modprobe iwl3945
  • reboot
  • suspend and resume

Middle-button Scrolling

Please add to this section

Fingerprint Reader

The Thinkfinger package allows you to swipe a finger in most places where you would have to type your password. This works with sudo, gksudo and on the login page and with a little fix also for the screen saver. Also, you are still required to type your user name on the login screen.

0) Set up the third party repository (optional but recommended!)

due to this Bug #256429: Carriage-return required after finger scan you need to press the return key after you swipe your finger with the current version of the kernel and the packages in ubuntu. The bug is caused by the fact that it does not recognize the fingerprint reader 100% correctly (Description of the root cause) , as a temporary workaround there is a special package repository.

The packages present in ubuntu intrepid will work but you need to press enter after you swipe your finger.

Click System -> administration -> software sources go to the tab "third-party software" and click Add ...

Enter in the popup window:

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

Click Add source, it will ask to refresh the package list, click reload.

1) Install the following packages:

$ sudo apt-get install thinkfinger-tools libpam-thinkfinger libthinkfinger0

2) For your user:

$ sudo tf-tool --acquire && sudo tf-tool --verify

A completed fingerprint setup should look something like this:

frank@Laptop:~$ sudo tf-tool --acquire && sudo tf-tool --verify

ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
Copyright (C) 2006, 2007 Timo Hoenig <thoenig@suse.de>

Initializing... done.
Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.
Storing data (/tmp/test.bir)... done.

ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
Copyright (C) 2006, 2007 Timo Hoenig <thoenig@suse.de>

Initializing... done.
Please swipe your finger (successful swipes 1/1, failed swipes: 0)... done.
Result: Fingerprint does match.
frank@CLaptop:~$

This will store your fingerprint information in /home/$USERNAME/.thinkfinger.bir

You should do this step for each user who wants to use the fingerprint reader

3) Enable use of reader for authentication:

$ sudo gedit /etc/pam.d/common-auth

add

auth    sufficient      pam_thinkfinger.so

before the pam_unix.so line and

try_first_pass

to the end of the pam_unix.so line.

4) Check uinput kernel module:

$ lsmod | grep uinput If the output starts with uinput, then you're done. If you don't get any output, then it needs to be started and set to start on boot.

Start uinput:

$ sudo modprobe uinput

Start on boot:

$ sudo gedit /etc/modules

make sure there is a line like this or add it at the bottom:

uinput

5) Enabling thinkfinger for gnome-screensaver

  • create this file:

$ sudo gedit /etc/udev/rules.d/60-thinkfinger.rules with this contents:

#
# udev rules file for the thinkfinger fingerprint scanner
# gives access to the fingerprint reader to those in the "fingerprint" group
#
# Taken from:
# http://www.thinkwiki.org/wiki/Install_Ubuntu_Intrepid_Ibex_on_a_T61p#Fingerprint_Reader
# which was taken and modified from:
#  http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger
#  http://article.gmane.org/gmane.linux.drivers.thinkfinger/329

# SGS Thomson Microelectronics Fingerprint Reader
SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint"

# the also-needed uinput device
KERNEL=="uinput", MODE="0660", GROUP="fingerprint"
  • edit the file:

$ sudo gedit /etc/pam.d/gnome-screensaver so it looks like this:

@include common-auth
auth    sufficient      pam_thinkfinger.so
auth    optional        pam_gnome_keyring.so
auth    required        pam_unix.so try_first_pass nullok_secure
  • Make the group:

$ sudo groupadd fingerprint

  • per user:

$ sudo gpasswd -a $USERNAME fingerprint $ sudo chown $USERNAME:root /home/$USERNAME/.thinkfinger.bir

Reboot your laptop and you should be ready to swipe!

Sources:

Other Problems

Choppy Compiz animations

NVidia's PowerMizer feature will slow down the GPU when "inactive" even on AC power.

The NVidia driver does not report the correct refresh rate of the display to Compiz, resulting in choppy animations and effects. To fix this, install the compizconfig-settings-manager package, then go to System --> Preferences --> Advanced Desktop Effects Settings. Click on General Options, go to the Display Settings tab, uncheck the Detect Refresh rate box and drag the Refresh Rate slider to 60. Also, check the Sync To VBlank box. This will improve the smoothness of the window animations significantly if you're sensitive to the choppy animations.

Compiz animations can also be choppy due to NVidia's PowerMizer feature, which slows down the GPU to conserve power when it is not in use. This works well for 3D games which constantly use 3D acceleration, but poorly for Compiz which uses the GPU in small bursts. It seems that the interval of the PowerMizer is way too long and is not speeding up when using in bursts. Fortunately, the situation seems to have improved in version 177 of the NVidia driver. To workaround this problem, I made a couple of shell scripts which keep the GPU at its highest speed while running on AC power. The first one is named "powermizer-loop" and does most of the work:

#!/bin/sh

while true; do
    
    powerstate=`cat /proc/acpi/ac_adapter/AC/state | awk '{print $2}'`
    
    if [ $powerstate = "on-line"  ]; then
       nvidia-settings -q all > /dev/null
    fi
    sleep 25;
done

The second is named "powermizer-off" and starts up powermizer-loop when I log in, ensuring that only one copy runs at a time:

#!/bin/sh

killall powermizer-loop
~/powermizer-loop &

I put both of these scripts in my home directory and made them executable by doing:

chmod a+x powermizer-loop powermizer-off

Then to make powermizer-off run on login, I opened System --> Preferences --> Sessions, clicked on Add, and entered the command to run the script, i.e. "/home/<user>/powermizer-off".

Of course, performance still suffers when running on battery, but hopefully NVidia will fix this problem in a future version of their driver.

Logging out or restarting X

See the Display setup section for how to work around this problem.

EDID misdetection

EDID (Extended Display Identification Data) might be misdetected for your display, which reduces the number of resolutions available in the NVidia X Server Settings application. (For example, I was unable to set my laptop's screen to 1024x768 for use with a projector during a presentation.) If you encounter this problem, add the following lines to /etc/X11/xorg.conf in the "Screen" section:

Option "UseEdidFreqs" "FALSE"
Option "HorizSync" "40-70"

The 40-70 values are just an example. They seem to work well with my 1680x1050 display. You should put the values of your display there. On a 1920x1200 display, making this change prevents the display from coming on when X starts.

Wireless not working after resume (Atheros)

After resuming from suspend, I am unable to reconnect to my wireless network. Network Manager asks me for my password over and over again but never succeeds in connecting. I'm using the Thinkpad (Atheros) A/B/G wireless card.

To fix this problem, I followed the instructions listed at https://bugs.launchpad.net/ubuntu/+source/linux-restricted-modules/+bug/275692. Specifically, I created a file called /etc/pm/config.d/01-modules and put the following line in it:

SUSPEND_MODULES="ath_pci"


Other Information

Brightness control on battery power

By default, when unplugging the AC power while the system is running, the brightness of the display goes down even when you have set not to in the Power Management settings and you are not able to reach a brightness level as high as possible when connected to AC power. This is not a software setting or GNOME bug, but a BIOS setting. In the BIOS you can find a brightness setting in the Power section. Set it to high for normal, expected behavior. You can let the GNOME Power Manager still lower the brightness, but you will be able to increase it when needed.

Compared to Hardy (8.04)

Why upgrade your T61p to Intrepid or why not? (Specific for T61p)

Improvements

  • Ricoh SD card reader now reads read-only SD card. (Tested with Adata 150X 2GB SD card)
  • Newer Wireless LAN drivers. For Intel cards this results in working LED, more sensitive reception, increased stability of connections and some 802.1x bugfixes.
  • Out-of-the-box Suspend to RAM functionality (also faster resume).
  • Working but slow Suspend to Disk functionality.

Bugs and Regressions

  • Hard radio killswitch (at the front) cannot bring WLAN back up after killing it. (workaround available)
  • X hangs for approx. 35 seconds when restarting or logging out. (workaround available)
  • Atheros WLAN not working after resume from Suspend to RAM (but a workaround is available; see above).