Installing Ubuntu 8.04 (Hardy Heron) and Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad X200

From ThinkWiki
Jump to: navigation, search

Overview

Some items in this page still date from before the 8.10 final release. Please keep a close eye out, and if needed, refer to this X200 owners' thread on the Ubuntu forums.

Started off working w. Ubuntu 8.04 install using the optical drive in the X200 ultrabase. Everything went swimmingly - ethernet worked out of the box as did the optical drive itself.

Wound up upgrading to the 8.10 beta b/c of wireless troubles. See below.

Reminder: Pre-Installation steps: Create Recovery Media.

Ultrabay

Handles install without any problem - note: while the machine is in the bay, it forces you to use the ethernet port on the bay.


Ethernet

Intel GigE worked out of the box w. 8.04 and 8.10.


Wireless

Ah, the wireless.

run <lshw -C network> and sort out which wireless hardware you're working with.

Atheros

For Atheros, check out this forum post

Intel 5100

On 8.10

The wireless card works out of the box. Users in Europe or Japan need to modify the options in order to receive the channels 12,13, or 14. This can be done by adding the following lines to /etc/modprobe.d/options:

# Enable European/Japanese channels
options cfg80211 ieee80211_regdom=EU
#options cfg80211 ieee80211_regdom=JP

Intel 5300

On 8.04

For Intel 5300 on 8.04, neither the recommended drivers (iwl5000) nor ndiswrapper did the trick. It's possible that manually-upgrading the kernel to 2.27 would do it.

On 8.10

With 8.10 the Intel 5300 works out of the box. Running <lshw -C network> again shows that it's the iwlagn driver (pre-loaded with the 2.27 kernel) that does the trick.

Sensors

The gnome sensors applets allow you to monitor all important temperatures, including battery, hdd, cpu and gpu and system fan.

sudo apt-get install sensors-applet hddtemp

Add the hardware sensor monitor to the panel and then configure it. You will see a lot of datasources.

  • libsensors: temp9 and temp10 seem to be mainboard/Nortbridge or power regulator sensors.
  • hddtemp: /dev/sda is the sensor of the harddisk. It is important to keep the harddisk always below 45°, normally under 40°. This is no problem with the X200, the hdd cooling system seems to be very good.
  • ibm-acpi: cpu, mPCI, GPU and FAN are intersting sensors.

The sensors-applet's default high value for CPU temperature is 60 C. So even a cool but running centrino shows up red. 80 C seems a more plausible value. Max temp is apparently[1] 85 or 90 C.


Harddisk Protection HDAPS(and HDAPS joystick) and battery charge control through tp-smapi

This does not work for me. Shouldn't this work out of the box for Ubuntu too?

On 9.04

