Biboroku

Installing Debian Squeeze (AMD64) on Lenovo T410s

Written by Taro Sato on . Tagged: Linux sysadmin

So far the only thing that I do not like about T410s is its short battery life. I can only get 2 to 3 hours out of “standard” usage. Hopefully this will improve as I tweak things more.

To Begin With: A Problem

Unfortunately I had a major issue with my T410s recently (November 17, 2010). A few months ago, the LCD started showing a vertical band in which graphics was lost. the issue seems to be fairly prevalent with T410s, which means there was a solution. So, I just got a warranty repair done, which involved replacing the LCD and motherboard. It took exactly two weeks for the whole process using the local Lenovo contractor (in Canada), but now the laptop is fixed. Anyone who got T410s around June 2010 or before should be aware of this LCD issue.

As of November 26, 2010, I decided to reinstall Debian Squeeze from scratch. So this installation note now reflects the nearly stable version of Squeeze installation procedure. Things that did not work before now works from the beginning!

General Hardware Specifications

My Lenovo T410s is 2901-CTO.

Hardware Components Status under Linux Notes
Intel Core i5 M520 2.4 GHz Works
14.1 WXGA+ TFT Display, w/ LED Backlight Works
Intel HD Graphics (IT 5700MHD, i5-520M AMT) Works
4 GB PC3-8500 DDR3 (2 DIMM) Works
80 GB SSD (INTEL SSDSA1M080G2LE, 2CV102J6, max UDMA/133) Works
Integrated Ethernet Card (Intel 82577LM Gigabit Network Connection (rev 06)) Works
Wireless Network Card (Intel Centrino Ultimate-N 6300 (rev 35)) Works Need to download firmware to /lib/firmware.
Matsushita DVD-RAM Drive (UJ892) Works
6 cell Prismatic Battery Works
Integrated Sound Card (Intel 3b57 (rev 06)) Works
Integrated Speaker & Microphone Works
Integrated Camera Works uvcvideo
ThinkLight Works
Fingerprint Reader Not tested
TrackPoint & TrackPad Works
Keyboard Not fully tested Haven’t thoroughly tested special keys

Note: Currently my T410s is operating on kernel version 2.26.36.2 from kernel.org which I customized and compiled myself. I don’t think is necessary to get the basic things working though. On the other hand, I see some problem with kernel 2.26.36.2. When I do dmesg, I get numerous scsi host1: __pm_runtime_resume()! errors, and sometimes T410s locks up for several seconds. In order to alleviate the problem, I have to boot with kernel option pcie_ports=compat.

Why Debian Squeeze?

I have always liked the leanness and stability of Debian, but I admit that I have recently flirted with the idea of migrating to Ubuntu; near the end of Debian release cycle, I have always found myself building from sources various programs for which their Debian versions became obsolete.  When I tried, I also liked Ubuntu for its ease of use; I didn’t have to do whole a lot of configurations myself to get my old laptop (a Dell Latitude) working. However, it slightly felt like using Windows on a new computer; a lot of software that I don’t care to install are bundled with Ubuntu. In the end, I decided to stay with Debian for now, but with Squeeze, still a testing distribution (Nov. 17, 2010).

Installing Debian Squeeze

First of all, make factory recovery disks in case you need to restore factory default. There is little reason to keep Windows 7 around, but it’s always a good thing to have a way to restore default setting. In order to do this, launch ThinkVantage and go to Factory Recovery Disks. Check both boot and data. In my case, three blank DVDs were used (one for boot and two for data; it looks like the boot disk only needs to be of very small capacity). After making the disks, it is recommended to test if they work or not by rebooting off the boot disk just created. Mine passed the test and factory reset was completely working. I also updated BIOS to its latest version on Windows to avoid problems later.

Debian Squeeze will soon become the stable distribution, but till that happens I fetched the installer from the testing distribution site, and made a install USB stick, following this article. For this installation note, I use the Beta1 release of Squeeze.

Boot off the USB stick by pressing F12 to start the installation.

Installation Customization Options

Debian installation has gotten easy enough that I don’t feel the need for this any more, but just for completeness. Obviously you should customize to your liking. I use a graphical installer here.

  • Language: English
  • Country, territory or area: (your choice)
  • Keyboard layout: USA
  • Primary network interface: wlan0 (for wireless network installation, only WEP or manual appears working, for which you specify the wireless key and password perhaps.) or eth0 (wired network installation is often easier)
  • Hostname: (your choice)
  • Domain name: (your choice)
  • Root password: (your choice)
  • Full name for the new user: (your choice)
  • Username for your account: (your choice)
  • Choose a password for the new user: (your choice)
  • Select your time zone: (your choice)
  • Partitioning method: Manual

I’m not doing dual boot, so my partition scheme is very simple:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             323M  149M  157M  49% /
/dev/sda6              46M   27M   17M  62% /boot
/dev/sda7             4.6G  138M  4.3G   4% /tmp
/dev/sda8             2.8G  1.8G  841M  69% /var
/dev/sda9             5.5G  4.4G  914M  83% /usr
/dev/sda10            6.9G  4.4G  2.2G  67% /usr/local
/dev/sda11              8G                  Linux Swap
/dev/sda12             46G   19G   26G  43% /home
  • Policy for handling keymaps: Select keymap from arch list -> qwerty -> US american -> Standard -> Standard
  • Debian archive mirror country: (your choice)
  • Participate in the package usage survey: No
  • Choose software to install: (I want a fairly minimal install.  I only check Laptop.)
  • Install the GRUB boot loader to the master boot record: yes

