Difference between revisions of "Installing Ubuntu 7.04 on a ThinkPad T43"

From ThinkWiki
Jump to: navigation, search
(Disk Protection)
(Disk Protection: Removing fakeroot calls made within a root shell, these are not necessary. Compiling hdapsd with gcc-3.4 does not fix the No such file or directory issue.)
Line 123: Line 123:
 
  {{cmdroot|make clean}}
 
  {{cmdroot|make clean}}
 
  {{cmdroot|make oldconfig}}
 
  {{cmdroot|make oldconfig}}
  {{cmdroot|fakeroot make-kpkg clean}}
+
  {{cmdroot|make-kpkg clean}}
  # fakeroot make-kpkg --append-to-version=.hdapscustom kernel_image --initrd binary  
+
  # 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:
 
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:
Line 139: Line 139:
 
Do the same for all packages that were created for restricted modules. Maybe you have to create them first with something like:
 
Do the same for all packages that were created for restricted modules. Maybe you have to create them first with something like:
  
  # cmdroot|fakeroot make-kpkg --append-to-version=.hdapscustom --added-modules madwifi modules_image
+
  # make-kpkg --append-to-version=.hdapscustom --added-modules madwifi modules_image
  
 
And let's not forget to leave the super user shell
 
And let's not forget to leave the super user shell
Line 169: Line 169:
  
 
If you move your Laptop you should now see the console printing messages if the disk is parked or not.
 
If you move your Laptop you should now see the console printing messages if the disk is parked or not.
{{HELP|It didn't work for me: hdapsd only starts with sudo. Without it says "open(protect_file): Permission denied". The output of sudo hdapsd is saying parking/un-parking, but with a lot of "open: No such file or directory" in between. Any help is appreciated! Use gcc-3.4 to compile, then it should work.}}
+
{{HELP|It didn't work for me: hdapsd only starts with sudo. Without it says "open(protect_file): Permission denied". The output of sudo hdapsd is saying parking/un-parking, but with a lot of "open: No such file or directory" in between. Any help is appreciated! Use gcc-3.4 to compile, then it should work.  This is not a solution, when compiled with gcc-3.4 that ships with Gusty the behavior is worse than with gcc-4.1.3.}}
  
 
$ dmesg | grep protect
 
$ dmesg | grep protect

Revision as of 02:11, 21 November 2007

Overview

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
  • ThinkLight
  • ATI 3D Acceleration (Mobility Radeon X300)
  • AIGLX / Compiz

Was easy

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

Untested

  • Bluetooth (light indicates working)
  • Modem
  • IrDA
  • TV out, VGA out

Installation

I just installed Feisty using the graphical installer.

ATTENTION!
Installing grub to the MBR may hurt your Rescue 'n' Recovery Partition!

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.

Configuration

3D Acceleration

Compiz

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.

Beryl

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

Problem

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.

Compiz-Fusion

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)

Acceleration Monitor)

The T43 has a great system to protect your hard disk, the Active Protection System APS. HDAPS and How to protect the harddisk through APS describe how you can use it.

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
# exit
$ sudo modprobe hdaps

For a nice 3D show type:

$ sudo apt-get install hdaps-utils
$ hdaps-gl

Now you can evaluate acceleration of your Laptop. Your hard disk unfortunately still is not protected. To achive this, try the next chapter.

Disk Protection

Hint:
This one is a little harder to do and can easily fail. If you want to try it anyway, remember, it might not work. In that case you can always reselect your old kernel in grub when booting. So you'd better not delete the old kernel...

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.

Hint:
If you do not use restricted drivers you can leave that out. I need them for making my atheros wifi working using madwifi.

# 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.

Hint:
Go on here if you don't want restricted drivers

Now let's build the kernel; if you need help on this look at this or that howto from howtoforge.

# 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
# dpkg -i linux-headers-2.6.20.3-ubuntu1.hdapscustom_2.6.20.3-ubuntu1.hdapscustom-10.00.Custom_i386.deb
# dpkg -i linux-doc-2.6.20.3-ubuntu1.hdapscustom_2.6.20.3-ubuntu1.hdapscustom-10.00.Custom_all.deb 
# dpkg -i linux-image-2.6.20.3-ubuntu1.hdapscustom_2.6.20.3-ubuntu1.hdapscustom-10.00.Custom_i386.deb
# dpkg -i linux-manual-2.6.20.3-ubuntu1.hdapscustom_2.6.20.3-ubuntu1.hdapscustom-10.00.Custom_all.deb 
# dpkg -i linux-source-2.6.20.3-ubuntu1.hdapscustom_2.6.20.3-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

# exit

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

Hint:
What is the best way to start the userspace daemon automatically at boot time? -- There is an init script available in the hdapsd package from the debian (lenny) repos. Just install the package and replace the /usr/bin/hdapsd with the one you compiled --Mozz 07:55, 30 September 2007 (UTC)

If you move your Laptop you should now see the console printing messages if the disk is parked or not.

Help needed
It didn't work for me: hdapsd only starts with sudo. Without it says "open(protect_file): Permission denied". The output of sudo hdapsd is saying parking/un-parking, but with a lot of "open: No such file or directory" in between. Any help is appreciated! Use gcc-3.4 to compile, then it should work. This is not a solution, when compiled with gcc-3.4 that ships with Gusty the behavior is worse than with gcc-4.1.3.

$ 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
Help needed
Everything seems to work fine with the patched kernel - unless wifi. Ubuntu doesn't find my wireless device anymore. Probably this is because my Atheros card needs restricted modules. Find more infos on http://madwifi.org/wiki/ on compiling Atheros wifi modules. Maybe the kernel compile goal modules or modules_image could help. Could please someone detail the preferred way to handle this?

o/servers/}}

Afterwards add the applet to your panel manually. Be sure to see the play/pause sign switching when moving your laptop :-)


Help needed
The applet always shows the play sign, never the pause sign. I think this the same problem like the hdapsd-sudo problem -- Make sure, it doesn't due to the sensitivity value of 15 you specified when starting the daemon (it has to be a value between 0 and 1)

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.

Fingerprint Reader

How to enable the fingerprint reader has a good explanation for a very complicated way of activating your fingerprint reader using a restricted driver.

A free alternative to this is available at [1]: How to enable the fingerprint reader with ThinkFinger provides more details, also the Ubuntu wiki does.

Special keys

If the following standard settings are not enough for you, you'll find more info here: How to get special keys to work

Access IBM to start application

The Access IBM works 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...

CAPS to substitute Win/Super

For using your CAPS key as a replacement for the lacking Win/Super 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

Forward/Backward in browsers

Firefox

For using the Forward/Backward 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"/>
Opera

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
Konqueror

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 Ctrl + Alt + Backspace.

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

IrDA

Find information here: How to make use of IrDA

VGA out

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

  1. determine your swap with $ sudo fdisk -l. In my case it was /dev/sda2
  2. do mkswap on your swap partition and record the uuid which this command outputs, e.g. $ sudo mkswap /dev/sda2
  3. 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
  4. 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>"
  5. do $ update-initramfs -u
  6. update your grub configuration; edit it with $ sudo gedit /boot/grub/menu.lst and look for the line that says "# defoptions=quiet splash" and change it to "# defoptions=quiet splash resume=<the-swap-partition-uuid>"
  7. reboot normally. After this test with $ sudo free or with $ swapon -s if your swap is now activated
  8. Now you can test hibernate, too.

Thanks to various people on the bug thread.


Bluetooth

I do not need it, so I just switched it off using

# echo disable > /proc/acpi/ibm/bluetooth

More info on how to use Bluetooth can be found in How to setup Bluetooth, nice HowTos are available in the Ubuntu wiki.


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:

BLUETOOTH_ENABLED=1

HIDD_ENABLED=1 HIDD_OPTIONS="--master --server" HIDD_OPTIONS="--connect XX:XX:XX:XX:XX:X --server"

Repeat the --connect line for each device.


More info on how to use Bluetooth can be found in How to setup Bluetooth, nice HowTos are available in the Ubuntu wiki.

References

See also

External links

Hope this helped :-) tec