ThinkpadR40-2681

  • Contact: SimonWerner

  • Make: IBM Thinkpad R40
  • Model: R40 2681-26M. Upgraded with 60GB HDD, 512MB RAM total, Xircom 10/100 PCMCIA card and CD-RW/DVD Combo IV.
  • Website for the R40

  • Last update 21 December 2007 - User problems with dual boot.

Matt's Comments

(Update 12/4/08)

  • As of 8.xx everything works out of the box with the exception of the xorg.conf file, and the optional more enforced power management modules which you may pull from the bottom of this page.

(Update 11/16/07)

  • Contact: Matt_LaRiviere

  • Make: IBM Thinkpad R40
  • Model: R40 2681-CTO. (P4 1.8Ghz Celeron Upgraded with 80Gb Seagate SpinPoint, 2x512Mb PQi, Onboard NIC Works, No-1802 hack with RT2600 card (wireless)

  • Yes, the onboard nic works (Intel Pro 100VE 100% Compatability)
  • The OEM Wireless card is a rebranded Intel 2200 card (vendor id is changed from Intel to IBM)
    • You can No-1802 hack the bios to use a non-IBM wireless card for easier hardware support (found on thinkwiki.org) and get an intel based wireless card of that model

    • Other option is to recompile the intel pro2200 wireless driver with vendor id ibm or hack the card vendor id to intel. (Still requiring you to no-1802 hack if the vendor id is changed.)
    • If you plan to do the 1802.. First; upgrade bios, embedded ctlr. program, then 1802.
  • USB tested working with 20gig usb 2.0 HD with ext3 partition (good transfer rates as well)
  • Thanks to Restricted Drivers Package - Modem Driver is very easy to install
  • I have the 16mb ATI Radeon M7, not sure as of Simon's but something was not right with the xorg.conf settings he provided. Here is the full xorg.conf file which took me about 30 mins to get up and running finally.
  • DO NOT INSTALL tleds (turns your num-lock and caps-lock to tx/rx lights for network). On my machine it assumes the physical pressing of caps and num lock. It assumes physical pressing of the keys on these models.

Current Issues (Ubuntu 7.10 - Gutsy Gibbon (Final))

  • I am impressed, most of it works out-of-the-box without any configuration.
  • Modem needs installation of sl-modem package, but you are prompted at the start when Ubuntu first starts up.
  • IrDA needs installation of packages and some simple configuration (see bottom of page for details).
  • DHCP needs manual start after computer is restarted or suspended (eth1 on PCMCIA).
  • Radeon Mobility 9000 (M6 LY) needs to be tweaked to get good performance.
  • CPU Scaling does not work out-of-the-box, but it will work after some configuration.
  • See the bottom of the page for a /etc/X11/xorg.conf file that will just work.

'''Other user comments'''

(Update Aug, 15, 2008) * Dualbooting verified working with WinXP, Ubuntu 8.x, Backtrack3 Final, and a swap partition

Hardware details

Hardware Information

Screen & Monitors

Device

Works?

Bug #

in Feisty

in Gutsy

Screen

Yes

Yes

Correct resolution?

Yes

Yes (11)

Correct refresh rate?

Yes

Yes

3D Acceleration

Yes (6)

Yes (6, 8)

External monitor works?

Not tested

Not tested

External monitor - mirrors

Not tested

Not tested

External monitor - extend desktop

Not tested

Not tested

Power Management

Battery detected?

Yes

Yes

Hibernates?

Yes (3)

Yes (3, 5)

Sleep

Yes

Yes (3, 5)

Dim monitor on battery

Yes

Yes

Blank monitor on inactivity

Yes

Yes

Lid Close

Yes

Yes

CPU frequency scaling

Yes (10)

Yes (10)

Sound

Sound works?

Yes

Yes

Correct volume?

Yes

Yes

Hardware volume switch

Yes

Yes

Headphone jack

Yes

Yes

Mic jack

Yes

Yes

Networking

Wired NIC

Yes

Yes

Wireless NIC

Yes

Yes

PCMCIA NIC

Yes (3)

Yes (3)

45295

Firewire

N/A

N/A

Bluetooth

Not Tested

Not Tested

Modem

Yes

Infrared

Yes (2)

Touchpad & Mice

Touchpad

Yes (7)

Yes (7)

Touchpad - Doubletap = double click

Yes

Yes

Touchpad - Scroll down side

Yes

Yes

External mouse - USB

Yes

Yes

External mouse - Serial

N/A

N/A

Docking Station/Port Replicator

AC through replicator

N/A

N/A

USB

Yes

Yes

Serial

N/A

N/A

Parallel

N/A

N/A

External Monitor - VGA

N/A

N/A

External Monitor - DVI

N/A

N/A

Modem

Yes

Yes

NIC

Yes

Yes

PS/2

N/A

N/A

Additional Hardware

Fingerprint reader

N/A

N/A

CD/DVD drive

Yes

Yes (4)

PCMCIA cards

Yes

Yes

Parallel Ports

Yes

Yes

Card reader(s)

N/A

N/A

Function and other keys

Fn key

Operation

Keycode

Works?

Bug #

in Feisty

in Gutsy

+ Space

Screen magnifier

No

No

+ F3

Switch off screen

Yes

Yes

+ F4

Sleep

Yes

Yes (5)

152533

+ F5

Wireless

N/A

N/A

+ F7

Monitor

Not Tested

Not Tested

+ F12

Hibernate

Yes

Yes (5)

152533

+ Home

Dim up display

Yes

Yes

+ End

Dim down display

Yes

Yes

+ PgUp

Toggle screen light

Yes

Yes

Other special keys

Key

Operation

Keycode

Works?

Bug #

in Feisty

in Gutsy

Access IBM

No

No

Volume Up

Yes

Yes

Volume Down

Yes

Yes

Mute

Yes

Yes

Power

Yes

Yes

Notes

These are some notes on how to get certain hardware working nicely, it applies to the R40-2681, but should also apply to many others. An excellent resource for the ThinkPad on Linux is www.thinkwiki.org.

To reduce power consumption on your ThinkPad, read this].


(1) Works with the sl-modem driver, use apt-get install sl-modem or use System>Administration>Restricted Driver Manager. On my system it's installed on /dev/ttyS3.


(2) Installing irda-utils makes it almost work. Edit /etc/default/irda-utils and uncomment the line ENABLE="true".


(3) My on-board NIC is broken, so I require a PCMCIA network card for the network, however the PCMCIA card is not assigned to eth1 upon startup or resume from sleep or hibernate. This has been a bug for quite some time (45295). To have Ubuntu assign eth1 to it, you need to eject the card then insert it again, this can be done physically or at the command line. Then you run 'sudo dhclient eth1' to assign an IP address.

Create the file /etc/init.d/KICK_START_UBUNTU (need to be super user), then enter the following:

pccardctl eject
sleep 1
pccardctl insert
dhclient eth1

Then run the following commands at the command line:

sudo chmod 755 /etc/init.d/KICK_START_UBUNTU
sudo ln -s /etc/init.d/KICK_START_UBUNTU /etc/rc2.d/S25KICK_START_UBUNTU
sudo ln -s /etc/init.d/KICK_START_UBUNTU /etc/rc3.d/S25KICK_START_UBUNTU
sudo ln -s /etc/init.d/KICK_START_UBUNTU /etc/rc4.d/S25KICK_START_UBUNTU
sudo ln -s /etc/init.d/KICK_START_UBUNTU /etc/rc5.d/S25KICK_START_UBUNTU
sudo ln -s /etc/init.d/KICK_START_UBUNTU /etc/rcS.d/S25KICK_START_UBUNTU

Now the PCMCIA card will activate with the network on startup.


(4) Since Ubuntu 7.10 the IDE hard drive show up as /dev/sda instead of /dev/hda. It seems that hdparm no longer works (for me at least) to enable DMA mode. However, I found that this is not an issue, since DVD playback is Ok.


(5) When the computer resumes after hibernation or sleep the network on the PCMCIA card does not start up again. To fix this create a file in /etc/acpi/resume.d/ called something like 66-PCMCIA_INSERT.sh, in the file put:

dhclient eth1

You need to make sure the file is executable, to do this run sudo chmod 755 /etc/acpi/resume.d/66-PCMCIA_INSERT.sh on the command line.


(6) Improving 3D Acceleration:

  • Please see the above xorg.conf if you have issues adding these lines to your current xorg.conf. The above configuration is not configured for external mice but I believe udev will automatically detect and add the functionallity of such if you choose to do so. Everything has been renamed appropriately to make any further configuration changes more straight forward. (Tapping of the touchpad is still enabled and power management on the ati card is included)

The on-board card is a Radeon Mobility 9000 (M6 LY) and this is not supported by the proprietary ATI driver. Although it is detected properly and with 3D acceleration enabled, the acceleration is not tweaked. I was able to get an extra 20 to 30% fps improvement with Celestia and Stellarium, additionally some of the strange texturing behavior disappeared. To do this I changed the "Device" section in the /etc/X11/xorg.conf file to the following:

Section "Device"
        Identifier      "ATI Technologies Inc Radeon Mobility M6 LY"
        Driver          "ati"
        BusID           "PCI:1:0:0"
        Option          "AGPMode" "4"
        Option          "AGPSize" "64" # default: 8
        Option          "RingSize" "8"
        Option          "BufferSize" "2"
        Option          "EnablePageFlip" "True"
        Option          "EnableDepthMoves" "True"
        Option          "RenderAccel" "true" # Enables hardware acceleration
        Option          "DynamicClocks" "on" # Adds clock scalability / power management for the video card
EndSection


(7) Accidental tapping of the Touchpad can be annoying.

This can be disabled by setting the "MaxTapTime" to 0 in the /etc/X11/xorg.conf file:

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "MaxTapTime"            "0"
        Option          "Protocol"              "auto-dev"
        Option          "HorizEdgeScroll"       "0"
EndSection


(8) Power saving can be enabled by on the on-board Radeon 9600 chip by allowing the clock rate to be modulated. This should not impact performance, but will reduce the power and fan activity. In the /etc/X11/xorg.conf in the "Device" section (as in point (6) above) you add the following:

        Option      "DynamicClocks" "on"

To make sure this is working look for the following lines in /var/log/Xorg.0.log :

(**) RADEON(0): Option "DynamicClocks" "on"
(II) RADEON(0): Dynamic Clock Scaling Enabled


(10) The CPU on the R40 can run at different speeds (CPU frequency scaling), however, the default configuration is such that CPU frequency scaling does not work. This will save a lot of power, and reduce the amount the fan runs. First add the following lines to /etc/modules :

# enable frequency scaling
thinkpad_acpi
p4-clockmod
cpufreq_ondemand

It is good practice to also [sudo modprobe ...] and verify the modules load on your machine before making them permanent.

Now, when you restart you will have the CPU changing frequency. To test, use the frequency scaling applet in Gnome.

Frequency scaling is great, but I find that when the frequency drops down to 200MHz there is a little bit of lag when clicking somewhere with the mouse, since the CPU sits at 200MHz for a few to many milliseconds. Others may not notice, or may not be bothered by it, but it annoys me. One way to fix this is to raise the minimum frequency to 600MHz. To do this you will need to install the cpufrequtils package :

apt-get install cpufrequtils

Then you will need to run 'cpufreq-set -d 600MHz' command to set the minimum frequency. To do this at boot time add the following line to /etc/init.d/KICK_START_UBUNTU (see above for creating this file) :

cpufreq-set -d 600MHz -g ondemand
  • (2681-CTO) I found this to be an issue with scrolling pages when browsing the web, its similar to having a stuck key for a second. If you do crank up the speed step, your battery life will suffer. I find it "bearable"


(11) After installing Gutsy you may find that the boot procedure takes a very long time and the splash screen is not displayed. To fix this you just need to change the resolution to 1024x768. Run the following command

sudo gedit /etc/usplash.conf

and change the 1200 to 1024 and the 1024 to 768 so you have something like:

# Usplash configuration file
xres=1024
yres=768

then run the following command

sudo dpkg-reconfigure usplash

and reboot...


/etc/X11/xorg.conf file

Thanks to Matt_LaRiviere for this file, it has all the changes mentioned above.

# xorg.conf (xorg X Window System server configuration file)
#
# This file was taken from the Ubuntu Wiki from the
# LaptopTestingTeam/ThinkpadR40-2681
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg

Section "InputDevice"
        Identifier      "Thinkpad Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "us"
EndSection

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "MaxTapTime"            "0"
        Option          "Protocol"              "auto-dev"
        Option          "HorizEdgeScroll"       "0"
EndSection

Section "Device"
        Identifier      "ATI Technologies Inc Radeon Mobility M6 LY"
        Driver          "ati"
        BusID           "PCI:1:0:0"
        Option          "AGPMode" "4"
        Option          "AGPSize" "64" # default: 8
        Option          "RingSize" "8"
        Option          "BufferSize" "2"
        Option          "EnablePageFlip" "True"
        Option          "EnableDepthMoves" "True"
        Option          "RenderAccel" "true" # Enables hardware acceleration
        Option          "DynamicClocks" "on" # Adds clock scalability / power management for the video card
EndSection

Section "Monitor"
        Identifier      "Thinkpad 14.1 LCD"
        Option          "DPMS" # Highly reccomended for LCD panels / monitors
        HorizSync       28-33
        VertRefresh     43-72
EndSection

Section "Screen"
        Identifier      "Thinkpad Display"
        Device          "ATI Technologies Inc Radeon Mobility M6 LY"
        Monitor         "Thinkpad 14.1 LCD"
        DefaultDepth    24
        SubSection "Display"
                Modes           "1024x768" # This or the native resolution of your monitor
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "ThinkpadR40"
        Screen          "Thinkpad Display"
        InputDevice     "Thinkpad Keyboard"
        InputDevice     "Synaptics Touchpad"
EndSection

CategoryLaptop CategoryLaptop

LaptopTestingTeam/Old/ThinkpadR40-2681 (last edited 2010-03-02 13:01:29 by host226-241-dynamic)