Ubuntu Linux on the IBM ThinkPad T42

/*Note: This is a work in progress, and will be updated frequently as my experiences with Ubuntu on my T42 continue. Please contribute by emailing me or leaving a comment below.

Last updated: 1/19/05

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones

Table of Contents

  1. Introduction
  2. Installation
  3. Post-Install Tweaks
  4. To Do
  5. Miscellaneous Output

I recently “resolved” the issues barring me from running Linux on my ThinkPad. Specifically, I needed to run some software for work that was completely not working under Linux (believe me: I tried). I “fixed” this by finally setting up my work ThinkPad for remote access, leaving me free and clear to destroy my personal T42.

I’ve been a huge fan of Fedora in the past, and I’ve had excellent luck with it on the desktop front, but I recently started installing Ubuntu (oo-BOON-too) on a few workstations (notably, my Mac mini).

Installation

After backing up my Windows installation (just in case), I downloaded the install image for the Ubuntu 5.04 (Hoary Hedgehog). TuxMobil links to a user who successfully installed Ubuntu on his T42p, so I was feeling good about the installation. Unfortunately, his page is really a bunch of quick notes from research he did before buying the laptop, and is quite difficult to digest. Which brings me to begin this guide.

From the moment the ThinkPad booted from the Ubuntu install CD, I knew I was in for a treat. Everything went smoothly – even detecting the IBM a/b/g wireless miniPCI card “out of the box.” Installation does take a while, since are given (and should take) the option of downloading the latest packages from the Ubuntu servers. Luckily, my office has a bona-fide 100Mbit connection to the Internet. If you’re on a “standard” cable connection, it’ll probably take a few extra minutes. In less than 20 minutes I was sitting at the beautiful Ubuntu login screen.

Some notable comments on hardware support:

  • Sound: works out of the box, and the volume controls on the ThinkPad’s keyboard work as well.
  • Network: both wired and wireless (IBM/Atheros a/b/g miniPCI) work “out of the box.”
  • Video: The video card is detected correctly as an ATI Radeon Mobility 9600, and xorg uses the ati driver, which doesn’t include 3D accelleration support. To enable support, we’ll have to install ATI’s fglrx drivers (see below).
  • Hard Drive Active Protection: The new ThinkPads are equipped with IBM’s patented hard drive protection technology. The IBM Active Protection System detects system acceleration like that which occurs in a fall or sudden move and responds by temporarily parking the drive’s head. This feature can save your hard drive in the event of a fall or sudden impact. The IBM drivers for Windows display the system status and show a nifty graphical representation of your ThinkPad in motion. Unfortunately, there is no support for Linux yet.
  • ACPI: Yes! Finally, a distribution that support sleep and suspend “out of the box.”

Post-Installation Tweaks

Linux just wouldn’t be Linux if there wasn’t some grunt-work to be done. Here are a few tips I to get certain things (mostly) working.

Installing a CPU-specific Kernel

We installed off the i386 installation CD, which will work fine, but will not allow us to take advantage of some architectural enhancements present in 686-generation CPUs. To remedy this, we’ll install the latest 686 kernel.

sudo apt-get install linux-686

Power Management

The Hoary beta provides support for suspend and resume with kernel 2.6.10 or newer and acpi-support 0.11 or later. To enable support for these ACPI functions, edit /etc/default/acpi-support and uncomment the line:

ACPI_SLEEP=true

To enable suspend to disk on Hoary, edit /boot/grub/menu.lst and go to the line starting #kopt. Add the following (replace /dev/hda5 with your swap partition):

resume=/dev/hda5

Mine looks like this:

# kopt=root=/dev/hda1 resume=/dev/hda5 ro pci=noacpi acpi_sleep=s3_bios

Finally, run sudo update-grub and reboot.

To suspend to RAM, either press the ThinkPad’s sleep button (FN + F4 or run sudo /etc/acpi/sleep.sh. To suspend to disk, either press your machine’s hibernate button or run sudo /etc/acpi/hibernate.sh. Buttons will be added to the System menu for the final release.

Video

Note: Installing the “fglrx” drivers will break suspend/resume support (for now). If anyone has a solution for the video corruption which occurs on resume, let me know.

Hoary will install the “ati” driver by default, which offers very limited 3D support. For a much speedier graphics experience, you’ll need to install the ATI “fglrx” binary driver package. Install the drivers from the repository:

sudo apt-get install xorg-driver-fglrx

Once installed, we must load the kernel module by default:

echo fglrx | sudo tee -a /etc/modules

We also need to configure Xorg to use the “fglrx” driver instead of the default “ati” driver:

sudo sed -i -e 's/"ati"/"fglrx"/' /etc/X11/xorg.conf

Now, reboot and you should end up in X with the “fglrx” drivers working correctly. You can tell by running fglrxinfo from the command line:

oaaltone@beta:~$ fglrxinfo
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9600 Generic
OpenGL version string: 1.3.4769 (X4.3.0-8.8.25)

Also, if you run glxgears, you should receive framerates of over 1,000 fps:

oaaltone@beta:~$ glxgears
6448 frames in 5.0 seconds = 1289.600 FPS
6793 frames in 5.0 seconds = 1358.600 FPS
6792 frames in 5.0 seconds = 1358.400 FPS
6783 frames in 5.0 seconds = 1356.600 FPS

ThinkPad Buttons

NOTE: At this time, the tpb package is not in the universe repository.

Install tpb (from the universe repository for support of the ThinkPad’s function keys:

sudo apt-get install tpb

Add the nvram kernel module to /etc/modules:

echo nvram | sudo tee -a /etc/modules

Make sure you add the appropriate users to the nvram group:

sudo addgroup --system nvram
sudo adduser [username] nvram

All that’s left to do is to is to make sure that udev gives read/write permissions for the /dev/nvram device to all members of the nvram group. Make sure /etc/udev/permissions.d/udev.permissions has the following lines:

misc/nvram:root:nvram:660
nvram:root:nvram:660

Upon reboot, you should see the on-screen display accompany any function key actions, like adjusting the volume with the ThinkPad’s volume control buttons.

Center-Button Scrolling

For those of us who use the award-winning TrackPoint pointing device, it’s handy to use the center, blue button for scrolling functionality. In Windows, this is taken care of by IBM’s drivers, but in Linux we can enable this feature by some editing of xorg.conf.

Open /etc/X11/xorg.conf in the text editor of your choosing, and add the following two lines to the appropriate InputDevice section (see my xorg.conf below):

Option           "EmulateWheel"
Option          "EmulateWheelButton"    "2"

Restart X and you should be able to press the center, blue button and use the TrackPoint as a scroll wheel.

To Do

There are a few things to set straight before I would consider the installation guide complete. Look for more details in the coming days/weeks/months. Here are my general notes and comments on items that will be added in the future.

  • WPA (PSK) support using wpasupplicant.
  • Suspend/resume issues with binary ATI drivers.
  • Drivers for ThinkPad Active Protection System (hard drive accelerometer).
  • Power management profile system similar to IBM’s Windows utility.

Miscellaneous Output

  • lsmod

    Module                  Size  Used by
    speedstep_centrino      7892  1
    proc_intf               3908  0
    freq_table              4004  1 speedstep_centrino
    cpufreq_userspace       4348  1
    cpufreq_ondemand        6140  0
    cpufreq_powersave       1632  0
    pcmcia                 22244  4
    video                  15972  0
    sony_acpi               5928  0
    pcc_acpi               11008  0
    ibm_acpi               17524  0
    button                  6480  0
    battery                 9988  0
    container               4320  0
    ac                      4676  0
    af_packet              21992  2
    ath_pci                60608  0
    ath_rate_onoe           8904  1 ath_pci
    wlan                  118524  3 ath_pci,ath_rate_onoe
    ath_hal               133232  2 ath_pci
    e1000                  85620  0
    yenta_socket           21344  0
    pcmcia_core            57984  2 pcmcia,yenta_socket
    snd_intel8x0m          18212  0
    snd_intel8x0           32352  2
    snd_ac97_codec         74144  2 snd_intel8x0m,snd_intel8x0
    snd_pcm_oss            52132  0
    snd_mixer_oss          19680  2 snd_pcm_oss
    snd_pcm                94696  5 snd_intel8x0m,snd_intel8x0,snd_ac97_codec,snd_pcm_oss
    snd_timer              25060  1 snd_pcm
    snd                    55012  8 snd_intel8x0m,snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
    soundcore              10016  2 snd
    snd_page_alloc          9732  3 snd_intel8x0m,snd_intel8x0,snd_pcm
    i2c_i801                8364  0
    i2c_core               22320  1 i2c_i801
    hw_random               5300  0
    ehci_hcd               32676  0
    uhci_hcd               32816  0
    usbcore               118968  3 ehci_hcd,uhci_hcd
    shpchp                 99172  0
    pci_hotplug            33488  1 shpchp
    intel_agp              22076  1
    agpgart                33608  1 intel_agp
    irtty_sir               8544  0
    sir_dev                18828  1 irtty_sir
    irda                  191936  2 irtty_sir,sir_dev
    crc_ccitt               1920  1 irda
    floppy                 58864  0
    rtc                    12472  0
    pcspkr                  3496  0
    md                     47280  0
    dm_mod                 59420  1
    capability              4648  0
    commoncap               7712  1 capability
    evdev                   9344  0
    fglrx                 237088  9
    tsdev                   7520  0
    nvram                   9096  1
    psmouse                21320  0
    mousedev               11288  1
    parport_pc             37252  1
    lp                     11144  0
    parport                36744  2 parport_pc,lp
    ide_cd                 41700  0
    cdrom                  40220  1 ide_cd
    ext3                  136424  1
    jbd                    60216  1 ext3
    mbcache                 8356  1 ext3
    ide_generic             1312  0
    piix                   10340  1
    ide_disk               20416  3
    ide_core              129356  4 ide_cd,ide_generic,piix,ide_disk
    unix                   28276  937
    thermal                13320  0
    processor              22452  2 speedstep_centrino,thermal
    fan                     4388  0
    fbcon                  37504  0
    crc32                   4128  1 fbcon
    font                    8192  1 fbcon
    bitblit                 5472  1 fbcon
    vesafb                  6724  0
    cfbcopyarea             3808  1 vesafb
    cfbimgblt               2912  1 vesafb
    cfbfillrect             3488  1 vesafb
    

  • lspci

    0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 03)
    0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 03)
    0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
    0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
    0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
    0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller (rev 01)
    0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 81)
    0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 01)
    0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 01)
    0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)
    0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
    0000:00:1f.6 Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
    0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
    0000:02:00.0 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)
    0000:02:00.1 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)
    0000:02:01.0 Ethernet controller: Intel Corp. 82540EP Gigabit Ethernet Controller (Mobile) (rev 03)
    0000:02:02.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
    

  • hdparm

    /dev/hda:
    Timing cached reads:   2336 MB in  2.00 seconds = 1167.59 MB/sec
    Timing buffered disk reads:   98 MB in  3.01 seconds =  32.52 MB/sec
    
    /dev/hda:
    multcount    =  0 (off)
    IO_support   =  0 (default 16-bit)
    unmaskirq    =  0 (off)
    using_dma    =  1 (on)
    keepsettings =  0 (off)
    readonly     =  0 (off)
    readahead    = 256 (on)
    geometry     = 65535/16/63, sectors = 40007761920, start = 0
    

  • xorg.conf

    # /etc/X11/xorg.conf (xorg X Window System server configuration file)
    #
    # This file was generated by dexconf, the Debian X Configuration tool, using
    # values from the debconf database.
    #
    # Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
    # (Type "man /etc/X11/xorg.conf" at the shell prompt.)
    #
    # This file is automatically updated on xserver-xorg package upgrades *only*
    # if it has not been modified since the last upgrade of the xserver-xorg
    # package.
    #
    # If you have edited this file but would like it to be automatically updated
    # again, run the following commands:
    #
    #   cp /etc/X11/xorg.conf /etc/X11/xorg.conf.custom
    #   sudo sh -c 'md5sum /etc/X11/xorg.conf >/var/lib/xfree86/xorg.conf.md5sum'
    #   sudo dpkg-reconfigure xserver-xorg
    
    Section "Files"
    FontPath        "unix/:7100"                    # local font server
    # if the local font server has problems, we can fall back on these
    FontPath        "/usr/lib/X11/fonts/misc"
    FontPath        "/usr/lib/X11/fonts/cyrillic"
    FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
    FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
    FontPath        "/usr/lib/X11/fonts/Type1"
    FontPath        "/usr/lib/X11/fonts/CID"
    FontPath        "/usr/lib/X11/fonts/100dpi"
    FontPath        "/usr/lib/X11/fonts/75dpi"
    # paths to defoma fonts
    FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
    FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
    EndSection
    
    Section "Module"
    Load    "bitmap"
    Load    "dbe"
    Load    "ddc"
    Load    "dri"
    Load    "extmod"
    Load    "freetype"
    Load    "glx"
    Load    "int10"
    Load    "record"
    Load    "type1"
    Load    "vbe"
    EndSection
    
    Section "InputDevice"
    Identifier      "Generic Keyboard"
    Driver          "keyboard"
    Option          "CoreKeyboard"
    Option          "XkbRules"      "xorg"
    Option          "XkbModel"      "pc104"
    Option          "XkbLayout"     "us"
    EndSection
    
    Section "InputDevice"
    Identifier      "Configured Mouse"
    Driver          "mouse"
    Option          "CorePointer"
    Option          "Device"                "/dev/input/mice"
    Option          "Protocol"              "ImPS/2"
    Option          "Emulate3Buttons"       "true"
    Option          "ZAxisMapping"          "4 5"
    Option          "EmulateWheel"
    Option          "EmulateWheelButton"    "2"
    EndSection
    Section "InputDevice"
    Identifier      "Synaptics Touchpad"
    Driver          "synaptics"
    Option          "SendCoreEvents"        "true"
    Option          "Device"                "/dev/psaux"
    Option          "Protocol"              "auto-dev"
    Option          "HorizScrollDelta"      "0"
    EndSection
    
    Section "Device"
    Identifier      "ATI Technologies, Inc. Radeon Mobility 9600/9700 M10/M11 (RV350 NP)"
    Driver          "ati"
    BusID           "PCI:1:0:0"
    EndSection
    
    Section "Monitor"
    Identifier      "Generic Monitor"
    Option          "DPMS"
    EndSection
    
    Section "Screen"
    Identifier      "Default Screen"
    Device          "ATI Technologies, Inc. Radeon Mobility 9600/9700 M10/M11 (RV350 NP)"
    Monitor         "Generic Monitor"
    DefaultDepth    24
    SubSection "Display"
    Depth           1
    Modes           "1400x1050"
    EndSubSection
    SubSection "Display"
    Depth           4
    Modes           "1400x1050"
    EndSubSection
    SubSection "Display"
    Depth           8
    Modes           "1400x1050"
    EndSubSection
    SubSection "Display"
    Depth           15
    Modes           "1400x1050"
    EndSubSection
    SubSection "Display"
    Depth           16
    Modes           "1400x1050"
    EndSubSection
    SubSection "Display"
    Depth           24
    Modes           "1400x1050"
    EndSubSection
    EndSection
    
    Section "ServerLayout"
    Identifier      "Default Layout"
    Screen          "Default Screen"
    InputDevice     "Generic Keyboard"
    InputDevice     "Configured Mouse"
    InputDevice     "Synaptics Touchpad"
    EndSection
    
    Section "DRI"
    Mode    0666
    EndSection
    

This entry was posted in Hardware, IBM, Linux, Tips. Bookmark the permalink. Both comments and trackbacks are currently closed.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

56 Comments

  1. JasonN
    Posted March 13, 2005 at 12:37 am | Permalink

    Hey,

    I’ve got a T42 on order. Your guide is one of the best I’ve seen for the T42. Bravo. A couple questions, though:

    (1) Given that I don’t have the machine yet, when you say “add the appropriate users to the nvram group”, can you specify, or indicate where this information is specified?

    (2) At home I use WPA netowrking with my Apple Airport Extreme – so I’m really looking forward to your notes on this topic. My desktop Macs and PCs both work well with WPA… I’m really hoping that Linux can, too!

    Thanks,
    Jason

  2. Posted April 1, 2005 at 5:35 pm | Permalink

    i have an IBM tihnkpad t42. i tried using a live CD from the ubuntu distro. all appears to work fine, except for the wireless connectivity. some research online suggests kanotix may have the newest kernel and drivers for the intel pro 2200 b/g hardware. i would like it to work with ubuntu.
    thank you.

  3. Posted April 1, 2005 at 5:55 pm | Permalink

    I know for a fact that the Intel PRO 2200bg will work under Ubuntu. During the Hoary installation process, it will detect the card and install the correct kernel module drivers.

  4. Posted April 6, 2005 at 2:08 am | Permalink

    Congratulations for this great guide. I look forward to upgrade my warty to hoary within this week.
    Did you get the external monitor to work?

  5. Posted April 6, 2005 at 1:20 pm | Permalink

    This is a great guide. Having installed Ubuntu (Hoary) on my T42 it was nice to find some people that have had the same results. If anyone has the IPW220b/g I suggest following the instructions in 1.0.1 version of the drivers. I haven’t tested the latest version. (Don’t for get the firmware!!!)

  6. Posted April 6, 2005 at 1:21 pm | Permalink

    that should be IPW2200 b/g (not 220) :-)

  7. Posted April 11, 2005 at 12:27 pm | Permalink

    Excellent guide! I’ve had my t42p since august, and had all kinds of linuxes on it, and read lots of different guides (everyone has different ideas) and this is certainly among the best.

    Kudos!

    chris@edg3.org

  8. Posted April 17, 2005 at 1:02 am | Permalink

    Installing BlueCurve on a fresh install of Hoary screws up your menus. It looks great but you will have launchers missing in your “add to panel” areas as well as Redhat items (that launch nothing, such as kickstart) in your menus. I suggest NOT installing bluecurve or at least not in the mannor described here.

  9. myself
    Posted April 20, 2005 at 1:44 am | Permalink

    I have a t42 laptop connected to an external usb 2.0 hard drive. I could install ubuntu 5.04 on it but it failed to boot because of a kernel panic. Any ideas? BTW, I can boot from the same usb drive with another linux distribution so this is not a problem of hardware.

  10. manfred
    Posted April 24, 2005 at 11:41 am | Permalink

    Hi,

    you may add the following to your xorg.conf:
    Section “InputDevice”
    Identifier “Configured Mouse”
    Driver “mouse”
    Option “CorePointer”
    Option “Device” “/dev/input/mice”
    Option “Protocol” “ImPS/2″
    Option “Emulate3Buttons” “true”
    Option “ZAxisMapping” “4 5″
    Option “EmulateWheel” # to get the trackpoint scrolling working
    Option “EmulateWheelButton” “2″
    EndSection

  11. Posted April 27, 2005 at 11:35 am | Permalink

    Thanks, manfred. Added.

  12. Brett
    Posted April 30, 2005 at 8:41 am | Permalink

    Does anyone have the s-video out working for the T42. BTW this is a great guide, saved me a lot of time.

  13. Nejc
    Posted May 3, 2005 at 11:17 am | Permalink

    Thank you for sharing this great howto!

    According to my tests, it looks like glxgears run a bit faster on gnome than on kde. I have t42p with fireGl card, runing at 1600×1200 pixels. On gnome i get aroun 1330 fps, and on kde aroun 1125.

    Offtopic: if someone is trying to install Maya 6.5, it can be easily done with: alien -iv AW…rpm, one thing i want to point out though, is that you might need to install tcsh (you can find it in synaptic), at least i did when i ran it on kubuntu, dont know for ubuntu, i just installed it…

  14. Michael
    Posted May 6, 2005 at 8:51 pm | Permalink

    check out http://diwww.epfl.ch/~fleuret/installations.html#wpa for wpa with madwifi on the thinkpad t41p — same stuff applies to t42p

  15. Erik van Amerongen
    Posted May 8, 2005 at 6:51 pm | Permalink

    Thanks Oliver, this donation is well earned from a Linux newbie with a new T42! I look forward to any futher updates you choose to make. Everything works flawlessly once I followed your howto.
    Getting Gentoo to work was killing me and my time.

    Erik

  16. Ben
    Posted May 10, 2005 at 1:05 pm | Permalink

    Great guide! It’s a real pity that we still have these functionality gaps (the graphics driver is pretty crucial, but I won’t use Ubuntu full time unless APS and battery management are implemented as well). I thought IBM was one of the biggest proponents of a linux-based laptop…shouldn’t they be testing and releasing working linux drivers for their products, like APS and Battery MaxiMiser (and the FireGL)? Maybe someday…….but until then I must continue to remain in my cluttered, unsecure, yet fully functional Windows environment.

  17. Posted May 10, 2005 at 1:09 pm | Permalink

    IBM remains fully devoted to Linux and the open-source movement, but the brunt of their efforts are towards fortifying its foothold in the server market, and currently towards moving independent software vendors towards Linux development. Linux isn’t quite mature enough in the desktop computing environment for them to worry about offering Linux-powered laptops. Internally, the company is committed towards migrating towards a Linux-based workstation over the next few years. Since a vast majority of their employees use ThinkPads, you can bet they’re developing support for ThinkPad hardware.

  18. et
    Posted May 16, 2005 at 3:42 pm | Permalink

    I am a little confused on the following point in the existing thread:

    Under Ubuntu on T42s with the Radeon Mobility 9600 have people gotten
    external monitors to work reliably (in at least 1024 x 768 screen res)?

    Thanks

  19. bob
    Posted May 21, 2005 at 9:35 pm | Permalink

    I’m considering a T42 to have Ubuntu installed on it, but require it to be connected to external projectors much of the time for presentations, and they will likely be 1024×768. How well does your T42 do this task? Can you simply plug it in and it “just works” or is there further tinkering to do to get it to send a correct signal to an external projector?

    Thanks

  20. dasch
    Posted May 24, 2005 at 8:28 am | Permalink

    For resume with installed fglrx driver, you have to use vbetool to save and restore the state of the graphic card.
    “apt-get install vbetool ibm-acpi”
    last thing is to uncomment four lines in “/etc/acpi/prepare.sh”
    Look for “#And then try to save some video state”

  21. Posted May 24, 2005 at 8:34 am | Permalink

    Thanks! I’ll check out vbetool with the fglrx drivers ASAP and post my results.

  22. Duck
    Posted May 28, 2005 at 7:57 am | Permalink

    does anyone know how to enable the multi-bay hotplug functionality? i have a 2nd battery and a cdrw drive, but if hot swap them, the cdrw drive doesn’t seem to be recognized. thanks! dc

  23. Oliver Matthews
    Posted June 1, 2005 at 4:58 am | Permalink

    You missed out one thing – there are issues with laptopmode whilst using wifi – the system will (after a short while) hard lockup. AFAIK the only solution is either (a) only use wifi whilst on power or (b) remove laptopmode (and lose the functionality)

  24. Anand S Bisen
    Posted June 2, 2005 at 5:59 pm | Permalink

    I use wi-fi with laptop_mode and i have yet to experience hard-lockups

  25. Posted June 21, 2005 at 8:22 am | Permalink

    We have begun to make progress on the biometric scanner for the T42. As of last night, a developer with this hardware and interest has come to the surface and we’re looking forward to getting a working implementation on it. You can read up more in the forums an LinuxBiometrics.com if you are interested.

  26. Naisan
    Posted June 22, 2005 at 10:15 pm | Permalink

    This is a nice guide – I also have a t42p, have tried suse 9.2 and like ubuntu much better.

    I would also suggest this page: http://www.columbia.edu/~em36/ubuntuhoarythinkpadt42.html which I found very helpful.

    I’ve also done the kernel rebuild with the trackpoint driver and that made my trackpoint much more controllable. thanks for this.

  27. Yee Hing
    Posted June 29, 2005 at 12:53 pm | Permalink

    “IBM remains fully devoted to Linux and the open-source movement…” Hmph. Yeah right. What about Lenovo? I got a T43 in June and it is keeping to the name so far. Absolutely stunning. Gentoo is a pain to get working. Debating between Ubuntu and Suse right now. Any comments on cpufreq?

  28. Tom Carter
    Posted July 8, 2005 at 6:44 am | Permalink

    When I come back from acpi-sleep, my keys on my keyboard don’t respond correctly. Keyboard either doesn’t respond or the keys produce weird characters. Any help would be appreciated.

  29. Alexander
    Posted July 9, 2005 at 7:48 pm | Permalink

    Instead of:
    $ echo fglrx | sudo tee -a /etc/modules
    and
    $ echo nvram | sudo tee -a /etc/modules

    you can simply do:
    $ echo fglrx >> /etc/modules
    and
    $ echo nvram >> /etc/modules

  30. Kim
    Posted July 18, 2005 at 2:03 am | Permalink

    If you like using su, that is.

  31. Kirk Heller
    Posted August 1, 2005 at 2:06 pm | Permalink

    Has anyone tried installing Ubuntu in a dual boot environment? That is, keeping the IBM recovery partition intact as well as windows?

    Quick notes on how this is done?

  32. Posted August 1, 2005 at 2:12 pm | Permalink

    Hi,

    Nice guide. I’ve used it on my T41, not so far from the T42… ;-)
    However, I’ve had a problem when resuming from a suspend-to-disk. An ext3 error occured, and my home partition was remount read-only, not very easy to use… Actually, I think it’s the write-cache of the hard drive that was activated. I have installed and configured hdparm by adding
    /dev/hda {
    mult_sect_io = 16
    write_cache = off
    dma = on
    }
    into the /etc/hdparm.conf. So far, no more ext3 errors. May be it can help some readers…

  33. Alasdair
    Posted August 8, 2005 at 12:58 am | Permalink

    A very nice guide! Now that you have ubuntu up and running, how do you find its stability? What sort of uptimes do you get? (I know this is not quite accurate on a laptop) – on my old Thinkpad 600E, running an old version of mandrake, I never have to reboot. Is ubuntu as stable?

    Thanks!

  34. Jeffrey Eaton
    Posted August 9, 2005 at 7:28 pm | Permalink

    I tried the whole radeon thing for ATI it rooted my file and I didn’t back it up *sigh*

  35. Posted August 12, 2005 at 1:22 am | Permalink

    Is there a way to retain the ‘paste’ functionality of the middle button but also have the scrolling functionality? I love the scrolling, but can’t live without “highlight to select, middle click to paste”.

  36. Posted August 12, 2005 at 8:41 am | Permalink

    When I use a projector the resolution doesn’t fit anymore. Some of the screen is cut off. Did somebody solve this problem and could maybe post his xorg.conf file here. Thanks.

  37. Posted August 26, 2005 at 9:03 pm | Permalink

    Hi,

    I have used parts of your Ubuntu guide to create an
    entry at http://thinkwiki.org/wiki/Installing_Ubuntu_5.04_on_a_ThinkPad_T43_%281875%29

    This will help others who are trying to install Ubuntu on Thinkpads.
    Kindly check out the page, and make any changes that you think are
    needed. I have given a link to your site as well..

    Regards,
    Aditya Nag

  38. Jia
    Posted September 6, 2005 at 7:15 am | Permalink

    Hi,

    I install ubuntu on my thinkpad T41. It works fine but cpu fan keeps running all time. any solution for this?

    Regards,
    Jia

  39. Dave
    Posted September 22, 2005 at 11:59 pm | Permalink

    Oliver: Nice guide! I’ve been running Debian Testing on my T42 for 12 months or so, and almost everything works as required.

    mlambie: If you enable the middle-button scrolling functionality, you may still be able to use the paste functionality by enabling 3rd button emulation in your X server config file. ie. you press buttons 1 and 2, and it acts as if you’ve pressed the 3rd button … I’ve not tested this, but it might be worth a look.

    Duck: Hotswapping isn’t quite working as far as I can tell. If you boot the machine with the battery in, the kernel detects BAT0 and BAT1, if you try and hotswap it, I can’t get the kernel to recognise BAT1. Even removing, and re-inserting the kernel module doesn’t fix it. Sometimes, I get a hard lockup when inserting the battery, othertimes it works fine. When you do insert the Optical drive though, you can force the kernel to find it with hdparm. The (most recent, 0.11 NOT 0.8 as features in most distribution kernels) ibm-acpi package includes some ACPI scripts including “rescan.sh” which detects and configures the optical drive. Unfortunately though, DMA cannot be enabled unless you boot the kernel with the optical drive in the UltraSlim Bay – which makes DVD playback nasty, and slows considerably reading and writing data.

    Kirk: Yes, I used Partition Magic in Windows XP to re-size my XP partition, and created some blank space between the XP partition and the recovery partition. Then booted into the Debian install and used fdisk to setup partitions in the blank space as normal. I’ve not had cause to use the Access IBM Recovery partition, but it all seems to be there and in order. There are guides around on how to do this, I think I found the information (12 months ago …) on ThinkWiki.

    re: IR
    I have had some issues where coming out of S3 (sleep, suspend-to-ram) IR refuses to load. However, suspending to disk and restating the machine restores IR functions. Odd.

    re: Touchpad I have had some issues where the touchpad doesn’t work when coming out of S4 (hibernate, suspend-to-disk) but is fine the next time I hibernate and re-awaken the laptop. I also have some nasty screen corruption when coming out of hibernation, but it sorts itself out once it has finished resuming.

    re: power management
    I don’t get quite as long with my batteries on Linux as under Windows XP. A couple of possible reasons:
    - CPU Frequency seems to drop as low as 223 MHz in WinXP but only to 600MHz under Linux.
    - GPU Frequency scaling seems buggy under Linux (enable Dynamic Clocks in ATI device config)
    - Support for ACPI brightness events is very limited (experimental in acpi-ibm 0.11) and therefore can’t be setup in scripts to fade brightness with battery level.
    - Battery drain while in S3 is abominable. Aparently there is an experimental kernel patch that may solve the problem, but while I finish my dissertation I’m not messing with experimental kernel patches :)
    - There’s no support for power saving modes in the IPW2200 wireless driver as far as I can tell.
    - I’ve had some issues with IRDA and PCMCIA and getting them to shutdown / consume less power.
    - CPUFreqd seems to lock into full-speed mode when coming out of sleep mode and needs to be restarted.
    - ACPId seems to lose contact with the kernel sometimes and needs to be restarted.

    I haven’t tested the modem, nor the s-video, nor external display … but I hear they can all be convinced to work …

    Cheers
    Dave

    Drop me an email if there’s any more info

  40. Till
    Posted October 10, 2005 at 10:31 am | Permalink

    Hi,

    maybe somebody like these links about the status of the linux Hard Drive Active Protection driver (its also in Debian unstable):

    http://www.almaden.ibm.com/cs/people/marksmith/tpaps.html
    http://sourceforge.net/projects/hdaps/
    https://sourceforge.net/mailarchive/forum.php?forum_id=45521

    BTW: I’ve got my 3rd T41 HD this year – nope, i am not using my laptop that hard, and I am not an alpha tester of the HDAP driver ;)

  41. Posted October 21, 2005 at 4:36 am | Permalink

    Has anybody managed to use two different screen resolutions on the lcd and on the external vga port? i.e 1400×1050 on the internal lcd screen and 1024×768 on the external vga port, connected to a beamer?

  42. Batist
    Posted October 27, 2005 at 1:08 pm | Permalink

    I can’t get IrDA working. All the devices are shown in my lsmod:
    irtty_sir 8512 0
    sir_dev 18444 1 irtty_sir
    irda 187612 2 irtty_sir,sir_dev
    crc_ccitt 1984 1 irda
    but irdadump doesn’t show anything. Any help?

  43. Moter Pent
    Posted November 13, 2005 at 4:33 pm | Permalink

    Some IBM T42’s do not come with ATI Radeon Mobility 9600, rather they show up/have the following (seen by typing “lspci” at from a command prompt):

    ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]

    From all I can tell this video controller is NOT supported by the ATI fglrx X server. Users of the 7500 controller are stuck with the the ati server.

    There are some nice suggestions for improvements however at this link at http://ubuntuforums.org:

    http://ubuntuforums.org/showthread.php?t=26148

    Hopefully this will be helpful to some.

  44. peller
    Posted November 22, 2005 at 12:07 am | Permalink

    My new Breezy install on my brand new T42p worked fine except that when I went to suspend (alt-F4), not only would it not come out of suspend, I could not reboot my machine! I powered down, took out the battery and still the thing would not restart. I heard the fan, but never saw the IBM splash or could get to the BIOS. The only solution was to pull out the CMOS battery under the keyboard to do a hard reset! Has anyone else seen this happen? I’m really surprised because most reports say this works out of the box. I’m afraid to try suspend again…

  45. Tobias Heinemann
    Posted December 17, 2005 at 12:08 pm | Permalink

    One very minor detail: I would suggest to use “sudo addgroup –system nvram” instead of “sudo addgroup nvram” to give the nvram group a gid that is not in the range of ordinary user groups.

  46. Luca
    Posted December 24, 2005 at 3:00 pm | Permalink

    Hallo,

    I have installed the Ubuntu on a IBM-T42.
    I can’t be able to connect with my wireless router, because the Ubuntu Tell me that the Wireless Adapter is Turned Off, while the adapter is ON (The Led is On on the Keyboard).

    Someone Can Help Me?

  47. New T43
    Posted December 25, 2005 at 11:30 am | Permalink

    I tried installing the fglrx driver like you said — on my new T43. It didn’t work and now I can only boot to a terminal. “Failed to start X server.” “Fatal server error: no screens found.”

    I typed:
    sudo apt-get install xorg-driver-fglrx

    Then:

    echo fglrx | sudo tee -a /etc/modules

    Then:

    sudo sed -i -e ’s/”ati”/”fglrx”/’ /etc/X11/xorg.conf

    Then rebooted and the desktop wouldn’t start.

    How can I reverse it? Can’t you make sed automatically create a backup file? It might be a good idea to list the command that way on your site so that less-experienced people (like me) will have a backup :S

    I’m slowly going through it with the man pages… remove the fglrx from the end of /etc/modules and I’m not sure exactly what to do with xorg.conf yet. Any tips?

    Thanks

  48. New T43
    Posted December 25, 2005 at 12:07 pm | Permalink

    Ok… finally got X server back up and running. Google and man pages helped me reverse those commands in my last comment (above).

    In reverse — to remove the ATI fglrx driver if it isn’t working, this is what I did:

    sudo apt-get remove xorg-driver-fglrx

    Then:

    sudo emacs /etc/modules
    (or sudo vim /etc/modules)
    (delete or comment out last line that says fglrx)

    Then:
    sudo sed -i -e ’s/”fglrx”/”ati”/’ /etc/X11/xorg.conf

    Then I rebooted the computer and X server works now.

    Just need to figure out why it didn’t work the first time…

  49. fglrx
    Posted January 24, 2006 at 4:08 pm | Permalink

    hi,
    edit:

    /etc/acpi/prepare.sh

    and remove the comments from:

    # And then try to save some video state
    if [ x$SAVE_VBE_STATE = "xtrue" ]; then
    VBESTATE=`tempfile`
    vbetool vbestate save >$VBESTATE;
    fi

    than suspend/hibernate will work correctly!

    (from http://wiki.ubuntuusers.de/ATI/Probleml%C3%B6sungen)

    Have fun

  50. Daniel
    Posted January 25, 2006 at 6:07 pm | Permalink

    Great HowTo! I really appreciate that.
    But i have one problem with following your instructions. I have Kubuntu Breezer installed with KDE 3.5.
    I can´t understand the following instructions:

    All that’s left to do is to is to make sure that udev gives read/write permissions for the /dev/nvram device to all members of the nvram group. Make sure /etc/udev/permissions.d/udev.permissions has the following lines:
    misc/nvram:root:nvram:660
    nvram:root:nvram:660

    I can´t find neither the permissions.d folder nor the udev.permissions file. Have they been renamed in Kubuntu? Is all i have to to to add those 2lines? In which file?

    Thx for your help! Of course you can email me too. I would be very thankful.

3 Trackbacks

  1. By bami.ch on July 9, 2005 at 11:35 am

    [...] nk) den Artikel von Oliver Aaltonen "Ubuntu Linux on the IBM ThinkPad T42" (link) die Webseite der Columbia University "Ubu [...]

  2. By Jurassic Geek on August 1, 2005 at 2:05 pm

    Ubuntu sur IBM Thinkpad T41

    Il y a quelques jours, j’ai installé une Ubuntu Linux sur mon IBM T41 récemment acheté. Tout fonctionnait pas trop mal, mais je n’avais pas fait trop de tests en ce qui concerne l’économie d’énergie. Après quelques recher…

  3. By reaver.ws » Ubuntu + IBM T42 on December 23, 2005 at 12:00 am

    [...] I came across an excellent base document on getting Ubuntu functional (well, it’s more than a base). I’ve reproduced it here for convenience, but the original (with updates and comments is at aaltonen.us. This guy has got some really great info and he’s a local (to me anyway). If you like what he has to say as much as I do you might want to float some coin his way. Not to mention he’s a cutie (but he’s taken and not a reason to float coin his way btw). [...]

  • Archives