Reboot and a very simple Debian box is ready!

Post-Install Admin Tweaks

Login as root. First I install a few essential packages for system administration, etc.:

# aptitude install sudo ssh rsync wget wireless-tools

If I need to run 32-bit applications, it is also a good idea to do:

# aptitude install ia32-libs

Setting up sudo

At this point I add myself as an sudoer by adding my regular username to /etc/sudoers, just under the entry for root, giving full admin privileges (i.e., just copy the line for root).

# chmod 640 /etc/sudoers
# emacs -nw /etc/sudoers
... add a regular user to the list ...
# chmod 440 /etc/sudoers

I believe in using sudo rather than becoming root to do admin tasks.

Setting up APT Sources

It is also a good idea to modify /etc/apt/sources.list now. Mine looks like this:

deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

deb http://www.debian-multimedia.org squeeze main non-free

As I see, the debian-multimedia.org repository is added. Though this isn’t absolutely essential, I may wish to do

# wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
# dpkg -i debian-multimedia-keyring_2008.10.16_all.deb
# aptitude update

in order to avoid GPG error accessing this repository in future.

Setting up DHCP Hostname

Modify /etc/dhcp/dhclient.conf to have the line:

send host-name "yourcomputershostname";

This way, identify this computer on a router, for example, will be easier.

Intel Centrino Ultimate-N 6300

The built-in kernel for Squeeze (2.6.32) appears to have the driver for this WiFi card, but firmware need to be loaded:

$ sudo aptitude install firmware-iwlwifi

Or alternatively I can download firmware, and manually copy the file iwlwifi-6000-4.ucode to /lib/firmware. For example:

$ wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-6000-ucode-9.221.4.1.tgz
$ tar -xvzf iwlwifi*.tgz
$ sudo cp iwlwifi-6000-ucode-9.221.4.1/iwlwifi-6000-4.ucode /lib/firmware

Either way, WiFi should be working after reboot.

Integrated Webcam

To check if the webcam works, the easiest is to use Kopete on KDE (Menu -> Applications -> Internet -> Kopete). Go to Settings -> Configure -> Video, and see if the preview works.

KDE

To install KDE,

# aptitude update
# aptitude install kdebase kdenetwork kmix
# reboot

Upon reboot, the KDM login screen appears.

KDE Network Manager

If I don’t see any network manager on the system tray of the bottom bar, click on the system tray (this one is located to the left of the clock by default). Right click -> System Tray Settings -> Plasma Widgets and check Network Management. Try to add a wireless access point.

Suspend and Resume

I have always been a type who turns off computer when not used, but I am now using suspend/resume frequently. Fortunately I have few problems using suspend to RAM/disk on T410s so far.

TrackPoint Scrolling

I can use the red TrackPoint for scrolling as well! There are several ways to do this, but I’m going to use xinput. If it is not installed, do

$ sudo aptitude install xinput

See what ID is associated with TrackPoint:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated Camera                         id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=12   [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device              id=14   [slave  keyboard (3)]

The TrackPoint’s ID is 13 in my current configuration. Then add the following lines in ~/.xsessionrc:

xinput set-int-prop 13 "Evdev Wheel Emulation" 8 1
xinput set-int-prop 13 "Evdev Wheel Emulation Button" 8 2
xinput set-int-prop 13 "Evdev Wheel Emulation Axes" 8 6 7 4 5

After restarting X, moving TrackPoint while pressing the blue middle button acts as scroll, either vertically or horizontally.

Now that TrackPoint can be used for scrolling, I see little reason to enable TrackPad, as I never use it. It may be a good idea to disable TrackPad in BIOS to save power consumption as well as to prevent accidentally touching it with my hands while typing. Note that after disabling TrackPad, ID (see above) may change, so ~/.xsessionrc may need to be rewritten.

Power Consumption Tips

I now have a separate article, Power Management on Lenovo T410s, for this topic.

snd_pcsp Interrupts

Under certain conditions (which I cannot always reproduce), the system becomes sluggish after playing sounds off Flash on Firefox, for example, and until KDE restarts, sounds are not working. Looking at the processes with powertop, I found some process using snd_pcsp tends to make frequent interrupts. A solution to this problem is to ensure that the snd_pcsp kernel module gets loaded after snd_hda_intel gets loaded by feeding index=2 option. Make sure that the file /etc/modprobe.d/snd-pcsp has a line like this:

options snd-pcsp index=2

Installing Applications

Just a list of applications to install on my machine:

Document Update History

June 1, 2010 – First version.

June 6, 2010 – Added a note on suspend and resume.

June 9, 2010 – Added ThinkWiki reference. Added a section on TrackPoint scrolling. Created Power Consumption Tips. Added the preload daemon section.

November 27, 2010 – Major update after a warranty repair of the vertical band issue with LCD.

December 19, 2010 – Moved power consumption tips to another article.

comments powered by Disqus