Install Ubuntu Intrepid Ibex on a T61p

From ThinkWiki
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 (fix below)
  • 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
    • fingerprint reader does NOT work (fix below)
  • 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 (Note: if you want to have better 2D performance without breaking suspend/resume, you will have to manually install the 180.25 driver manually as it is not included in the official Intrepid repo).

  • pro:
    • Version 177 is recommended because it will provide Suspend to disk functionality, whereas v173 will not.
  • con:
    • version 177 causes a log out bug that is addressed below.
    • version 177 might show some issues like terminal output not updating in some very weird cases (which I did not see in v173, this seems to have something to do with powermizer as well ...)
  • Early version of the 180 drivers break the suspension/resume, however 180.25(beta) driver has fixed this issue as well as improved 2D performance in X. As of Jan 29, 2009, the 180 series drivers have been added to the official repository under the name nvidia-glx-180. The 'intrepid-updates' repository has to be enabled via

System --> Administration --> Software Sources --> Updates

to download the drivers. The 180.11 version does not seem to have any suspend / hibernate issues.

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 increasing the value from its default, GDM will give X more time before it assumes X is faulty.

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 (also might be called CompizConfig Settings Manager). 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.

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.

A better but more complicated way would be using Phoenix EDID Designer to dump and fix the EDID data and then setup the Nvidia driver so it will use the customized EDID data, as described at [1]

Microphone/Sound In

Might need to be turned on in the mixer. See Install Ubuntu Hardy Heron on a T61p#Internal Microphone/Microphone Input Jack

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):

  • Right click the network manager icon in the tray, uncheck Enable Wireless, then check it again does the trick (at least for me)
  • # ip l s wlan0 up
  • # modprobe -r iwl3945 && modprobe iwl3945
  • reboot
  • suspend and resume

Middle-button Scrolling

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.

Michael Vogt described how to get middle-click scrolling to work again in Intrepid.

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

Paste 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 this is not confirmed to work.

source:

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 line which contains pam_unix.so and add

try_first_pass

to the end of the line containing pam_unix.so.

So it should look something like this:

...
auth    sufficient                      pam_thinkfinger.so
auth    [success=1 default=ignore]      pam_unix.so nullok_secure try_first_pass
...

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"
  • 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:

Hard Drive Active Protection System (APS ~ HDAPS)

Please add to this section

Some interesting links:

Other Problems

Resume Disables WLAN

On power up CDMA WLAN module is enabled, if user suspense and resumes it is turned off - no known fix. Additionally fn-F5 turns off bluetooth but no option to turn off WLAN using function keys. This is problem is on the 6459CTO.

Resume Requests WIFI Network Key

On resume Network Manager request the wifi network key several times before connecting to network. This has been noted on a 6459CTO laptop and no known fix is available. Currently with this problem it takes several minutes to regain network access after resume.

Black Screen on Resume

On the 6459CTO with default 8.10 install suspend did not work. Enabling the proposed updates to be installed to your system might fix this issue. To enable the proposed updates go to the 'Software Sources' - tab 'Updates' in System -> Administration. Tick the 'Proposed updates (intrepid-updates)' checkbox, close 'Software Sources' to reload the package lists. Then, check for updates with the software updater (there should be some), update and reboot afterwards.

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"

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.

Kernel Panic (System freezes and Caps lock blinks)

When you are connected via Wireless and using it a lot some times you computer just freezes? This is caused by a bug on the wireless card drivers for the Intel Corporation PRO/Wireless 4965 AG or AGN. To fix you need newer drivers from the backport modules:

 sudo apt-get install linux-backports-modules-intrepid


--Lunatico 14:34, 3 April 2009 (UTC)

Software Install

Adobe Flash

Adobe has plug-ins direct for 32 bit version for x64 download the libflashplayer.so file from here: http://labs.adobe.com/downloads/flashplayer10.html Then copy to the mozilla plugins directory

sudo cp libflashplayer.so /usr/lib/firefox-addons/plugins/

Other Information

Saving power

Some nice information on power saving you can find at

http://www.lesswatts.org

A tool that allows you to test most tips and tricks to reduce power is powertop, you can install it using

$ sudo apt-get install powertop

and run it with:

$ sudo powertop

For more information see http://www.lesswatts.org/projects/powertop/

Battery control by tp_smapi

You need to load a kernel module first:

sudo modprobe tp_smapi

Now, you will be able to have significantly more control over your battery charging via /sys/devices/platform/smapi.

For example, you could set a threshold value of 90% for charging, preventing the battery from charging all the way in exchange for a reduction in the loss of battery capacity that occurs after multiple cycles.

echo "90" | sudo tee -a /sys/devices/platform/smapi/BAT0/stop_charge_thresh

(by default this was set to 86% on my laptop)

View the number of charge cycles your battery has had in its lifetime:

cat /sys/devices/platform/smapi/BAT0/cycle_count

While AC connected, force discharging of your battery:

echo "1" | sudo tee -a /sys/devices/platform/smapi/BAT0/force_discharge

For convenience, you could load the kernel module at boot time by adding it to /etc/modules.

echo "tp_smapi" | sudo tee -a /etc/modules

If you have an Ultrabay battery, you might want to place this script into /etc/crontab to keep the Ultrabay battery from being completely discharged to 0%, which permanently damages the battery.

# rolls to BAT0 when remaining capacity on BAT1 is less than 20%.  Change .2 if wanted.  Swap BAT0 and BAT1 if tp_smapi thinks the ultrabay is BAT0.
awk '{if (/remaining capacity/) left=$3; if (/last full capacity/) full=$4} END {if ((left/full) < .2) system("echo 1 > /sys/devices/platform/smapi/BAT0/force_discharge")}' /proc/acpi/battery/BAT1/*

Remember the script needs root in order to write to the files in /sys/devices/platform/smapi/BAT{0,1}/.

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). Not on 6459, (see above)
  • 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).