You are here: Home / Users / Eric Jahn / stories / Installing Debian Etch Linux on Lenovo Thinkpad T61

Installing Debian Etch Linux on Lenovo Thinkpad T61

It works great with the exception of some minor things. This article contains notes on how to install Debian Etch Linux and configure hardware (with encrypted swap and /home directories, and dual boot with MS Windows Vista).

General Notes

  • Burn the CD iso of Debian Etch, net install, available from the main Debian site. For the T61, since it's a Core 2, you can choose from either the amd64 (not covered here, but apparently works because the amd64 is the same as em64t which is the Core 2 Duo's underlying architecture), or the i386 (but not quite as fast as the amd64, but less hassle to get flash and java plugins, and other media codecs, working).  Side note: when I first had unsuccessfully tried using stock Etch kernels and packages, I next tried Ubuntu Gutless Gibbon (Tribe 5), but found no obvious way to get encrypted /home and /swap disks via the installer.  With Gutsy, suspend, video, wifi worked, but sound was broken.  Not bad, and the sound is actually an easy fix.  But, because of encryption hassles, and because my curiosity was satisfied, I went back to Etch.  Besides,  the community-based Debian is a better long-term idea than the corporate controlled Ubuntu anyway
  • Set up three drives aside from the 2 preexisting ntfs drives.  Using the Etch installer, shrink the main windows one down.  I couldn't get it to shrink down below 20G, which is aok, since to run Vista needs more space than it really deserves.  I have an unencrypted system drive (ext3), and encrypted swap, and an encrypted home directory.  The Etch installer first requires you to make an encrypted partition, then you configure the encrypted partition to be ext3 or swap or whatever you want.  I had to play with it a bit to get it the way I wanted.  Anyway, here is my fdisk output:
#fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 794 6372352 7 HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 * 794 3225 19531250 7 HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3 3226 5657 19527480 83 Linux
Partition 3 does not end on cylinder boundary.
/dev/sda4 5657 9729 32712120 5 Extended
Partition 4 does not end on cylinder boundary.
/dev/sda5 9457 9729 2184808+ 82 Linux swap / Solaris
/dev/sda6 5657 9457 30527217 83 Linux

Partition table entries are not in disk order

Disk /dev/dm-0: 31.2 GB, 31258817536 bytes
255 heads, 63 sectors/track, 3800 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes


Disk /dev/dm-1: 2236 MB, 2236191232 bytes
255 heads, 63 sectors/track, 271 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

So, to label them in plain English:

IBM Shipped Recovery Partition: /dev/sda1 1 794 6372352 7 HPFS/NTFS
MS Windows Vista: /dev/sda2 * 794 3225 19531250 7 HPFS/NTFS
Linux Debian Etch System Files: /dev/sda3 3226 5657 19527480 83 Linux
Extended Partition Containing the Next Two Partitions: /dev/sda4 5657 9729 32712120 5 Extended
Linux Swap Partition: /dev/sda5 9457 9729 2184808+ 82 Linux swap / Solaris
Linux Encrypted Home: /dev/sda6 5657 9457 30527217 83 Linux

  • Configure the system, install packages (here is my current list of installed packages (after the suspend package shake-down), boot into the system in safe mode, then get the video working.  I fiddled a lot with the settings for the video, so this hopefully saves you much time. 

Video

There are two video chips available for the T61: nVidia (optional) and Intel GM965 (standard).   I have the Intel.  Ideally, I would use Intel's new xorg-video-intel driver supporting this 965GM chip (I don't have the available Nvidia graphics chip), but that's not in Etch, so I use the Vesa driver for now.  Compiling the GM965 for Etch would be complicated because of deep kernel/userspace versioning mismatches that need to be worked out to make this easier.  I'll just wait for Lenny for this.  The Intel driver in Etch won't cut it, so don't bother.  For Vesa to work, I had to use the 1280 x 800 resolution since that's the only resolution other than 1024x768 that works.  The 1024x768 resolution looks squashed, so not an option.  Here is my xorg.conf file.  The interesting thing in it is that TV Output has to be specifically disabled.  It causes problems if it isn't disabled apparently, but that's not a big deal since T61s don't even have optional TV outputs available.

Suspend to RAM (skip to update later on, works great now)

Works okay, sometimes doesn't initiate half the time when the lid closes, but always works when using gnome battery icon suspend or Fn-F4.  FIXED: I had conflicting suspend/resume managers running at the same time, so the lid closure only worked every other time.  You can test if the lid switch is set right with:

hal-get-property --udi /org/freedesktop/Hal/devices/acpi_LID --key button.state.value

If it returns 'true', that means it thinks your lid is still closed and it should be set to false with:

hal-set-property --udi /org/freedesktop/Hal/devices/acpi_LID --key button.state.value --bool false

Update 10/13/2007: By removing the extra packages (which Synaptic won't catch as conflicting), you won't need to manually do this all this getting and setting.

To fix, remove any suspend/hibernate packages that aren't required by gnome-power-manager, such as hibernate, powersaved, uswsusp, suspend2-userui, and the like but acpi and acpi-support are necessary, I believe.  The reason for this is that the gnome-power-manager package actually bypasses acpi suspend/resume functions, and takes control so that resume.sh, power.sh, suspend.sh scripts in acpi are never called.  The Gnome-Power-Manager site discusses this here.

BTW, suspend will not work with the 2.6.18-5kernel in Etch or a backported 2.6.21 kernel from backports.org.  I successfully used a 2.2.22 (vanilla, stable release) from kernel.org.   Here is my kernel config for compiling: T61 Etch 2.6.22 config kernel.  A makeold config command from an Etch stock kernel (2.6.18-5) will work great also for compiling your new kernel, after you answer questions about the new items in the newer kernel.

Suspend to Disk

Just works with kernel 2.6.22.

Sound

For the AD1984 High-Definition Audio controller to work, you need to apply 3 patches to the source for the Etch stock alsa module version (1.0.13)  and recompile and install.  I wouldn't bother with the python script hack some sites mention; it works (sort of) but it's better to just get it working correctly.  Here is a link to a discussion of the 3 patches that need to be made, for the curious.  However, this site (look toward the bottom for the pre-patched patch_analog.c file) has the file already patched and ready to drop into a stable alsa source tree for compiling and installing.  1.0.14 is the current stable alsa I used available here.  Apparently 1.0.15 has these patches already committed, but I can't confirm first-hand that it works, because of irreconcilable differences between my new 2.6.22 kernel and 1.0.15 alsa.  Someone else could probably get it to work easily enough, but it's not stable alsa at this point, so maybe not worth it. 

Remember to turn off the headphone (microphone doesn't matter) checkbox in the Gnome volume control, "Switches" tab, or else your speaker sound will be muted and you'll find it hard to troubleshoot.   Also, don't use Flash video to test, because I had to deal with an unrelated flash bug making video sound not work.  Just play an ogg file or something to test sound.

add that line to modules.rc

Wifi

There are two available wifi chips for the T61: an Intel Pro/Wireless 3945a/b/g and an Intel Wireless WiFi Link 4965a/g/n.  I have the former.

The Intel 3945 a/b/g wifi chip is really an Atheros radio, even though it's branded as Intel.  Ideally I would use the Intel 3945 driver for this chip, but it's not available in Etch.  Good thing is that the madwifi driver in Etch works perfectly and is trivial to install in Etch.

Install and compile the the madwifi (Atheros) module using the command "m-a a-i" (module-assistant), then get the Etch user-space package, "madwifi-tools" and your done.  From Thinkwiki:

Using madwifi which is very easy or downloading the modules from the
page and usig ndviswrapper(not recommended, uncharted waters). Just add
"deb ftp://ftp.au.debian.org/debian unstable main contrib non-free"
"deb-src ftp://ftp.au.debian.org/debian unstable main contrib non-free"
to the repositories in /etc/apt/sources.list and; then as root:

apt-get update
apt-get install madwifi-source
apt-get install madwifi-tools
m-a prepare
m-a a-i madwifi

Then remember to switch your sources back to Etch so you don't bork your system.  By the way, make sure the wifi switch in the front of the laptop is to the right, because it works and will disable your wifi if to the left.

Miscellaneous

  • add modules.conf link (ibm_acpi)

Not working:

  • Wifi and bluetooth lights don't ever light up.
  • Video out (need the Intel driver to make this work) never works.  Maybe I'll compile it and install some day.
  • Only have video for X (Fn-F7): no video for ttys F1 - F6. Working on that. I think it's a simple X config problem. The ttys, I think, are functioning, but they don't appear visually on the screen.  When I type, they are performing the commands, but I can't see what I'm typing/feedback.  Maybe installing  the Intel video module mentioned above would automatically fix it.  Dunno.

Credits:

Thanks to these how-tos covering related topics:

  • Fedora Forum, with the patched alsa source ready to compile (instead of having to apply the three patches yourself)
  • All the T61 articles at tuxmobil.org
  • All the T61 articles at thinkwiki.org