Installing Debian Squeeze (AMD64) on Lenovo T410s
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:
- Firefox 4 (beta)
- Dropbox
- Mendeley
- F.lux
- KeePass
- More to come…
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.