Installing Debian 5.0 (Lenny) on a ThinkPad X32
Contents
Introduction notes
This wiki has tons of useful tips regarding this laptop, so this document only gathers information that is either specific to Debian Lenny or hard to find on the web. Linking to other pages on this wiki has generally been prefered to duplicating information.
The page dedicated to the X32 is another good starting point to fine-tune your GNU/Linux installation on this notebook.
To do
- Document Linux boot options
Upgrade the BIOS
In case your X32 came with Windows installed, enjoy a BIOS Upgrade before installing GNU/Linux.
Prepare the installation media
Running the installation from a USB stick was the chosen method.
- Get the
boot.img.gz
from the Debian installer website - Prepare a bootable USB stick, following the Debian installation guide, as the "easy way" did not work for us.
- In case you need to install using a wireless network, you are quite lucky, as Lenny's installer now supports loading firmwares during the install process; to make use of this feature, follow the Loading Missing Firmware section of the installation guide.
Integrated wireless
According to X32, various mini-PCI wifi cards may be installed in this notebook. Ours came with the Intel PRO/Wireless 2200BG Mini-PCI Adapter, which identifies itself as:
$ lspci
02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)
$ lspci -n
02:02.0 0280: 8086:4220 (rev 05)
To get it working, one must install the firmware (unless it was
loaded during the installation process): # aptitude install firmware-ipw2x00
.
For this to work, you may need to include the non-free section from Debian's repositories in /etc/apt/sources.list, in case it is not enabled yet.
To enable the nice wireless led, enable the led
option for the ipw2200
module by adding the following line to /etc/modprobe.d/local, creating this file if needed:
options ipw2200 led=1
.
X.Org
First, make sure you're using the radeon driver, that supports best the integrated ATI Mobility Radeon 7000 graphics card.
Direct rendering
Out of two slightly different Lenny installations, one had DRI working out of the box, while the other required applying the following instructions; so you first want to check wether direct rendering is already enabled, by installing the mesa-utils
, and run: $ glxinfo
.
If this command outputs direct rendering: Yes
, DRI is already working. Else, read on.
The following instructions probably do far more than enabling DRI, but this combination of random factors does work for me, and I did not bother finding out which ones were really necessary.
Add the following lines to /etc/modules and /etc/initramfs-tools/modules; the goal is to ensure these kernel modules are loaded in good order, before X is started:
intel_agp agpgart drm radeon
Then add these options to the Device section in /etc/X11/xorg.conf:
Option "DRI" "true" Option "AccelMethod" "EXA" Option "AGPMode" "4" Option "AGPFastWrite" "on" Option "ColorTiling" "on" Option "EnablePageFlip" "on" Option "AGPSize" "32" Option "GARTSize" "32" Option "XAANoOffscreenPixmaps" "true" Option "EnableDepthMoves" "true"
TrackPoint
The TrackPoint page is a good starting point to fine-tune this input device according to your needs and preferences, e.g. scrolling using the middle-mouse-button and the TrackPoint.
Power saving
To enable dynamic adjusting of the Radeon card frequency rates, add this option to the Device section in /etc/X11/xorg.conf:
Option "DynamicClocks" "on"
The rovclock package allows to get/set these frequencies manually (untested), see Rovclock for more information.
Special keys
Once the acpi-support package is installed, almost all special Fn keys work as expected, at least on a Gnome desktop.
Video switch key
The video switch key FnF7 is not bound to any action by default. To have it run a nice RandR user interface, see Sample_Fn-F7_script#Having_Fn-F7_run_a_RandR_GUI. Additional information about multiple displays can be found on Xorg RandR 1.2.
Bluetooth and IrDA
Unless you use them, you can fully disable Bluetooth and IrDA by adding the following lines to /etc/modprobe.d/local:
# irda-related modules blacklist irda blacklist irtty_sir blacklist nsc_ircc blacklist sir_dev # bluetooth blacklist hci_usb
Power saving
SpeedStep
Install the cpufrequtils
Debian package.
/etc/default/cpufrequtils must contain:
ENABLE="true" GOVERNOR="ondemand"
/etc/default/loadcpufreq must contain:
ENABLE=true FREQDRIVER=acpi-cpufreq
Then run:
# /etc/init.d/loadcpufreq restart
# /etc/init.d/cpufrequtils restart
laptop-mode
Just install the laptop-mode-tools
package.
Miscellaneous
Adding the following lines to /etc/modprobe.d/local enables automatic power saving for the sound card and the USB ports, and prevents the wireless card from monitoring the whole universe unless told:
options snd-ac97-codec power_save=1 options usbcore autosuspend=1 options ipw2200 associate=0
SMAPI support
To get various model-specific features, such as advanced battery monitoring, the tp_smapi kernel module must be loaded. ThinkWiki has a nice dedicated page explaining how to do so. Make sure you add a line containing tp_smapi
to /etc/modules, so that the module is loaded at boot time.
Suspend-to-disk (hibernation)
First, install the needed packages: # aptitude install acpi-support uswsusp hibernate
.
It works OK with all methods: FnF12, Gnome battery icon (that uses pm-suspend
, hibernate command. The default backend is Swsusp.
Modifying /etc/hibernate/common.conf may be needed to achieve this:
- uncomment
UseDummyXServer yes
to prevent DRI from being disabled on resume - if using Gnome, uncomment
LockGnomeScreenSaver yes
Suspend-to-RAM
First, install the needed packages: # aptitude install acpi-support uswsusp hibernate radeontool vbetool
.
Various methods of suspending
s2ram
Works out of the box.
hibernate-ram
In /etc/hibernate/ram.conf, uncomment RadeonTool yes
and comment TryMethod sysfs-ram.conf
. Then the # hibernate-ram
command should do the Right Thing.
One can optionnally enable suspend-to-both by uncommenting TryMethod ususpend-both.conf
in the same file.
pm-suspend
Works ok with:
# pm-suspend --quirk-s3-bios --quirk-s3-mode --quirk-radeon-off
FIXME: are the arguments really needed, or are they guessed by the program?
Gnome
The Gnome Power Manager suspend button does the Right Thing, using pm-suspend
.
Sleep key (Fn-F4)
Works ok in Gnome.
High power drain while sleeping
A mean instantaneous power consumption equal to 811mW was measured while sleeping for 10.5h, which is a bit too high (custom Linux kernel 2.6.28, without radeonfb).
Not tried the various workarounds described on Problem with high power drain in ACPI sleep yet.
UltraBase X3
UltraBase_X3 has useful information on this. In short, using the stock Debian kernel, hotswapping the UltraBase is not possible, but it is perfectly recognized if the computer is booted docked.
Modem
Install the needed packages: # aptitude install sl-modem-source sl-modem-daemon module-assistant
Then run:
$ m-a a-i sl-modem
that will build and install the necessary (non-free) kernel module.
FIXME: actually test the resulting packages.
System information
lspci
00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03) 00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01) 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01) 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01) 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81) 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01) 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01) 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01) 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev aa) 02:00.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev aa) 02:00.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 02) 02:01.0 Ethernet controller: Intel Corporation 82540EP Gigabit Ethernet Controller (Mobile) (rev 03) 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)
lspci -n
00:00.0 0600: 8086:3340 (rev 03) 00:01.0 0604: 8086:3341 (rev 03) 00:1d.0 0c03: 8086:24c2 (rev 01) 00:1d.1 0c03: 8086:24c4 (rev 01) 00:1d.2 0c03: 8086:24c7 (rev 01) 00:1d.7 0c03: 8086:24cd (rev 01) 00:1e.0 0604: 8086:2448 (rev 81) 00:1f.0 0601: 8086:24cc (rev 01) 00:1f.1 0101: 8086:24ca (rev 01) 00:1f.3 0c05: 8086:24c3 (rev 01) 00:1f.5 0401: 8086:24c5 (rev 01) 00:1f.6 0703: 8086:24c6 (rev 01) 01:00.0 0300: 1002:4c59 02:00.0 0607: 1180:0476 (rev aa) 02:00.1 0607: 1180:0476 (rev aa) 02:00.2 0c00: 1180:0552 (rev 02) 02:01.0 0200: 8086:101e (rev 03) 02:02.0 0280: 8086:4220 (rev 05)
/proc/cpuinfo
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 1.70GHz stepping : 6 cpu MHz : 600.000 cache size : 2048 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe bts est tm2 bogomips : 1198.97 clflush size : 64 power management: