Installing Ubuntu 7.04 on a ThinkPad T43
Worked right out of the box
- 1400*1050 resolution
- Battery Management
- Ultra Nav (Trackpoint and synaptic touchpad)
- WLAN (Atheros, IBM 11a/b/g Wireless LAN Mini PCI Adapter II)
- Hibernate and Standby (some installs have problems with hibernate)
- Fn keys (switch between monitors untested)
- Audio Keys
- ATI 3D Acceleration (Mobility Radeon X300)
- AIGLX / Compiz
- Fingerprint reader
- AIGLX / Beryl
- middle key of Ultra Nav (Trackpoint) for scrolling
- Active Protection System (acceleration sensor)
- Forward/Backward keys, Access IBM Key
- Toggle Touchpad on/off
Was very hard
- Active Protection System (hard disk parking needs kernel recompile)
- Bluetooth (light indicates working)
- TV out, VGA out
InstallationI just installed Feisty using the graphical installer. If you want to keep you Rescue 'n' Recovery Partition, read this blog entry.
Whatever you do, you should care about Backups etc. yourself. A starting point is given in Installing Ubuntu 6.10 on a ThinkPad T43#Installation
The only non-free driver that was activated was atheros for wifi access. For graphics the free ati/radeon driver was activated, the restricted ati alternative fglrx was installed but not enabled. I did not try it.
3D Acceleration and Compiz worked out of the box for me. Just activate it in the system menu under desktop effects. I had some minor issues, but I blame the beta status for that. To test if 3D Acceleration it works, if you have problems, type
$ glxinfo | grep rendering
The answer should be: "direct rendering: Yes". If it says "No", you don't have 3D acceleration.
I just installed following packages and started beryl-manager. Everything just works out of the box. If you enable compiz effect in the gnome menu you can even swith between beryl, compiz and metacity (no effects) just using the beryl-manager applet.
sudo apt-get install beryl beryl-core beryl-manager beryl-plugins beryl-plugins-data beryl-settings beryl-settings-bindings
If you have problems watching videos when 3D acceleration is enabled, make sure to use the X11 output format. Follow the instructions in this bug to do so.
To try out Compiz-Fusion, i.e. early versions of the merge between beryl and compiz, there are many installation guides available on the net, e.g. in the Ubuntu Forum.
Active Protection System (acceleration monitor)
Feisty comes with with the accelerometer installed but not activated. To test it activate the kernel module and use a neat program you find in hdaps-utils
To activate it, type:
$ sudo su
# echo "hdaps" >> /etc/modules
$ sudo modprobe hdaps
For a nice 3D show type:
$ sudo apt-get install hdaps-utils
Now you can evaluate acceleration of your Laptop. Your hard disk unfortunately still is not protected. To achive this, try the next chapter.
You'll probably need the following packages:
$ sudo apt-get install build-essential fakeroot kernel-package libncurses5-dev wget bzip2
Test your kernel version with
$ uname -r
If you see 2.6.20-15-generic, you can just follow the provided instructions. If you have a different version, adapt this howto to your personal needs. Download the right patch for your kernel version, in my case it was 2.6.30 rc, but now (may 2007) there is a newer available: 2.6.20 You'll find more patches in HDAPS#Disk_head_parking
Get the kernel sources and patch them:
$ sudo su
# cd /linux/src
# apt-get install linux-source
# cd linux-source-2.6.20
# patch -p1 -l < /home/silvan/993-001.bin
If you only saw some lines saying "patching line..." and "succeeded...", then everything is fine.
# sudo apt-get install linux-restricted-modules-generic linux-restricted-modules-common
Take necessary steps for whatever restricted kernel module you want to use, e.g.
For atheros wifi get madwifi-source, I used the one from debian testing, as ubuntu does not povide them: debian testing madwifi-source. Install them and unpack the madwifi package in /usr/src.
# make clean
# make oldconfig
# make-kpkg clean# make-kpkg --append-to-version=.hdapscustom kernel_image --initrd binary
This will probably take a very long time, it took me roughly 1:45 hours on my T43. You have to be patient. If it didn't finish with errors, let's now install the newly built kernel. First check the name of our kernel package, and then install at least the image and the header packages. I just installed all like this:
# cd /usr/src
# ls -l
# dpkg -i linux-headers-220.127.116.11-ubuntu1.hdapscustom_18.104.22.168-ubuntu1.hdapscustom-10.00.Custom_i386.deb
# dpkg -i linux-doc-22.214.171.124-ubuntu1.hdapscustom_126.96.36.199-ubuntu1.hdapscustom-10.00.Custom_all.deb
# dpkg -i linux-image-188.8.131.52-ubuntu1.hdapscustom_184.108.40.206-ubuntu1.hdapscustom-10.00.Custom_i386.deb
# dpkg -i linux-manual-220.127.116.11-ubuntu1.hdapscustom_18.104.22.168-ubuntu1.hdapscustom-10.00.Custom_all.deb
# dpkg -i linux-source-22.214.171.124-ubuntu1.hdapscustom_126.96.36.199-ubuntu1.hdapscustom-10.00.Custom_all.deb
Do the same for all packages that were created for restricted modules. Maybe you have to create them first with something like:
# make-kpkg --append-to-version=.hdapscustom --added-modules madwifi modules_image
And let's not forget to leave the super user shell
Now is the time to reboot and to test if everything went fine ;-) Verify with
$ uname -a if you booted the right kernel. If you want you can decide which kernel should be booted by default in /boot/grub/menu.lst selecting the number of the boot entry in the line after 'default'.
Check the output of
$ dmesg | grep hdaps
In my case the new kernel printed nothing, the old kernel printed:
hdaps: IBM ThinkPad T43 detected.
hdaps: initial latch check good (0x01).
hdaps: device successfully initialized.
input: hdaps as /class/input/input4
hdaps: driver successfully loaded.
Next step is to install hdapsd, the daemon, that actually stops the hard disk. Get the latest user space daemon hdapsd. Compile and install it using
$ gcc -o hdapsd hdapsd-*.c
$ sudo cp hdapsd /usr/local/sbin/
Start hdapsd using
$ hdapsd -d sda -s 15
If you move your Laptop you should now see the console printing messages if the disk is parked or not.
$ dmesg | grep protect
should confirm this. If the output says something like
unload support NOT reported.. and
head park not requested, used standby!.., have a look at http://thinkwiki.org/wiki/Problem_with_APS_harddisk_parking and examine if your drive might have problems with the disk protection.
A useful gimmick is the gnome-hdaps-applet showing the current disk protection state in the panel. KDE users look at khdapsmonitor for an alternative. To install gnome-hdaps-applet, do the following:
$ mkdir gnome-hdaps-applet
$ cd gnome-hdaps-applet
$ wget http://www.zen24593.zen.co.uk/hdaps/gnome-hdaps-applet-20060120.tar.gz
$ tar -xzf gnome-hdaps-applet-20060120.tar.gz
$ sudo apt-get install libpanel-applet2-dev
$ gcc $(pkg-config --cflags --libs libpanelapplet-2.0) -o gnome-hdaps-applet gnome-hdaps-applet.c
$ sudo install gnome-hdaps-applet /usr/bin/
$ sudo mkdir /usr/share/pixmaps/gnome-hdaps-applet/
$ sudo cp *.png /usr/share/pixmaps/gnome-hdaps-applet/
$ sudo cp GNOME_HDAPS_StatusApplet.server /usr/lib/bonobo/servers/
Afterwards add the applet to your panel manually. Be sure to see the play/pause sign switching when moving your laptop :-)
More information can be found on How to protect the harddisk through APS or Installing_Ubuntu_6.06_on_a_ThinkPad_T43#Active_Protection_System or Howto for edgy. If you speak italian (unfortuately my level is really, really poor), Fedora on z60t might be of use to you. Maybe even somebody would find the time to translate and adopt this fedora howto to english and ubuntu?
Track Point Middle Key Scrolling
In my case the track point worked out of the box, but the middle mouse button for scrolling did not. How to configure the TrackPoint explains how to solve this. The steps you need to follow are in section "Using the X server (kernel 2.6.11+)". However you don't need to follow the steps in "EmulateWheelTimeout temporarily broken (-> fix for Ubuntu Dapper)" as this is fixed already if you have all your packages up-to-date.
Follow the instructions in the sections "Configure firefox for using trackpoint horizontal scrolling" and "Configure Opera for using trackpoint horizontal scrolling" as well, if you are using one of the two browsers.
If Firefox is scrolling into wrong directions, look at Talk:How_to_configure_the_TrackPoint#TrackPoint_scrolling_inverted_in_Firefox.
If the following standard settings are not enough for you, you'll find more info here: How to get special keys to work
to start application
Theworks out of the box. Just go to your shortcut configuration dialog and choose what action you want to connect with pressing this button, e.g. opening your home folder or the terminal, switching to fullscreen, opening help...
to substitute /
For using yourkey as a replacement for the lacking / key, add following to your ~/.Xmodmap
! No Caps Lock clear lock ! Caps Lock as Win key add mod4 = Caps_Lock
To avoid restarting X type
$ xmodmap ~/.Xmodmap
/ in browsers
For using the/ Keys in your browser add also these lines to your ~/.Xmodmap as at least Firefox gets confused with their original setting as XF86Back/XF86Forward.
! back and forward browser keys keycode 234 = F19 keycode 233 = F20
For Firefox add these lines to your /usr/share/firefox/chrome/browser/content/browser/browser.xul
<key id="goBackKb3" keycode="VK_F19" command="Browser:Back" /> <key id="goForwardKb3" keycode="VK_F20" command="Browser:Forward" />
directly after these lines:
<key id="goBackKb" keycode="VK_LEFT" command="Browser:Back" modifiers="alt"/> <key id="goForwardKb" keycode="VK_RIGHT" command="Browser:Forward" modifiers="alt"/>
For Opera add these pairs in Tool->Preferences->Advanced->Shortcuts->Keyboard setup->Edit->Browser Window->New
- If you did the Firefox Xmodmap entry: F20-Forward, F19-Back
- If you didn't add the lines: XF86Forward-Forward, XF86Back-Back
In Konqueror it's working out of the box. But if you did the Xmodmap settings you have to adjust Konqueror, too. Just go to Settings->Configure Shortcuts, look for Back and Forward and set the alternative shortcut in the custom dialog by pressing the respective key. If you are using KDE you'll be probable prefering to do that in the Configuration Center to make these changes visible to all KDE Apps.
Toggle Touchpad on/off
Some people like to be able to switch their Touchpad on and off on the fly to avoid touching it during typing or pressing buttons when having the laptop lying on the lap. The following settings make this easily possible.
Add the option "SHMconfig" to your synaptics section in the xorg.conf by typing
$ sudo gedit /etc/X11/xorg.conf and set it to "on":
... Section "InputDevice" Driver "synaptics" ... Option "SHMconfig" "on" EndSection ...
This makes the synaptics touchpad toggable during runtime. If you prefer the touchpad to be switched off always add following line instead:
Option "TouchpadOff" "1"
To make this setting working we need to restart X. The best choice is to log off your window manager (don't forget to close programs where you might loose data) and press+ + .
To switch the touchpad on and off you can use synclient. But if you prefer a program with a nice GUI, try gsynaptics (or ksynaptics if you use KDE):
$ sudo apt-get install gsynaptics
gsynaptics integrates into your gnome settings menu, ksynaptics in the KDE Control Center. They preety much look the same, ksynaptics seems to just offer one additional setting: to switch your touchpad off automatically when typing. For easier reachability I just added a shortcut to my panel.
To make gnome remember your last settings after a system restart go to your session configuration and add the program gsynaptics-init to the startup programs. I did not try this with KDE, sorry.
Find more information on Synaptics TouchPad driver for X
Find information here: How to make use of IrDA
I didn't try it, but it looks easy: How to enable VGA out
Swap and Hibernation problem
Ubunutu uses unique IDs (UUIDs) to identify partitions. The advantage of this is you do not have to differentiate between sda and hda devices. So if upgrading to modern libata drivers will work without having to rewrite hda devices to sda ones.
However feisty seems to have a problem with this naming method and swap partitions on some installations. Do
$ sudo free to check if your swap partition is used. If the line with swap it it just returns three times "0", your swap partition is not being used and you are most probably affected by bug 66637. The problem is that your system generates a new UUID for your swap partition on every reboot. Your old settings in the fstab then cannot be used anymore and your system does not use any swap. Without swap hibernate (suspend to disk) does not work either (standby/suspend to RAM still does).
Follow these instructions to fix this
- determine your swap with
$ sudo fdisk -l. In my case it was /dev/sda2
- do mkswap on your swap partition and record the uuid which this command outputs, e.g.
$ sudo mkswap /dev/sda2
- now use this UUID to put into fstab: Look for the line with the swap partition and replace the old UUID with the new one:
$ sudo gedit /etc/fstab
- add the same UUID intu your resume file:
$ sudo gedit /etc/initramfs-tools/conf.d/resume; the file should only look like this: "RESUME=UUID=<the-swap-partition-uuid>"
$ update-initramfs -u
- update your grub configuration; edit it with
$ sudo gedit /boot/grub/menu.lstand look for the line that says "# defoptions=quiet splash" and change it to "# defoptions=quiet splash resume=<the-swap-partition-uuid>"
- reboot normally. After this test with
$ sudo freeor with
$ swapon -sif your swap is now activated
- Now you can test hibernate, too.
Thanks to various people on the bug thread.
I do not need it, so I just switched it off using
# echo disable > /proc/acpi/ibm/bluetooth
Bluetooth Mouse and Keyboards
First identify your wireless mouse or keyboard. Start putting them in pairing mode, and run
# sudo hidd --search
It should show your device address and hopefully connect it. If does not get connected, or you can't see the address, type:
# hcitool scan
Then manually connect with:
# sudo hidd --connect XX:XX:XX:XX:XX:XX
Replacing the XX with your device's address.
If you want the device to be enabled each time you boot, edit your /etc/default/bluetooth (bluez-utils in some distros) with the following:
HIDD_ENABLED=1 HIDD_OPTIONS="--master --server" HIDD_OPTIONS="--connect XX:XX:XX:XX:XX:X --server"
Repeat the --connect line for each device.
- This guide is listed at the TuxMobil Linux laptop and notebook installation guides survey (IBM/Lenovo).
Hope this helped :-) tec