Installing Ubuntu 5.10 on a ThinkPad R50e

From ThinkWiki
Jump to: navigation, search

This page aims to illustrate issues and (hopefully) solutions encountered while installing Ubuntu 5.10 (Breezy Badger) on a Levono ThinkPad R50e. As usual, caveat emptor. Also, don't forget to create backup CDs for your IBM Rescue and Recovery partition (see Ordering Recovery CDs).

Dapper Notes: Given that upgrading to/installing Dapper isn't very different from Breezy, I decided to update this page with special Dapper notes instead of a new entry. Therefore, unless something is labeled as Breezy/Dapper-specific, the information here applies to both versions. I should also make it clear that the following instructions were based on my experiences with upgrading my R50e to Dapper, rather than a clean install. I also chose to overwrite all the scripts that the Dapper update prompted me to, which in retrospect was a bad idea.

The configuration of the ThinkPad used is as following:

 Levono ThinkPad R50e 1834-A67 (a Taiwan-specific model?)
   Intel Celeron M 360 (Dothan 1.4GHz)
   Intel 855GM Chipset
   14' XGA (1024x768) TFT
   Intel PRO/Wireless 2200BG Mini-PCI Adapter
   DVD±RW Writer (Not removable)
   Windows XP Home


Installation/Upgrading

Installing the OS was fairly straight forward. I put in the Ubuntu install disc and pressed F12 to bring up the booting device menu. At the partitioning menu I chose to let Ubuntu resize the existing NTFS partition and create partitions it needed automatically. Everything went well and I was able to boot into both Windows XP Home and the Rescue and Recovery partition from GRUB without any extra effort. It should be noted, however, that I did this on a brand new machine. So if you had made changes to your MBR or partitioning table, you might get different results.

Dapper Note: As I described above, if you're upgrading from Breezy to Dapper, do not replace the various scripts on your system (e.g. sleep.sh, wireless.sh, etc) when the Dapper updater prompted you to. This should only be a problem if you're using Update Manager since apt (manual upgrade) doesn't replace them by default.


Networking (Breezy/Dapper without Network-Manager)

The Ethernet interface works right after installation as expected (eth1). The Intel PRO/Wireless 2200BG Mini-PCI Adapter was detected (eth0), but probably only works with open networks (I didn't have one to test). As my wireless network (Apple Airport Express) uses WPA/WPA2, I went straight on to make ipw2200 work with wpa_supplicant. This turned out to be quite a complicated task since most articles on enabling WPA on ipw2200 in Ubuntu are written for earlier versions of Ubuntu.

There are plenty of instructions on the 'net for configuring ipw2200 with wpa_supplicant. Unfortunately most of them are geared toward other distro or Ubuntu 5.04 Hoary, which make the situation confusing, to say the least. While there is an instruction specifically written for Breezy Badger, I had installed and removed different versions of drivers/firmwares so many times that I actually cannot remember exactly what made it work. Therefore, I'll provide links to website which I visited and some rough instructions on how I did it.

The driver/firmware combination that works for me is as following:

 ipw2200 1.0.8 (1.1.3 verified to work)
 Intel® PRO/Wireless 2200BG Driver Firmware 2.4 (3.0 verified to work)
 ieee80211 subsystem 1.1.6 (1.1.14 verified to work)

First, in order to compile the drivers, follow the instructions here to install the necessary packages. While you're there, follow the instructions to add extra repositories. Then go here for instructions of installing the drivers/firmware. Then finally, go here and follow the instructions from 4. Edit wpasupplicant configuration files and on; except at 5. Configure wpasupplicant to start when booting, instead of sudo ln -s ../init.d/wpasupplicant S40iwpa, do sudo update-rc.d wpasupplicant defaults.

If you have been messing around installing different versions of drivers, then you definitely want to have a look at this.

There's a really long wait during booting (if you don't have an Ethernet cable plugged in) when init.d is waiting for the network interface to load. I suspect it might have something to do with /etc/init.d/wpasupplicant, which starts the wpa_supplicant deamon and waits for the name interface to come up. I haven't go around to playing with this though, so if you find some way to modify the file to change this behavior, please contribute.

One thing that's still unsolved (beside the long wait during booting) is this error message from dmesg:

  ipw2200: Can't set TKIP countermeasures: crypt not set!

I tried disabling hardware crypto following the instructions here, but it didn't seem to do any good. Please contribute if you have a solution for this.

Here's a list of links I consulted:

 ubuntu Wiki's WPA How-To
 HOWTO: ipw2200 + wpa
 HOWTO: Compile/Install latest version of ipw2200

I do not use the built-in modem, so I didn't bother testing it. However, it was suggested here that Conexant's driver works.


Network (Dapper with Network-Manager)

One of the highlights of Dapper for laptop users is its support for Network-Manager. Network-Manager is a godsend for those that use their laptops with various wireless networks. Unlike the pain that is WPA support in Breezy, Network-Manager in Dapper allows WPA to work as you'd expect on a Mac or Windows PC (sort of), but the installation is complicated (particularly if you need to use the absolutely newest version). In short, if your ThinkPad stays on your desk and uses a static IP, you're better off not using Network-Manager, although I will provide some information on this in case you decided that Network-Manager is too cool to resist (like me).

First, follow this guide to install the newest Network-Manager and WPA support. If you know what you're doing, you could just get the packages from repository and skip the part about SVN and CVS.

For kernel updates, you'll only need to reinstall the ieee80211 system and ipw2200. Network-Manager and wpa_supplicant are not touched during minor kernel updates.

Now, if you need to use static IP with Network-Manager, you need to edit /etc/network/interfaces manually to change your IP settings. Network-Manager basically ignores interfaces that don't use DHCP, but it does insisted on overwriting your /etc/resolv.conf with nothing everytime it initializes. So you'll have to manually edit /etc/resolv.conf and add your DNS servers after every reboot and resume. I'm sure you can do this with a script, but if you use DHCP with another network adapter, that would cause a problem. Anyway, please contribute if you have a more elegant suggestion (prepending your DNS servers in /etc/dhcp3/dhclient.conf doesn't work since DHCP is not invoked when you're using a static IP).

If you use WEP/WPA, Network-Manager will request your keychain password after every reboot. This is the workaround.

Power Management

Some webpages have instructions on how to enable SpeedStep support for Celeron M. But according to Intel, none of the Celeron M processor (at least the new ones) support it. I tried loading p4_clockmod and cpufreq_userspace, and only the latter worked. I suppose it might be useful if you want to manually adjust the speed of your CPU. Or, if your CPU supports SpeedStep (e.g. Pentium M), see here for instructions on how to make it work.

The fan seems to work fine without any tweaking as indicated here.


Standby, Sleep and Hibernation

Standby Hitting Fn+F3 blanks the screen and turns the backlight off. It works right out of the box.

Sleep To make sleeping work, the following changes are needed:

Open a terminal and enter this command:

  sudo gedit /etc/default/acpi-support

