Installing Debian 4.0 (Etch) on a ThinkPad X300

From ThinkWiki
Jump to: navigation, search

Installation (Network-Install)

Installing from the Debian Netinstall-CDROM worked without any problems. The SSD is recognized as an S-ATA drive using the ahci-driver. The Gigabit-Ethernet-Port works out-of-the-box.

Kernel Update

The Kernel shipped with Debian stable (2.6.18 at the time of writing this) doesn't support many of the features. I manually upgraded it to 2.6.25. The .config can be found here. Alternatively you can use more recent snapshots as described here http://wiki.debian.org/DebianKernel .


WLAN (Intel 4965AGN)

The driver for the wireless lan interface (iwl4965) is included in the Kernel sources. You only need to install the binary firmware from here: [1] (you can install it in stable without problems).

I had problems with WPA-EAP/TTLS using the 2.6.25 drivers, these could be fixed with a fresh driver snapshot from http://wireless.kernel.org/en/users/Download (I used compat-wireless-2008-04-25).

Graphics (Intel GMA965 / X3100)

For graphics you'll need the intel_agp module from a recent kernel as well as xserver-xorg-video-intel (not in stable at the time of writing, get it from testing).

Nothing special in xorg.conf:

  Section "Device"
       Identifier      "Generic Video Card"
       Driver          "intel"
  EndSection

If you want 3D-acceleration and DRI I suggest to use testing instead of stable, because many of the xserver and mesa-packages in stable are not ready, yet.

If you want to activate CRT output use `xrandr --output VGA --mode 1440x900`. If your data projector is not able to display wide screen try `xrandr --output VGA --mode 1280x1024`. For more detailed info see: Installing Ubuntu on a ThinkPad R60e.

ACPI

You'll need the thinkpad_acpi module. I had to tweak some settings to make the backlight work:

 modprobe thinkpad_acpi brightness_enable=1 brightness_mode=0 fan_control=1

To make this change permanent execute

 echo "options thinkpad_acpi fan_control=1 brightness_enable=1 brightness_mode=0" \
    > /etc/modprobe.d/thinkpad

After inserting the module that way, backlight can be controlled using

 echo XX > /sys/class/backlight/thinkpad_screen/brightness 

Where XX is a number between 0 and 15.

Fingerprint Reader

A short test with Thinkfinger showed no problems.

Synaptics Touchpad

Seems to work only with Protocol auto-dev and /dev/psaux:

Section "InputDevice"
       Identifier      "Synaptics Touchpad"
       Driver          "synaptics"
       Option          "SendCoreEvents"        "true"
       Option          "Device"                "/dev/psaux"
       Option          "Protocol"              "auto-dev"
       Option          "HorizScrollDelta"      "20"
EndSection

Fan

Unfortunately the fan is spinning almost all the time, haven't found a way around this, yet.

[2008-4-27] The fan's controller turns off or at a low enough speed to be silent (~1800 rpm) when the CPU temp gets below 108 F. It goes back to full speed at around 111 F. At least my system sits around 108-115 F under normal usage. I don't think there's any problem with the fan staying on all the time. It's a tiny fan and air duct and is bound to make noise trying to push any reasonable amount of air. --fritz

[2008-5-13] First off, the fan shouldn't be on at all unless the CPU is being used. When I run Windows the fan is almost never on. I've worked a bit on this and have had no success. I shutdown all processes including X and the fan still runs. Therefore, this seems to be an issue with the kernel and possibly Linux not leveraging speedstep or something else on the chip correctly. I'll do a bit more digging, but this is pretty annoying and would be nice to fix because it would also mean longer battery life (heat = power). --bpontarelli

[2008-6-11] If fan_control=1 is added to thinkpad_acpi then fan speed can be controlled by `echo level 0-7 > /proc/acpi/ibm/fan`. 1 gives speed about 2000, the fan is really silent but its cooling ability is low. When I set 2, then speed is 5100 - same speed as if it's left on auto. :( For more info see: How to control fan speed. --semik

[2008-7-07] You can use the fancontrol daemon which comes with the lm-sensors package to regulate the fan from userspace. With 1800 rpm the temperature stays around 50 C when idle and the fan is barely noticable.

HDAPS-Fun (Motion sensor)

The X300 has a motion sensor, but it is not yet recognized by the standard hdaps-module, but if you install Tp smapi (which i suggest, because it provides a lot of information about your battery) it works fine.

Bluetooth

You need to do:

echo enable > /proc/acpi/ibm/bluetooth

or (as the proc interface to acpi gets deprecated)

echo -n 1 > /sys/devices/platform/thinkpad_acpi/bluetooth_enable

And magically, the Bluetooth-Daughterboard appears as an USB device:

Bus 003 Device 003: ID 0a5c:2110 Broadcom Corp.

If you like to use the ThinkPad Bluetooth Laser Mouse see the article on how to set it up.

Sound

Sound works if you build alsa modules yourself:

  • Download latest alsa snapshot from here.
  • Unpack and run:
./configure --with-debug=detect
make
make install
/etc/init.d/alsasound stop
/etc/init.d/alsasound start
  • [2008-12-01] With hardy-heron 2.6.24-22-generic and alsa-driver-1.0.18a, a straight make ran into header problems. But by limiting the cards that were actually being compiled (in particular removing the hrtimer card) by reconfiguring before making, the compile worked and the sound worked. I used the following command
./configure --with-debug=basic --with-sequencer=yes --with-cards=ens1371,es1938,es1968,fm801,hda-intel,hdsp,hdspm,hifier,ice1712,ice1724,intel8x0,intel8x0m,korg1212 --with-card-options=all

but the following simplification should work also

./configure --with-debug=basic --with-sequencer=yes --with-cards=hda-intel --with-card-options=all


  • You may need to modify the last two lines for your distro (or just restart if you're lazy...)
  • If you're using ubuntu hardy, you probably need to create a softlink:
ln -s /lib/modules/<your kernel>/kernel/sound/ /lib/modules/<your kernel>/ubuntu/sound/alsa-driver

The alsa-driver directory may already exist, and you should either remove or rename it.

This patch is in the git kernel and won't be committed until 2.6.26, so this is your only option for a good while.

The sound works out of the box using kernel 2.6.26-rc9.

[2008-07-10] Sound works nearly out of the box with the last FC9 2.6.25.9-76 kernel (the audio codec has to be recognized exactly as "Analog Devices AD1984A", one can check it in /proc/asound/card0/codec#0) : give the module snd-hda-intel the option "model=thinkpad" -- Ptyx

Camera

If you build the Linux UVC drivers from SVN, the cam gets recognized:

Linux video capture interface: v2.00
uvcvideo: Found UVC 1.00 device <unnamed> (17ef:4807)
input: UVC Camera (17ef:4807) as /class/input/input9
usbcore: registered new interface driver uvcvideo
USB Video Class driver (SVN r205)

In order to build latest uvc driver:

svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk
cd trunk
make
make install
rmmod uvcvideo
modprobe uvcvideo

You can display the video-stream using mplayer:

mplayer -fps 25 tv://

You'll want to use a newer version of gstreamer as well ( > 0.10.15).

The camera works out of the box starting from kernel 2.6.26-rc9.

[2008-07-10] Camera works out of the box with the last FC9 2.6.25.9-76 kernel. -- Ptyx

Suspend & Hibernate

Hibernation works on Lenny out of box with uswsusp package. It's pretty fast comparing to my old DELL D410, I guess thanks to SSD drive.

Suspending fails because of the e1000 driver. I must remove eth0 driver to keep notebook sleeping. If the driver is present then notebook resumes 1-2 seconds after suspending. Newer kernels (at least 2.6.26-rc9 upwards) use the e1000e driver to control the network interface, but suspending still fails. Just add a file in /etc/pm/config.d/ and add one line

SUSPEND_MODULES="e1000e"

Now suspend works.

[2008-07-23] To fix an issue with rebooting instead of powering off after suspending to disk, set this option in /etc/uswsusp.conf --Timo

shutdown method = shutdown

Some interesting facts

# lspci 
00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c)
00:19.0 Ethernet controller: Intel Corporation Unknown device 1049 (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation Mobile SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
03:00.0 Network controller: Intel Corporation Unknown device 4230 (rev 61)
# lsusb 
Bus 007 Device 001: ID 1d6b:0001  
Bus 006 Device 001: ID 1d6b:0001  
Bus 005 Device 001: ID 1d6b:0001  
Bus 004 Device 001: ID 1d6b:0001  
Bus 003 Device 002: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 003 Device 001: ID 1d6b:0001  
Bus 002 Device 002: ID 17ef:4807  
Bus 002 Device 001: ID 1d6b:0002  
Bus 001 Device 001: ID 1d6b:0002 
# cat /proc/cpuinfo (at 800 Mhz)
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     L7100  @ 1.20GHz
stepping        : 11
cpu MHz         : 800.000
cache size      : 4096 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs  bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
bogomips        : 2421.98
clflush size    : 64
processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     L7100  @ 1.20GHz
stepping        : 11
cpu MHz         : 800.000
cache size      : 4096 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
bogomips        : 2394.01
clflush size    : 64
# cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: SAMSUNG MCCOE64G Rev: PS10
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: MATSHITA Model: DVD-RAM UJ-844   Rev: RC02
  Type:   CD-ROM                           ANSI  SCSI revision: 05
# hdparm -t /dev/sda
/dev/sda:
 Timing buffered disk reads:  270 MB in  3.01 seconds =  89.74 MB/sec

References