I installed Ubuntu 5.10 (Breezy) with ease and contrary to Debian (which I ran previously) most of the features of the laptop worked out of the box:
- Suspend to disk and suspend to memory works
- Wireless, driver version 1.0.6 (newer releases are available)
- ibm_acpi is included (not the newest release)
- powernowd - controls the speed of the processor
- IBM-buttons does something useful (except the wireless button that only kills Bluetooth).
What did not work:
- External VGA (sort of see below)
What I din't try:
- Modem
- Card reader
After going through the install procedure it was mostly about installing all the appropriate packages. With a few exceptions that I'll go through bellow. To get everything else up and flying I got considerable help from the IBM ThinkWiki.
Thinkpad buttons
While the ibm-acpi driver (bellow) enables control of most ibm-buttons
and hardware it doesn't feature a nice X interface for the volume
control and mute. Install it and remember to enable it in
"/etc/default/tpb" and to add your user to the "nvram" group.
apt-get install tpb sudo adduser leopold nvramSet START_TPB in "/etc/default/tpb" to true != "true".
Add nvram to "/etc/modules" (tpb is started on X login, every now and then it failed for me since /dev/nvram did not exist at this time. I'm supposing modprobe didn't make the device show up quick enough or something).
ALSA sound setup (dmix)
It
seems that versions of ALSA prior to 1.0.9rc2 have to be
configured to allow two applications to access the sound device
simultaneously. In short this involves creating a proper
/etc/asound.conf file - see this thread
Later versions of alsa has this setup enabled by default, however newer version is not included in Ubtuntu Breezy. I won't go into the details
hdparm
I'm not really sure how much of a difference it
makes but I enabled a few parameters in "/etc/hdparm.conf", to get the
best performance:
/dev/hda { dma = on mult_sect_io = 16 spindown_time = 240 }
Beep in console mode and X11
To stop the beeping in console mode, edit /etc/inputrc:
set bell-style noneI couldn't find a config option to stop the bloddy beeping in X11. Some time during login you have to run the "xset" command. If you're using a custom .xsession that would be a perfect place. I'm using the standard XFCE4 login and run the command during login I created the following file "root@ratata:/etc/X11/Xsession.d/91xset" containing the command:
xset b off
Use X11 blanking instead of XFCE4
It seems that mplayer is
unable to disable the blanker in XFCE4, however mplayer can disable
the built-in blank i x.org (and XF86 for that matter). The
blank-times can be set with xorg.conf or with the xset command. I used
the xsession script above (91xset) to tune my blank times.
I'm not sure what the three power modes (standby, suspend, off) means with an LCD panel, but you can specify each in seconds:
xset s blank # set preference to bblank the video (if the hardware can do # so) rather than display a background pattern xset dpms 200 201 600 #standby suspend off (in seconds)
Automatic login
I want my laptop to login as my personal user automatically. This is
accomplished by tuning /etc/gdm.conf. Look for the following:
AutomatedLoginEnable=true AutomatedLogin=leopold
Set paper size
Set the paper size to a4 in the following file
/etc/papersize
Set display right after resume
To make sure that the display is right after resume enable a small
hack in /etc/default/acpi-support (this is particularly important on
the x40 or your screen might be garbled after resume):
DOUBLE_CONSOLE_SWITCH=true
Network setup
To detect and configure ethernet (wired) when it is inserted install
ifplugd and configure it with /etc/default/ifplugd. Remove the line
"map eth0" from /etc/network/interfaces to allow ifplugd to configure
the network instead of hotplug (hotplug stalls during boot if it
cannot get a DHCP-assigned address).
It seems that ifplugd stops every on suspend/resume (maybe the network driver is removed causing ifplugd to crash?). To solve this add ifplugd to the list of programs to stop/start when suspending/resuming in "/etc/default/acpi-support":
STOP_SERVICES="mysql ifplugd "
Wireless
In order to support WPA encryption the "WPA supplicant" daemon is
required. The package unfortunately automatically install all of its
dependencies - remember to install opensc as well. Netapplet provides
a small system tray applet for monitoring and selecting networks and
integrates perfectly with XFCE4.
apt-get install opensc wpasupplicant netapplet