To enable HDAPS (not really working), HDAPS joystick(works fine with modify tp-smapi module) and SM-API(which allow you to specify batter charge level to make battery live longer.

$ sudo aptitude install tp-smapi-source
(optional) $ sudo module-assistant get tp-smapi-source 

The module come alone with Ubuntu 9.04 is old, does not support X200. You will need to edit the file:

 /usr/src/modules/tp-smapi/hdaps.c

Search "X61" and add following line between " HDAPS_DMI_MATCH_INVERT("LENOVO", "ThinkPad X61", HDAPS_ORIENT_SWAP | HDAPS_ORIENT_INVERT_X)," and "};"


       HDAPS_DMI_MATCH_INVERT("LENOVO", "ThinkPad X200", HDAPS_ORIENT_SWAP | HDAPS_ORIENT_INVERT_X | HDAPS_ORIENT_INVERT_Y),
       { .ident = NULL }
$ sudo module-assistant build tp-smapi-source
$ sudo module-assistant install tp-smapi-source

Now you will need to enable those modules, edit the file:

 /etc/modules

and add those lines in the end of file:

 thinkpad_ec
 tp_smapi
 hdaps

You can test the HDAPS joystick:

$ sudo modprobe thinkpad_ec tp_smapi hdaps
$ sudo aptitude install hdaps-utils
$ hdaps-gl

To make your battery last longer with minimal charge cycles, edit the file:

 /etc/sysfs.conf

Add those lines:

 # Make battery live longer
 devices/platform/smapi/BAT0/start_charge_thresh = 50
 devices/platform/smapi/BAT0/stop_charge_thresh = 90

You will need a reboot to activate the change. Or you can do those to make it effective now:

$ sudo su 
# echo 50 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
# echo 90 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

Power Mgmt

Laptop-mode

Not sure what's going on here yet, but the battery claims to have only ~3 hours of life after a full charge.

The "laptop" mode is by default disabled in ubuntu (for some historical weird hang up, I guess). To enable it, edit the file:

 /etc/default/acpi-support

Change the following line:

 ENABLE_LAPTOP_MODE=false

to be:

 ENABLE_LAPTOP_MODE=true

Then your battery can provide you with some extra time (about half an hour~one hour). You can also enable it through powertop together with other tweaks. So far no hang is observed.

HDD clicking

When you hear often clicking HDD sounds, even if attached to AC, please check out this and this bug. Possible workarounds (as of 02-17-2009):

1. sudo gedit /etc/laptop-mode/laptop-mode.conf and change:

 BATT_HD_POWERMGMT=192 (instead of 1)

2. installing package acpi-support-0.115. This enables laptop-mode only when really on battery power. After installing the acpi-support package, run also:

 sudo ln -s /etc/acpi/resume.d/90-hdparm.sh /etc/pm/sleep.d/

Verify workarounds - HDD Power Mgmt values (make sure to check on AC and on battery, cable in, cable out, ...):

 sudo hdparm -I /dev/sda | grep -i "power mana"

When these fixes applied, you should see what cycle count slows down

 sudo smartctl -a /dev/sda | grep Load_Cycle

I had ~12000 cycles on first two weeks. Now about 800 cycles with last two weeks. Specs usually say 600'000 max park cycles during HDD lifetime

Display

With 8.10 things don't work well if you stick with the "preconfigured" xorg.conf settings: the default resolution is only 1074x768 and the highest setting that the laptop display is capable of (1280x800) doesn't even show up in the System -> Preferences -> Screen Resolution applet. To make matters worse, VGA output is a royal pain.

Here's a step-by-step guide to improve the situation if you just want to get the laptop display working properly:

  • First, make sure you've got the latest drivers for your Intel 4500MHD video card:
$ sudo apt-get install xserver-xorg-video-intel
On current 8.10, this step seems unnecessary. You get intel by default, and by this point in the install, you should have already have updated your packages. Mitchell 01:28, 15 December 2008 (CET)
  • Once that's over and done with, open up your xorg.conf file (note: be careful with this file):
$ sudo gedit /etc/X11/xorg.conf
  • Make the part that isn't commented out (i.e. that isn't preceded by a #) look like this:
Section "Monitor"
    Identifier    "Configured Monitor"
EndSection

Section "Monitor"
    Identifier    "HDMI-1"
    Option        "Ignore" "True"
EndSection

Section "Monitor"
    Identifier    "HDMI-2"
    Option        "Ignore" "True"
EndSection

Section "Screen"
    Identifier    "Default Screen"
    Monitor        "Configured Monitor"
    Device        "Configured Video Device"
    DefaultDepth     24
    SubSection "Display"
        Modes "1280x800" "1024x768"
# The following line was an auto-configuration added by an external VGA projector; you might leave it out to try
# letting the system detect dimensions appropriate for whatever display you happen to use.
        Virtual    2432 864
    EndSubSection
EndSection

 Section "Device"
     Identifier    "Configured Video Device"
     Driver        "intel"
     Option        "monitor-HDMI-1" "HDMI-1"
     Option        "monitor-HDMI-2" "HDMI-2"
 EndSection


  • Note: those HDMI settings are really important because they get rid of some imaginary monitors (see this other X200 installation notes post for more details). Save your new xorg.conf file and quit the Gedit text editor. Also quit any other open programs and log-out from your session to reset the X-server and apply the new settings.
    On current 8.10, some changes seem unnecessary: Driver (intel is already the default), DefaultDepth (24 is the default), and the Option "monitor-HDMI-x" lines (the "HDMI-x" sections are sufficient to get rid of the imaginary monitor; but I've not yet tried using an external laptop or base monitor). Mitchell 01:28, 15 December 2008 (CET)
  • When you log back in, all the new settings should "just work," but don't be alarmed if things look a little weird or if the screen resolution still isn't the full 1280x800...
To make sure the xorg.conf changes "stuck" and that the resolution is set properly, open the aforementioned Screen Resolution applet: System -> Preferences -> Screen Resolution. Make sure the the box that says "Mirror Screens" is unchecked and click the "Detect Displays" button. In the little colorful diagram thingy, there should just be a big rectangle that says "laptop 12"" (or whatever portion of those words fits in the rectangle). Click on this "laptop" rectangle to make sure and activate it. Once you've clicked on it, look for the drop-down menu that says the resolution and re-set this to "1280 x 800 (16:10)." If there are other "imaginary" displays activated (there shouldn't be with the HDMI workaround in the xorg.conf file included above) use the same drop-down menu to turn them to "Off." Click "Apply" at the bottom and close the applet. Log out again to activate the new settings. If all goes according to plan, your 12800x800 display should now work like a charm!
  • Once you've got that all sorted out, go ahead and hook the X200 up to an external display via the VGA port (so far, I've only tried it directly from the laptop and not from the ultrabase). Open the Screen Resolution applet again and click "detect displays." Choose a resolution for the external display and decide whether you want a mirrored output or not. Click apply (here the system may prompt you to accept virtual display settings - say yes and confirm by typing your password), close the applet and log-out again to reset X. Once you log in, you should have an external display working perfectly.
  • Ultrabase is working on VGA as described in the paragraph above.
The sad affair starts when using the Ultrabase to hook up a digital monitor. Everything works with the other OS (Ubuntu Bug #1) - even dual monitors with swapping sides and rotation. I managed to connect an old ViewSonic VP211b via an HP Displayport->DVI Adapter. It worked without any modifications to the xorg.conf - you need the HDMI-2 port enabled. I guess the HDMI-1 is reported/enabled by error for video hookups the chipset is capable of ( /usr/share/doc/xserver-xorg-video-intel/README.gz ). It worked several days in the optimal resolution of 1600x1200 then suddenly the monitor blanked while reading emails ...
The Viewsonic VP211b has a very borked VESA implementation and had sometimes stopped/shivering when connected to a TP61-dockingstation.
Testing a brand new (week 2 2009) HP LP2475w monitor with DisplayPort was a no go: splash worked but no xserver. Hooking it up via the DVI-adapter was not better. I do still not know what made the Viewsonic work for several days.
Trying the vesa driver is not an option since the HP LP2475w does not report a VESA mode for its optimal resolution 1920x1200. Disabling DDC and going modeline does not cut it for digital hookups. The best I managed to see digitally was 1680x1050 - 1920x1200 via VGA is way better!
There seems to be some success with SAMSUNG monitors at lower resolutions with DVI-adapters (Post 25 by zodTM).
For the time being I conclude we have to wait for the DisplayPort support in xserver-xorg-video-intel driver but even Jaunty might not have the right version (intel drivers in ubuntu) as of beginning February 2009 but I have not tested it. Getting DisplayPort implemented is work in progress (Keith Packard on DDC mystic).

Suspend and Hibernate

Multicore issues

There will be conflicting reports and confusion about this, because there is at least one problem causing intermittent suspend/hibernate crashes. In other words, things may appear to work, and then they may not.

If you experience a crash while resuming (my guess is that you will, eventually), first attempt the fix described here:

Workaround on T400

Apparently, this is a multiprocessor problem, and the workaround to disable one core at Suspend/Hibernate is relatively easy to implement.

Confirmations:

On a up to date 8.10 system (as of Nov 12th: linux-2.6.27-8, video-intel-2.4.1ubuntu10) suspend now seems to work perfectly. Before the above multi-processor workaround, resuming from suspend used to crash about half of the time. Not a single crash has been observed since the workaround.

Seconded; this appeared to fix it for me as well (12/2/08), on a fully updated 8.10, with no other modifications to stock.

On current 8.10, without the workaround, hibernating from the menu, I get ata errors going down, and then a crash waking up. 2 trials, 2 crashes. Mitchell 04:30, 15 December 2008 (CET)

Additional information about various potential fixes is included below for reference, though I didn't (so far) need to do anything aside from what's described above.

Notes

There are new xserver-xorg-video-intel drivers available in intrepid-proposed, which should fix the resume issue in driver level - so disabling second CPU core is not necessary. If you still get hangs just when second CPU core enabled, check also your xorg.conf.

Trying different config options revealed also this: do not use Option "NoDRI" in your xorg.conf.

I enabled that option to save power (suggested by lesswatts.org). And seems that one can mess up resuming.

Older workarounds

Without tweaking drivers and xorg.conf suspending thcrough the Gnome desktop does not work - seems to be related to the problems with the display. Some people have reported no problems with Hibernate, while others...you get the idea. If you're one of those having problems, read on...

Once you've followed the instructions to get the Intel video card drivers installed (see above) Hibernate (suspend to disk) *should* work and Sleep/Suspend (suspend to RAM) *might* work (there are some conflicting reports out there). If you like, you can examine/tweak the settings in system -> preferences -> power management.

If the suspend/sleep still doesn't work, try the following work-around to get the system to recognize the sleep settings.

First, create a text file called "sleep_module" in the /etc/pm/config.d directory:

sudo gedit /etc/pm/config.d/sleep_module

In the new file, enter:

SLEEP_MODULE=kernel 

Then save this new file and exit your text editor as well as your other apps. Do a reboot and try out your freshly reconfigured suspend funciton. As before, you can examine/tweak the settings in system -> preferences -> power management.

Note: Consider using "sudo -e" for editing files.

Update: The latest updates to 8.10 (still in beta at the time of this writing) appear to include a sleep_module configuration file that includes this tweak.

I had lots of problems with both hibernate and suspend. I have disabled lots of (for me at least) unneeded devices in the bios, and now at least hibernat works. My x200 bios configuration is now like this:

  • Network
 * wake on lan disabled
 * flash over lan disabled
 * ethernet lan option rom disabled
 * hdd dma enabled
 * wireless lan and wimax enabled
  • SATA AHCI
  • CPU
 * multiprocessing enabled
 * intel virtualisation enabled
 * intel vt-d enabled
  • Intel AMT
 * AMT Control disabled
  • IO Port access
 * ethernet enabled
 * wlan enabled
 * wimax enabled
 * wwan enabled
 * bluetooth enabled
 * wireless usb disabled
 * modem disabled
 * usb enabled
 * expresscard slot disabled
 * ultrabay hdd disabled
 * memory card disabled
 * camera enabled
 * microphone enabled
 * fingerprint reader disabled

I left the rest at bios defaults. Of course, you may one some of these devices enabled, but this is a starting point to get hibernate/suspend working and by enabling one after the other you should be able to find the device/s that cause problems.

Note: with this setup i get 4h30min battery time instead of 3h55min

Hibernate fails with Virtualbox running

-> http://ubuntuforums.org/showpost.php?p=4582777&postcount=3

To circumvent this, put this in ~/bin/vbox_suspend:

#!/bin/bash
for x in `vboxmanage -nologo list runningvms`
do
  vboxmanage -nologo controlvm $x savestate
done

and make it executable. you can test it by running ~/bin/vbox_suspend, which should save all your running virtual machines.

put the following lines in /etc/pm/sleep.d/90virtualbox and make it executable as well:

#!/bin/bash
case $1 in
  hibernate)
    su YOURUSER -c /home/YOURUSER/bin/vbox_suspend
  ;;
esac

This is not very elegant (as the user is hard-coded), but it works. I have tried to make the machines resume on thaw, but it would place the vms on the wrong workspace even if it know which X server to use, which it doesn't.

Sound

(Mostly) works out of the box under 8.04 and 8.10

Worth noting the apparent problems w. Skype and Medibuntu on 8.10 - some of this appears to have been resolved recently and will hopefully make it into the final release. Sound playback within Skype still failing despite the workaround.

  • There is no sound, when the X200 is connected to the Ultrabase see here

Camera

Works with Cheese Webcam Booth on 8.10. Also with Kopete on 8.10.

VGA

"Unclaimed"

Tablet

The X200 Tablet uses a wacom device. The instructions for configuring xorg in 8.10 to work with wacom input do seem to work.

https://help.ubuntu.com/community/WacomTroubleshooting

Just follow the directions for a SERIAL tablet (which is indeed what you have).

Here is an xorg.conf that has both the resolution fix and the tablet fixes (tested on 8.10 with an X200 tablet, multitouch - i.e. pen and fingertip - screen):

 Section "InputDevice"
   Driver        "wacom"
   Identifier    "stylus"
   Option        "Device"        "/dev/ttyS0"      # SERIAL ONLY
   Option        "Type"          "stylus"
   Option        "ForceDevice"   "ISDV4"           # Tablet PC ONLY
 EndSection

 Section "InputDevice"
   Driver        "wacom"
   Identifier    "eraser"
   Option        "Device"        "/dev/ttyS0"      # SERIAL ONLY
   Option        "Type"          "eraser"
   Option        "ForceDevice"   "ISDV4"           # Tablet PC ONLY
 EndSection

 Section "InputDevice"
   Driver        "wacom"
   Identifier    "cursor"
   Option        "Device"        "/dev/ttyS0"      # SERIAL ONLY
   Option        "Type"          "cursor"
   Option        "ForceDevice"   "ISDV4"           # Tablet PC ONLY
 EndSection

 Section "InputDevice"
   Driver        "wacom"
   Identifier    "pad"
   Option        "Device"        "/dev/ttyS0"         # SERIAL ONLY
   Option        "Type"          "pad"
 EndSection

 # Uncomment the following section if you you have a TabletPC that upports touch
 Section "InputDevice"
   Driver        "wacom"
   Identifier    "touch"
   Option        "Device"        "/dev/ttyS0"       # SERIAL ONLY
   Option        "Type"          "touch"
   Option        "ForceDevice"   "ISDV4"            # Serial Tablet PC ONLY
   # Adding manual calibration, since proper calibration seems impossible.
   Option "BottomX" "915"
   Option "BottomY" "940"
   Option "TopX" "48"
   Option "TopY" "90"
 EndSection

 Section "Monitor"
     Identifier    "Configured Monitor"
 EndSection

 Section "Monitor"
     Identifier    "HDMI-1"
     Option        "Ignore" "True"
 EndSection

 Section "Monitor"
     Identifier    "HDMI-2"
     Option        "Ignore" "True"
 EndSection

 Section "Screen"
     Identifier    "Default Screen"
     Monitor        "Configured Monitor"
     Device        "Configured Video Device"
     DefaultDepth     24
     SubSection "Display"
         Modes "1280x800" "1024x768"
     EndSubSection
 EndSection

 Section "Device"
     Identifier    "Configured Video Device"
     Driver        "intel"
     Option        "monitor-HDMI-1" "HDMI-1"
     Option        "monitor-HDMI-2" "HDMI-2"
 EndSection

 Section "ServerLayout"
     Identifier    "Default Layout"
     Screen        "Default Screen"
     InputDevice   "stylus"  "SendCoreEvents"
     InputDevice   "eraser"  "SendCoreEvents"
     InputDevice   "cursor"  "SendCoreEvents" # For non-LCD tablets only
     InputDevice   "pad"                      # For Intuos3/CintiqV5/Graphire4/Bamboo tablets
     InputDevice   "touch"   "SendCoreEvents" # Only a few TabletPCs support this typeEndSection  
 EndSection

You may also want to download the "wacom-tools" package.

When I started experimenting with this, the touchscreen portion of multitouch was quite miscalibrated, and the distro's wacom-tools package has a bug which seems to prevent calibration of the touchscreen via wacomcpl. In fact, it seems to have a series of bugs, judging based on what I've found in google. My solution was to futilely experiment with various xsetwacom values (as documented here) for a few minutes, and then try the values posted by an X61t user.  :) These were close enough to be a starting point. Then I fiddled some more, and the results are included in the xorg.conf above. With luck, these numbers will just work for you, and you won't have any issue. If not, check out the linux wacom documentation and experiment with new calibration values via xsetwacom.

