Installing Ubuntu 8.04 (Hardy Heron) on a ThinkPad T61p

From ThinkWiki
Revision as of 17:51, 1 June 2008 by Argilo (Talk | contribs)

Jump to: navigation, search

Display / Video

To enable 3D acceleration, the proprietary NVidia driver must be installed. To do this, I installed EnvyNG (envyng-gtk in Synaptic), then ran it (System Tools --> EnvyNG) and asked it to install the NVidia driver.

Unfortunately, there are some annoying bugs in the NVidia driver. The most annoying one is that after resuming from suspend, you will often get a blank white screen. To get past it, simply type in your password and press enter, and you will be returned to your desktop. This bug is documented in Launchpad [1] and a partial workaround is available [2]. The workaround may eventually become a part of Hardy.

Another problem is that the driver does not report the correct refresh rate to Compiz, resulting in rough animation. 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.

Finally, Compiz animations are also 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. To solve 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 755 powermizer-loop powermizer-off

Then to make powermizer-off run on login, I opened System --> Preferences --> Sessions, clicked on Add, and entered the command "/home/argilo/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.