And uncomment "ACPI_SLEEP=true" (by removing the # character in front of it)
Dapper Notes: 
  * Also uncomment "SAVE_VIDEO_PCI_STATE=true" in /etc/default/acpi-suuport.
  * Edit your xorg.conf (sudo gedit /etc/X11/xorg.conf) so that the device section looks like this:
      Section "Device"
        Identifier "Intel Corporation 82852/855GM Integrated Graphics Device"
        Driver "i810"
        BusID "PCI:0:2:0"
        Option "VBERestore" "true"
      EndSection

Then

enter those commands in terminal:

  sudo cp /etc/acpi/sleep.sh /etc/acpi/sleep.sh_backup
  sudo gedit /etc/acpi/sleep.sh

Replace the line "echo -n $ACPI_SLEEP_MODE >/sys/power/state" with 
(take from Problem with display remaining black after resume):
  
  # change to console 1
  FGCONSOLE=`fgconsole`
  chvt 6

  # safe video state
  cat /proc/bus/pci/00/02.0 > /tmp/video_state

  # sync filesystem
  sync

  # sync hardware clock with system time
  hwclock --systohc

  # go to sleep
  echo -n 3 > /proc/acpi/sleep

  # waking up
  # restore system clock
  hwclock --hctosys

  # restore video state
  cat /tmp/video_state > /proc/bus/pci/00/02.0

  # change back to X
  chvt $FGCONSOLE

  # clean up behind us
  rm /tmp/video_state


Press Fn to wake up. Screen locking works consistently, unlike standby. I should note that according to Problem with display remaining black after resume, just editing xorg.conf should do the trick in Dapper, but I haven't tried this yet.

Hibernation Hibernation works straight out of the box. Press Fn+F12 or choose Hibernation from the logout menu to hibernate.

Dapper Note: If you use Network-Manager with ipw2200, you might have problem reactiving it after resuming. Specifically, if you have a clean Dapper install or the Dapper updater replaced your wireless.sh, you need to edit /etc/acpi/wireless.sh so that it uses this commend to shutdown ipw2200:

 echo -n 3 > $DEVICE/device/power/state; (instead of echo -n 2 > $DEVICE/device/power/state;)

This bug is explained in detail here. Alternatively, a more elegant solution can be found here.

Display and external monitor

The built-in Intel Extreme Graphics 2 works just fine with the built-in display. You can use i855crt (proceed with caution) to make the TFT and external monitor/projector mirror each other, but I found that much less useful than screen spanning. I'm still working on this. Please contribute if you have a solution.

If you want to experiment with it, a partial solution is proposed in the discussion section.

Various Tweaks

Breezy Only: Refer to Installing Ubuntu 5.04 on a ThinkPad T43 (1875) for the following tweaks:

 *  Don't slow down boot-up by synchronizing with network time
 *  Don't slow down boot-up when no Ethernet cable is attached

Refer to Ubuntu Linux 5.10 Breezy Badger on an IBM ThinkPad T42 for the following tweaks:

 *  Enable TrackPoint middle-button scrolling
 *  Enable Page-Back and Page-Forward keys in Firefox (doesn't yet work with FireFox 1.5)
       Note: I suggest configuring them as PgUp and PgDn instead. Just put this in ~/.Xmodmap:
                 keycode 234 = Prior
                 keycode 233 = Next
             Log out and log again.
 The following are Breezy only.
 *  Install on-screen confirmation for the ThinkPad buttons (other than Fn+F5)
 *  Visual feedback for Fn+F5 (I'd recommend against it because the script crashed my system.)

In Dapper, tpb module has been replaced by gdm with its built-in functions. Unfortunately at the moment it only support visual feedback for volume changes. There's no on screen feedback for brightness adjustments or the ThinkLight. It is not yet possible to remap the Access IBM button, either. Please contribute if you have a workaround.


Special Notes on speeding up booting by not initiating network interface(s) and/or ifplugd (non-Network-Manager only)

If you have ipw2200 configured with wpa_supplicant, you should leave HOTPLUG_INTERFACES="" in /etc/default/ifplugd as it is. Otherwise it produces an annoying error message during booting. Also, ipw2200+wpa_supplicant takes a long time to initiate, so there's still a wait during booting, and I haven't found a way around it yet (besides plugging in an Ethernet cable). There is a fix suggested in here, but it doesn't seem to work when you have ipw2200 working with wpa_supplicant (it actually disables the wireless connection). If you have any suggestions, please let me know.


References

Installing Ubuntu Breezy Badger (5.10) on ThinkPad R50e (German)

Ubuntu Linux 5.10 Breezy Badger on an IBM ThinkPad T42

Linux on an IBM ThinkPad R50e (a really good guide if you're into further tweaking your system)

External Sources