Installing Ubuntu 7.10 (Gutsy Gibbon) on a Thinkpad T60
Contents
Features
Graphical Configuration Tool
Some Thinkpad T60s laptops ship with ATI video cards. Previously Ubtuntu 7.04 Open Source video drivers could be graphically configured with a minimal utility that allowed to choose a single resolution. However, users could be compelled to use the non-free ATI video driver (Fglrx) because ATI shipped a more featureful utility, Catalyst Control Center. Gusty Gibbon now ships a more fully-featured utility, making the Open Source video drivers a more attractive choice.
Desktop 3D effects
Compiz Fusion is enabled by default and will bring 3D desktop visual effects that improve the usability and visual appeal of the system. Ubuntu 7.10 automatically detects whether the hardware is capable of running Compiz]; if not, it falls back to normal desktop.
Installation
Installation of Gutsy Gibbon on the ThinkPad T60 went without a hitch.
Dual booting
I was able to resize an existing ext3 partition and perform a new install of Ubuntu 7.10 without removing Feisty Fawn. If you are resizing or installing Gutsy Gibbon on a clean partition while maintaining other operating system partitions, I would suggest reinstalling the Grub boot loader so a fresh partition is created with Gutsy Gibbon and other existing OSes like Feisty Fawn or Fedora.
Known Issues
ATI Fglrx breaks over suspend resume
If your laptop uses the ATI Fglrx driver and you have a perfectly fine Ubuntu Feisty 7.04 installation, Fglrx breaks on a suspend/resume after an upgrade to 7.10. The Open Source driver is available as an alternative; else it is recommended to not upgrade until Ubuntu bug 121653 is fixed or either:
- Manually upgrade to fglrx-8.443.1 where it has been recently fixed (see #Upgrading to FGLRX-8.443.1).
- Build a SLAB-enabled kernel (see #Building a custom kernel).
Failure to display usplash during boot
If you see a black screen during the boot process in the internal panel, edit the file /etc/usplash.conf and check that the resolution is OK:
# Usplash configuration file xres=1024 yres=768
After that, issue the command:
$ sudo update-initramfs -u
And reboot..
Failure to auto-detect resolution on ATI Fglrx
- T60 with ATI Mobility Radeon X1400 at 1400x1050 (Flexview)
- T60p with ATI Mobility FireGL V5250 at 1400x1050 (Flexview)It is possible to have a fresh install of Gutsy, however, you will have to type several commands to load the ATI restricted drivers. The trick is two-fold.
- Gutsy will auto attempt to set the resolution. When it fails, it will give you an error message saying that it will try again in two minutes. This means you have small windows of opportunity (2 minutes each) to type in your needed commands.
- The resolution will be stretched such that the command prompt will be off the screen (bottom). You will have to hit Enter about 10-14 times in order to see what was at the bottom of the screen.
With that said, this is how you can install Gutsy:
- Boot off Live CD - highlight Install with Safe Mode Graphics, then press F6 for additional options.
- In the command line at the end, delete "quiet" and change "splash" to "nosplash"
- Start the install. After awhile, your screen will start flashing as Gutsy tries to find a resolution. Just let it go until you get a blue screen saying that it will try again in two minutes. Press Enter to exit.
- Press enter about 10-14 times until you can see a command prompt.
$ sudo apt-get update
$ sudo apt-get install -y xorg-driver-fglrx
$ sudo depmod -a
You may need to hit enter a few times to see what's going on.
Then Enter:
$ sudo aticonfig --initial
$ {{{1}}}
Hopefully you'll get all of this typed in under 2 minutes. But if not, don't worry. If the screen starts flashing, just let it go until you see the blue screen with the error message saying that it will try again in 2 minutes.
When you're finished, let the 2 minute timer run out by just waiting. This time, however, when the screen starts flashing, it will start the X server.
- Install Ubuntu.
- Reboot.
- When you boot for the first time, you will have to REPEAT THE PROCESS. However, you may need to login as well as confirm your sudo password, which will be tricky since you may not be able to see the prompt off screen. One alternative is to:
Hit CTRL + ALT + F2 which will take you to a login screen. Login, and repeat the process, ignoring the flashing screens that will appear every 2 minutes. When you are finished with your typing:
$ startx
Then once you're in Ubuntu, immediately click on the restricted drivers icon and enable ATI's fglrx. Then reboot.
Post-Installation Setup
ATI Fglrx with Compiz
ATI Fglrx users need to manually install the Xgl X server to run Compiz:
$ sudo apt-get install xserver-xgl
And reboot...
Fix suspend/resume
If you suffer from Ubuntu bug 121653 and you choose to fix it via the two following methods, first you need to make a few changes to /etc/default/acpi-support:
POST_VIDEO=false RADEON_LIGHT=true ENABLE_LAPTOP_MODE=true
Upgrading to FGLRX-8.443.1
This driver fixes the issues with suspend/resume. Uses the new codebase so, if you want stabillity, stick to 8.40.1 It is not recommended to use it with AIGLX yet, but works perfectly with XGL. (That's not my experience; I installed 8.443.1 with Envy and saw lots of graphic garbage on the screen. For my FireGL 5200, 8.40.4 with a cucstom kernel as described below works much better --Dave)
Install dkms:
$ sudo apt-get install debhelper build-essential dkms
Download ati-driver-installer-8.443.1-x86.x86_64.run from an ATI.
Run:
$ chmod a+x ati-driver-installer-8.443.1-x86.x86_64.run
Build the packages:
$ sudo ./ati-driver-installer-$VER-x86.x86_64.run --buildpkg Ubuntu/gutsy
Install:
$ sudo dpkg -i *.deb
Disable 8.37.1 from the restricted modules. Edit /etc/default/linux-restricted-modules-common and add to the list:
DISABLED_MODULES=fglrx
Make sure that you are using the ATI restricted driver under 'System - Administration - Restricted Drivers.'
Active Protection System (Reduced Power Version)
Build a custom kernel
- Without any package manager (make and make install)
- The debian way (make-kpkg and module-assistent): one package per module
- The ubuntu way (see below): most of the modules in two packages: linux-restricted-modules and linux-ubuntu-modules
The following commands will generate these files (2007-12-23):
linux-headers-2.6.22-14-thinkpad_2.6.22-14.47_i386.deb linux-image-2.6.22-14-thinkpad_2.6.22-14.47_i386.deb linux-image-debug-2.6.22-14-thinkpad_2.6.22-14.47_i386.deb linux-restricted-modules-2.6.22-14-thinkpad_2.6.22.4-14.10_i386.deb linux-ubuntu-modules-2.6.22-14-thinkpad_2.6.22-14.37_i386.deb
First you need to get the hdapsd disk-protect patch (disk-protect-2.6.22.9-2.patch) at [1].
Then get the kernel source:
$ sudo apt-get build-dep linux-source-2.6.22
$ apt-get source linux-source-2.6.22
$ cd linux-source-2.6.22-2.6.22
Patch the kernel (optional, required for Active Protection System (hdapsd)):
$ patch -p1 < ../disk-protect-2.6.22.9-2.patch
Rename the kernel flavour: generic -> thinkpad
$ mv debian/config/i386/config.generic debian/config/i386/config.thinkpad
$ mv debian/abi/2.6.22-14.46/i386/generic debian/abi/2.6.22-14.46/i386/thinkpad
$ mv debian/abi/2.6.22-14.46/i386/generic.modules debian/abi/2.6.22-14.46/i386/thinkpad.modules
Create a dummy control file entry:
$ mv debian/control debian/control.orig
$ sed s/-2.6.22-14-generic/-2.6.22-14-thinkpad/ debian/control.orig > debian/control
Change kernel config: SLUB -> SLAB (optional, workaround for ATI Fglrx and suspend/resume failure)
$ echo CONFIG_SLAB=y >> debian/config/i386/config.thinkpad
Make further changes to the kernel config (optional):
$ cp -r . ../src-copy
$ cat debian/config/i386/config debian/config/i386/config.thinkpad ../src-copy/.config
$ pushd ../src-copy
$ make menuconfig
$ popd
$ rm debian/config/i386/*
$ cp ../src-copy/.config debian/config/i386/config.thinkpad
Edit---Rperkins 09:51, 16 February 2008 (CET) I think the second command listed above( the one that starts with cat ) should be as follows:
$ cat debian/config/i386/config debian/config/i386/config.thinkpad > ../src-copy/.config
Basically the redirection was left out. the purpose of this step is to cat the split config files into a single config file so it can be tweaked with menuconfig. notice if you dont put the redirection in there ( the arrow) , you will get an error on the command because the 3rd file doesnt exist.-----end Edit
Rebuild kernel config:
$ chmod 755 debian/scripts/misc/splitconfig.pl
$ chmod 755 debian/scripts/misc/oldconfig
$ debian/scripts/misc/oldconfig i386
Now build the kernel:
$ AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-thinkpad
$ cd ..
And install the kernel headers:
$ sudo dpkg -i linux-headers-2.6.22-14-thinkpad_2.6.22-14.47_i386.deb
Get ubuntu modules source:
$ sudo apt-get build-dep linux-ubuntu-modules-2.6.22
$ apt-get source linux-ubuntu-modules-2.6.22
$ cd linux-ubuntu-modules-2.6.22-2.6.22
Create a dummy control file entry:
$ mv debian/control debian/control.orig
$ sed s/-2.6.22-14-generic/-2.6.22-14-thinkpad/ debian/control.orig > debian/control
Build the ubuntu modules:
$ fakeroot debian/rules binary-debs flavours=thinkpad
$ cd ..
Get restricted modules source:
$ sudo apt-get build-dep linux-restricted-modules-common
$ apt-get source linux-restricted-modules-common
$ cd linux-restricted-modules-2.6.22-2.6.22.4
Create a dummy control file entry:
$ mv debian/control.stub.in debian/control.stub.in.orig
$ sed s/-@@ABIVER@@-generic/-@@ABIVER@@-thinkpad/ debian/control.stub.in.orig > debian/control.stub.in
$ debian/rules debian/control
Fix debian/rules (not required for me --Sascha worked out for me --Tobi):
$ mv debian/rules debian/rules.orig
$ cat debian/rules.orig | sed 's/patch\ \-p0/TEMP=\/tmp\ patch\ \-p0/g' \ | sed 's/dh_installdirs\ \-pfglrx\-control/chmod\ \-R\ u\+w\ \.\ \;\ dh_installdirs\ \-pfglrx\-control/g' \ > debian/rules
$ chmod u+x debian/rules
Build the restricted modules:
$ fakeroot debian/rules binary-debs flavours=2.6.22-14-thinkpad ati_flavours=2.6.22-14-thinkpad nv_flavours=2.6.22-14-thinkpad
$ cd ..
Install the kernel and the modules:
$ sudo dpkg -i \
linux-restricted-modules-2.6.22-14-thinkpad_2.6.22.4-14.10_i386.deb \
linux-ubuntu-modules-2.6.22-14-thinkpad_2.6.22-14.37_i386.deb \
linux-image-2.6.22-14-thinkpad_2.6.22-14.47_i386.deb
Reboot to load the kernel.
Install Active Protection System
A patched kernel, tp-smapi kernel modules >= 0.32 and hdapsd userspace daemon newer than 2007-05-24 are needed.
First get tp-smapi modules (no ubuntu package available, so get debian's tp-smapi-source package at [2]):
$ wget http://ftp.de.debian.org/debian/pool/main/t/tp-smapi/tp-smapi-source_0.34-1_all.deb
$ sudo dpkg -i tp-smapi-source_0.34-1_all.deb
Build tp-smapi modules:
$ m-a -u . -t build tp-smapi
And install tp-smapi-modules:
$ sudo dpkg -i tp-smapi-modules-2.6.22-14-thinkpad_0.34-1+2.6.22-14.47_i386.deb
First test:
$ sudo rmmod hdaps
$ sudo modprobe -a tp_smapi hdaps
Now get and install hdapsd userspace daemon (Ubuntu Gibbon's hdapsd package is too old, so get Hardy's version at [3]):
$ wget http://mirrors.kernel.org/ubuntu/pool/universe/h/hdapsd/hdapsd_0.0.20070803-1_i386.deb
$ sudo dpkg -i hdapsd_0.0.20070803-1_i386.deb
You need to update the udev rules:
$ sudo udevtrigger
Check /etc/default/hdapsd to make sure it is trying to protect your internal hard drive. Laptops with SATA drives (like my T60p) will need an edit for sure.
Reboot... and check your syslog for scsi_protect_queue() and scsi_unprotect_queue() log messages...
See also
- Installing Ubuntu 8.04 (Hardy Heron) on a Thinkpad T60
- How to reduce power consumption
- How to get special keys to work