Sunday, November 26, 2006

Linux on the Thinkpad T60p

Linux on the Thinkpad T60p

After three years with an IBM Thinkpad T40, I bought this summer a new Lenovo laptop, a T60p, model 2007, 83G. This model presents to the user the same form factor than its predecessor, with its 14 inches LCD screen at resolution of 1400x1050 pixels. Inside the box, the hardware naturally evolved: the CPU is an Intel Duo Core (not core 2 duo), running between 1GHz and 2.16 GHz depending on the power management settings, the graphic card is an ATI FireGL V5200, the network card is an Intel 82573L, the sound chipset is an Intel HDA, the modem is a Conexant winmodem, and the hard drive is a Seagate Momentus 100GB SATA 7200 RPM.

Initial installation and partitionning

The machines comes with a big FAT32 partition containing Windows XP, and a Diagnostics partition visible at the end of the disk. Without user intervention, the OS will convert its underlying partition to NTFS the first time the system is launched. So I suggest to reduce the partition size before starting Windows for the first time, while the filesystem is still in VFAT. I typically use a bootdisk running FIPS. The SATA controller must be configured in "compability mode" for this operation.

The minimum size you can reach for the Windows XP partition will be around 11 GB, which is huge compared to the 5GB of the T40. Adding to this space the Diagnostics and recovery partition size, the maximum remaining free space you can gather from your 100GB disk is only 80GB. If you intend to keep the Windows XP partition solely for BIOS upgrades purpose, you may think twice before doing that, because :

  • Lenovo BIOSes are now also provided as standalone bootable CD-ROM. For example, latest version 1.09 is available as a bootable disk.
  • Upgrading from DOS (using a floppy or a CD-ROM support) is more secure, than from Windows, because there're less risks for the machine to randomly freeze during the flashing procedure...

After grub is installed on the MBR, the Diagnostics partition is no longer accessible with the "Thinkvantage" blue button, but an entry for this partition can be added in the grub.conf menu, see the excerpt below. Currently, I can boot on it, but I cannot start the PC-Doctor program from it.

title Diagnostics
rootnoverify (hd0,1)
chainloader +1
makeactive

Supported and unsupported hardware

I run Fedora Core 5 on this machine, without much trouble in my daily work.

What works out of box:

  • Duo core is handled by the linux smp kernel.
  • HDD monitoring with smartd (use the -d ata flag)
  • LCD brightness, ThinkLight, and sound volume control with the tpb program (same setup than the T40).
  • tp_smapi interface to set the battery start and stop charge thresholds.
  • suspend to ram.

What works with a proprietary driver:

What doesn't work:

  • The internal modem. Lenovo provides an OEM RPM package of the linuxant proprietary driver -- search for "T60p linux capable" in the thinkpad drivers matrix web page on the IBM site-- but this package doesn't detect my modem. Lenovo provide version 7.47.00 of the linuxant driver. The non-OEM driver from linuxant.com is currently at version 7.47.00.03, it recognizes the modem, but it also replaces the snd-hda-intel ALSA module, and this modification causes start_udev to freeze at reboot.
  • Suspend to disk (in kernel infrastructure, not swsuspend2). Systematic reboot after resuming. Patches are expected to show up in kernel-2.6.18 for this issue (AHCI suspend/resume problem ?).
  • SATA HDD Acoustic settings. The right side of the palm rest, just above the disk becomes rather hot, even without significant disk activity.
  • The ATI proprietary driver (version 8.28.8) appears to be very unstable, when running OpenGL games. It crashed several times, with errors about mmap memory locking issues ([fglrx:firegl_rmmap] *ERROR* map 0xf684d3d0 still in use (map_count=1)). I reported this bug to the ATI support site, without much hope to receive an answer anytime soon...

Untested:

Power consumption

Clearly, the T60p consumes MUCH more power than the T40 in the same power saving mode, consisting of:

  • removing USB external peripherals, and rmmod'ing the *-hcd usb modules.
  • shutting down the network card and the wireless card : ifconfig [...] down, and rmmod e1000, rmmod ipwxxxx
  • stopping the IrDA services and rmmod'ing the related kernel modules.
  • ditto for bluetooth
  • dimming the LCD
  • running the graphic chipset in the powersaving mode (DynamicClock enabled for the radeon 9000 of my T40, and aticontrol --set-powerstate=1 for the proprietary ATI driver for the FireGL of my T60p)
  • running the CPU at its lowest speed (600MHz for the T40, 1GHz for the T60p) with the cpuspeed driver.

With this setup, the T60p consumes 18W, while the T40 only comsumes 10W. The batteries capacity didn't evolve much on the other side. A brand new 9 cells battery has a maximum capacity of 80Wh, so your T60p will have an autonomy of 4 hours, when the T40 has an autonomy of 8 hours.

These values must be tampered, if we consider a more expensive power utilization. The T40 consumes around 13W, and the T60p is around 24W, that converts to an autonomy of 3h20 and 5h30. Also keep in mind that the battery capacity will drasticaly erode itself quite rapidly, for example 60% of the factory capacity remaing after one year.

The consequence is that the temperatures inside the box are also much hotter, than with the T40, the typical values collected from the acpi /proc interfaces are :

  • CPU temperature around 55 deg (centigrade) when idle, up to 90 deg when busy (cpuspeed control disabled)
  • GPU around 67 deg if a lower powerstate is activated, 75 deg else. Can reach 95 deg.

On the T40, these temperatures were lower for the CPU (40 deg idle, 75 busy).

Hints and Tips

  • remember to disable the "-s " option in cpuspeed, so this program can handle both CPUs.

Benchmark

This benchmark is not a very scientific one, but it gives a rapid performance comparison. It's a full kernel compilation (make allmodconfig). Note that both machines have a 7200 RPM HDD. The T40 has a PATA one, and the T60p a SATA one.

  • T40 : 56min05
  • T60p : using a single CPU, 34min36
  • T60p : two compilations, in parallel, but in two separate work directories : 46min40 / 46min53
  • T60p : a parallel compilation with make -j2 : 21min20

So yes, there's a big power boost with the T60p compared to the T40, and no, the dual core is not that impressive in my opinion.

3D

I tested few stuff. Flightgear runs fine at a very decent frame rate. GoogleEarth is fluid without flickering. I also tried a game demo (Cold War) that crashed the ATI proprietary driver. nexuiz cannot complete in benchmark mode (nexuiz-sdl -game benchmark -benchmark demos/demo1), because the ATI driver miserably fails. Despite this bug, the beginning of the demo runs at 26 fps avg using the game default config.

Troubles

The machine has already been serviced, after 15 days of utilization. The battery could no longer be charged after it's first full discharge. The problem appeared to be located on the motherboard, that got replaced.

Conclusion

As usual when buying a new laptop, with up-to-date hardware inside the box, for use with linux, there's a period of several months before all the hardware, that can be handled by free drivers, is correctly supported. With some more luck, the 2D and 3D specifications of the high-end ATI cards will be disclosed to the Xorg developpers. A reverse engineered driver for the fingerprint hardware is on the way. The support for the internal winmodem remains uncertain. As an alternate solution, it is still possible a resurrect an old 3Com/Megahertz modem pcmcia card, and to use it when this bug will be resolved.

(link to note)

No comments: