From ThinkWiki
Jump to: navigation, search

My thinkpad

IBM ThinkPad X31 (2673-CBU), bought used, see why here.

Currently running: Kubuntu 7.10 (Gutsy).

Lenovo page

Update 2010: One of the reasons why I bought this machine was its supposed durability. After a few years I must say I am quite disappointed with it. I carried it around a lot, and the chassis started breacking in several points after only a few months. This is not really a problem as it's not falling apart. The real problem came more recently, in the last year or so. The machine started having some erratic behavior which I suppose to be related to some of the hardware failing: I often get kernel panics (machine freezes, caps lock blinking), and sometimes when I boot either the screen and/or the disk will not work: the led is on but nothing else happens. I still could not identify the problem though (any ideas?).

Breezy Installation issues

I first installed Kubuntu 5.10 (Breezy). I wanted to keep Windoze, just in case I needed it (but I never use it ;) ), and keep the hidden protected area, and be able to reach it at startup, just in case I sell the laptop back at some point. My problem was that:

  • GRUB has to be installed either in the MBR or in the first partition. As an alternative I could have used the NT boot loader, see here. Anyway, I wanted to keep Linux in front, as I plan to remove windoze completely, and the first part of the disk should be faster.
  • Windows would only work being on the first partition (AFAIK)
  • Putting GRUB in the MBR would overwrite the original setup/recovery tools (AFAIK - Note: if you do this, and later manage to start Windows, it will rewrite the MBR anyway)

My solution (DO IT AT YOUR OWN RISK):

  • Create a new primary partition for Windows, at the end of the disk, before the rescue partition. Copy windows there.
  • Modify windows' boot.ini:

$ diff /windows/boot.ini /windows/boot.ini~

< default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
> default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
< multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
> multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
  • Set root partition to (hd0,1) for Windows in GRUB menu. See also here.

My current partition table according to fdisk:

Disk /dev/hda: 36.8 GB, 36825459200 bytes
255 heads, 63 sectors/track, 4477 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1           6       48163+  83  Linux
/dev/hda2            3651        4477     6642877+   b  W95 FAT32
/dev/hda3               7         249     1951897+  82  Linux swap / Solaris
/dev/hda4             250        3650    27318532+   5  Extended
/dev/hda5             250        3650    27318501   83  Linux

Partition table entries are not in disk order
My windows partition is a FAT32. This is because, after restoring it, AND BEFORE ever starting it, I renamed the file <windows-dir>/system32/convert.exe. I found this info somewhere on the net, see for example here: after install/restore, Windows filesystem is actually FAT32, and it's converted to NTFS only at the first run. This is useful as FAT is better supported by Linux.

Breezy Post-install configuration

  • (I think I) modified interfaces to enable hotplugging the ethernet cable. Which is wrong anyway. I also had to add lines to dhcp on both the wireless (eth0, see below) and the ethernet (eth1). Dapper upgrade removed hotplug, and it's still working, so that was really useless.
  • I enabled Fn + F5 creating file /etc/modprobe.d/ibm_acpi.modprobe with the following line:
options ibm_acpi hotkey=enable,0xff9f
  • Modified my GRUB menu.lst. The Fn + F5 stopped working.. Finally I found out why looking at /usr/src/linux-source-2.6.12/Documentation/networking/README.ipw2100 in section rf_kill, and modified /etc/acpi/ accordingly, see here. After Dapper upgrade I further cleaned up the script. Now the wireless is disabled at boot, which is what I wanted, and is switched with Fn + F5.
  • I thought the built in wireless did not work, but in fact it does
  • I had an hissing sound when on batteries. I found out it's actually related to screen brightness, see here.

Dapper upgrade

All went fine.

  • This bug does not seem to present itself, and CPU scaling is still working fine.
  • Hibernation is now working. With Breezy, the system used to crash and reboot after resume.
  • With ibm-acpi ver. 0.8-2 I can now use the experimental settings, adding option experimental=1 to /etc/modprobe.d/ibm_acpi.modprobe.

Gutsy Installation Issues

At first I tried to upgrade to Edgy. This was a disaster: apt-get got completely confused, grub messed up and at boot it could not find any of the kernel images on disk. As I was far back on the ubuntu release schedule anyway, I opted for plan B: fresh install of Gutsy. This went perfectly. I kept home partition and formatted the rest, which allowed me to keep most of the settings I had. Now I'm in the process of restoring previous tweaks.

  • Sound did not work at first: I just had to turn on and pull up the PCM output in kmix.
  • Fonts look uglier, dirty and fat.
  • tty1-6 disappeared, clicking CtrlAltF1 just showed a blank screen. Found a solution here. In my case I had to unban and load radeonfb, and add vga=792 to the boot options. Now I have the ttys but the boot splash does not work, so I removed the splash boot option.
  • Installed kmilo-legacy to recuperate the OSD and special button functions:
    • replaced 0xffff8f with 0xffffff in /etc/modprobe.d/thinkpad_acpi.modprobe to enable FnF5 to FnF12
options thinkpad_acpi hotkey=enable,0xffffff experimental=1
    • hibernate button did not work: edited /etc/acpi/events/ibm-hibernatebtn replacing line



which is the real hibernate script. This solved the problem.

    • Sleep does not work any more.
    • This time the wireless switch works out of the box, but if I press volume keys kmilo decides that I also want to start kmix and change its master volume as well, together with /proc/acpi/ibm/volume. I found I can suppress this by pressing Shift. Solution: I found out that the keys were interpreted both by acpi and by X. I just undefined them in my .Xmodmap.
    • I decided to use an ACPI key combination to restart X, as sometimes everything freezes, keybord included, but Fn key combinations as brightness, thinklight, still work. So I added a simple executable script /etc/acpi/, simply executing killall Xorg, and changed the action in /etc/acpi/events/thinkpad-zoom to be

I also set the action in kmilo-thinkpad (Settings -> System Administration -> IBM Thinkpad Laptop). For some reason this does not work...

  • External monitor used to always work, now it only works if I start X after plugging it in. Also,

this bug is present. I installed xvattr, and I have to execute this line to show a movie in the external monitor:

$ xvattr -a XV_CRTC -v 1

  • For most other things I definitely noticed an improvement in stability, usability, etc.

Hardy upgrade

Todo. All went well, now Sleep (suspend to RAM) works, everything else works out of the box except OSD, but the hotkeys work.

Configuration files (Dapper)

Configuration files (Gutsy)


Configuration files (Hardy)


Current issues

  • How can I switch Fn and Ctrl keys? (I guess I can't as Fn combinations are interpreted by the BIOS)
  • FnF7 does not work. This seems to be due to this bug in Xorg.
  • External monitor used to always work, now it only works if I start X after plugging it in.

Still untested

  • Irda (worked in Dapper)
  • modem (recognized by restricted driver module in Gutsy)
  • IEEE 1394
  • Parallel port

Post Scriptum

My poor thinkpad is now dead. After a short but intensive life, it started experiencing kernel panics, probably caused by a fault in system board. RIP.