Why is a "pad" input device included? The X200T's "wacom tablet" doesn't have a mousepad. Mitchell 07:40, 15 December 2008 (CET)

TrackPoint

Trackpoint scrolling is, as of 12/02/08, not in a good way on 8.10. According to the relevant bug, trackpoint issues are fixed in Jaunty.

There are numerous instructions on the net which don't work for the X200, including instructions here ([How to configure the TrackPoint]).

On the X200, the HAL-based instructions in the last section may work, but only until suspend/resume or VT switching, due to a known bug in evdev.

I do have it working, but it is not pretty:

  • Create a patched evdev. The following is based on instructions from the bug report. These instructions will be extremely fragile - they work for me today but could stop working at any point, based on updates to evdev or changes to the bug. The lines below do the following:
    • Set up a work area
    • Download the patch from the bug report
    • Prepare your environment for building evdev
    • Download the evdev sources
    • Patch them
    • Produce a new deb
    • Install it
sudo bash
cd /usr/local/src/
mkdir evdev
cd evdev 
wget http://launchpadlibrarian.net/19254960/preinit.diff
apt-get build-dep xserver-xorg-input-evdev
apt-get source xserver-xorg-input-evdev
cd xserver-xorg-input-evdev-2.0.99+git20080912
patch -p1 < ../preinit.diff
debian/rules binary
cd ..
dpkg -i xserver-xorg-input-evdev_2.0.99*.deb

  • Add xinput lines to your .profile; with this patch, the normal HAL method no longer works (though note, I have not tested this with no hal policy for the trackpoint at all, just left the non-working one in place. YMMV).
# TEMPORARY FIX FOR BROKEN EVDEV/HAL for TrackPoint scrolling:
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Wheel Emulation" 8 1
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Wheel Emulation Button" 8 2
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Wheel Emulation Y Axis" 8 4 5
  • reboot your system.

This _should_ enable trackpoint scrolling that will be durable through suspend/resumes.

At some point they will fix the upstream evdev package, and/or adjust other configs. You may see this suddenly stop working after an update (evdev was updated but this fix wasn't in the update); in which case, re-run the steps above to create an updated patched evdev (hopefully). Or the update may carry an upstream fix; latest word in the bug is that the unstable upstream debian packages work out of the box. In which case you should simply come back and reexamine whether the xinput lines in the .profile are still necessary at a later date, or you can use the more canonical HAL profile to control the trackpoint properties.

Using HAL policy

For me this works fine (Ubuntu 8.10):

Create an file /etc/hal/fdi/policy/mouse-wheel.fdi an put the following into it:

<match key="info.product" string="TPPS/2 IBM TrackPoint">
 <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
 <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
 <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
 <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge>
</match>

Reboot and scrolling with the trackpoint should work.

Does this continue to work after suspend and resume? Obsidian 13:10, 28 March 2009 (UTC)

Rotating the Screen

A classic gripe of linux tablet users is that they can rotate the screen but the digitizer does not rotate with it automatically. This can render the portrait "tablet" configuration useless.

The wacom driver actually has the capability to rotate as well. A script has been developed to both rotate the display and the wacom driver:

http://www.thinkwiki.org/wiki/Wacom_Serial_Tablet_PC_Stylus

The last version of the script (for linuxwacom 8.1) appears to work on the x200, in 8.10, after using the other xorg display and wacom modifications above.

However after a few days I have noticed some instability and odd behaviour with it. If anyone would like to have a look at it, please feel free to post a correction here.

Once you have copied the script to your local system, you can use the normal key binding facilities in gnome or kde to bind your rotation key to it.

If anyone has any idea how to receive and act automatically on signals from the sensor inside the x200 tablet's screen hinge, please post it!

It is possible to make screen rotation work well with compiz enabled by installing the following patch to xorg as described at

http://www.krizka.net/2008/02/13/thinkpad-x61-tablet-automatic-screen-rotation-under-linux/

This seems to enable 100% stable screen rotation under 8.10

Fan

WARNING: USE AT YOUR OWN RISK

Monitor the temperatures of harddisk, gpu and cpu when controlling fan speed.

Software fan control is dangerous, and can shorten the life of a laptop or even destroy it. For a detailed discussion and warning from the kernel maintainer, see this thread, which happens to be an X200s user asking for help.

As reported elsewhere, the fan seems to run constantly while the machine is on under 8.04 and 8.10 (though not at 100% speed).

The fan can be made less noisy by installing the tpfand packages.

  • First add the tpfand repository. Instructions are here
  • Then install the packages.
sudo apt-get install tpfand tpfand-admin 

There is currently no tpfand profile for the x200, but you can set the thresholds and power settings for all fans easily with the thinkpad fan control software. Here are the settings from my /etc/tpfand.conf as a starting point. Use the sensors applet to control and monitor temperatures of cpu, gpu and harddisk (see below)!

#... 
0. CPU = 0:0 50:7 
1. Mini PCI = 0:0 55:4 
2. Sensor 2 = 0:255 
3. GPU = 0:0 55:5 
4. Bat0 = 0:0 35:3 
5. Sensor 5 = 0:255 
6. Bat1 = 0:0 35:3 
7. Sensor 7 = 0:255 
8. MB? = 0:0 45:2 
9. MB? = 0:0 55:3 
10. Sensor 10 = 0:255 
11. Sensor 11 = 0:255 
12. Sensor 12 = 0:255 
13. Sensor 13 = 0:255 
14. Sensor 14 = 0:255 
15. Sensor 15 = 0:255 
#...

These settings achieve the following:

  • fan runs at 15% if the system is idle. This is very quiet, while still having airflow through the system
  • if MB2>55° or BAT>35°, fan runs at 30%
  • if MiniPCI>55° fan 45%
  • if GPU>55 fan 60%
  • if CPU>50 fan 90%

The net effect is that a busy system will run the fan between 45%-90% depending on load.

The above settings are for the X200 (without an s) as is all the information on this page. Don't know why somebody messes this page up with stuff about the X200s and sinister warnings.

(Warnings are cheap. New laptops are not. When you have a "sinister warning" about tpfand from the maintainer of the thinkpad fan code in the kernel himself, I don't know why this section is even here - it's not safe. Even so I say leave it, but just make sure there is a big warning.)

The sensor names were deduced by matching sensor readings between tpfand and acpi temperatures.

GPS, 3G

See Ericsson_F3507g_Mobile_Broadband_Module