These are archived pages, most of them date back to 2007-2012. This content might not be relevant or accurate anymore.

Debian on Thinkpad Z61m

Some notes about installing amd64 (Debian 4.0 etch) distribution on notebook. No proprietary drivers were used (it is quite huge problem on amd64 :)).

Everything seems to have appropriate driver.

Hardware

Input devices

Touchpad and trackpoint are working out of the box but I have tweaked their default behaviour.

TouchPad

I have enabled horizontal scrolling on touchpad (add to the section with synaptics driver):

        Option          "HorizScrollDelta"      "100"

For Opera browser you also have to comment out Button6 and 7 in /usr/share/opera/ini/standard_mouse.ini (with semicolon).

User can configure touchpad with gsynaptics or synclient (which comes with synaptics driver). You have to allow this configuration in xorg.conf:

        Option          "SHMConfig"             "true"

All parameters are described in synaptics(5) man page.

syndaemon (comes also with synaptics driver) monitors keyboard activity and disables the touchpad when the keyboard is being used.

TrackPoint

Press-to-select is not enabled by default so I added this to my /etc/rc.local:

echo -n 1 > `find /sys/devices/platform/i8042/ -name press_to_select`

To enable scrolling with trackpoint you have to add these options to /etc/X11/xorg.conf (mouse InputDevice section):

        Option          "EmulateWheel"          "on"
        Option          "EmulateWheelButton"    "2"
        Option          "YAxisMapping"          "4 5"
        Option          "XAxisMapping"          "6 7"

Keyboard

There’s XKB geometry named thinkpad, I don’t really know what is it good for.

Sound

Motherboard has Intel HDA 82801G (ICH7 Family) audio device. Works out of the box (snd-hda-intel driver). I found volume levels Master=94 and PCM=71 optimal.

It’s also used for very loud and annoying PC speaker. You can either use xset b off, setterm -blength 0 (or similar) or turn it off forever with modprobe -r pcspkr (or blacklist it).

Ethernet

Gigabit. tg3 driver. Works out of the box (although I didn’t yet test it on gigabit line :)).

WiFi

ipw3945-modules, firmware-ipw3945 and ipw3945d. Open source drivers by Intel.

And waiting for new [iwlwifi](http://intellinuxwireless.org/?p=iwlwifi) driver.

IrDA

Works with LIRC (lirc_sir driver).

I don’t know if FIR (fast infrared) driver nsc-ircc works or if it works also with SIR devices. LIRC won’t work after this driver loads and configures IrDA for fast mode.

Graphics

X.org open source driver i810 works flawlessly (including acceleration). According to http://www.linuxpowertop.org/ is wise disable DRI for more battery life (by now it should be patched).

        Option "NoDRI"

Newer versions of X.org have changed the name to intel and have also modesetting branch which does not depend on BIOS’ video modes.

Integrated Fingerprint Reader

Because I am using amd64 distribution I had no choice over open source thinkfinger driver (is prepackaged for amd64 and sid, compiles smoothly for etch). You need libpam-thinkfinger, libthinkfinger0 and thinkfinger-tools (http://www.rubixlinux.org/debian/thinkfinger/). Then you can test reader and add fingerprints for users with tf-tool. You may also have to load uinput module (or add it to /etc/modules).

My /etc/pam.d/common-auth looks like this:

auth    sufficient      pam_thinkfinger.so
auth    required        pam_unix.so nullok_secure try_first_pass

gdm works with it out of the box.

I have experienced problems with sshd and vsftpd – their PAM rules are including /etc/pam.d/common-auth. It’s because of pam_thinkfinger rule.

HDAPS

Hard Disk Active Protection System consists of accelerometer and hdapsd daemon which keeps an eye on it.

You have to compile yourself a hdaps module from Shem Multinymous’ [tp_smapi](http://sourceforge.net/project/showfiles.php?group_id=1212&package_id=171579), kernel version won’t work. Then you have to patch kernel to support protection – download patch from here (works with 2.6.22 too).

You have to set the unload method manually if you get problem described in http://www.thinkwiki.org/wiki/Problem_with_APS_harddisk_parking so you don’t wear out your HDD, like this:

echo unload > /sys/block/sda/queue/protect_method

hdaps-utils package includes demo program hdaps-gl which shows 3D model of the laptop.

Bluetooth

Works out of the box (tested with my cell phone through obexfs).

5-in-1 Card Reader (SD, MMC, MS, MS PRO, xD)

Works out of the box (tested with 2 GiB SD card, no SDHC).

Software

ACPI

I maintain my own set of ACPI scripts (dispatching ACPI events). Fits ThinkPad and Z61 particularly (and maybe Z60 or similar), they have to be changed for use with other series/models.

Currently they handle:

  • DPMS OFF when closing lid and call laptop_mode on every lid event

  • lock screen (xscreensaver, maybe gnome-screensaver in future)

  • AC adapter (un)plugging (mainly using customised laptop-mode-tools)

  • suspend to disk and RAM (uswsusps2disk, s2ram)

  • toggle Bluetooth (if the key is unmasked)

  • toggle video mode stretching

  • toggle TouchPad

  • set some battery charging and power consumption related stuff (Fn-F3)

  • Ultrabay hotswap (should work even without thinkpad_acpi patched for Z61m through ACPI bay module) – requires at least kernel 2.6.18 (etch) for bus rescan. Swappable device is detected by model name (should be enough in most cases).

Patch for bay eject – http://www.mail-archive.com/linux-acpi@vger.kernel.org/msg04716.html. The relevant part is this line:

          "\\_SB.PCI0.IDE0.PRIM.MSTR",

⚠️ I don’t recommend using powersaved and acpi-support (they are also handling events). These are only conflicting I know are handling evets (either with event handlers or as acpid clients).

Here are somewhat complete scripts:

thinkpad_acpi module

This is configuration which works with my scripts – /etc/modprobe.d/thinkpad_acpi.modprobe:

# bluetooth masked, Fn-F10 never works, all other unmasked

options thinkpad_acpi hotkey=enable,0xffffef experimental=1 fan_control=1

This module is former ibm_acpi/etc/modprobe.d/ibm_acpi.modprobe:

# bluetooth masked, Fn-F10 never works, all other unmasked

options ibm_acpi hotkey=enable,0xffef experimental=1

Useful information are in the README (http://ibm-acpi.sourceforge.net/README).

Tips

Information sources

Custom power-on splashscreen

You can change it with BIOS upgrade. I have done this from Windows – just download and install the upgrade in Windows, copy logo.bmp (640x480 and 16 colours), run BAT script and then run upgrade utility (recognises new logo automatically).

Fan control

You can control fan if you’ve configured thinkpad_acpi correctly. Use tp-fancontrol script if you’re annoyed by Embedded Controller’s fan management (keeps fan at high speed).

⚠️ Everything should work OK but keep an eye on temperatures.

High resolution console

You have to pass parameter to kernel when booting: vga=0x368</co


This is for 1280x800 widescreen, don't know if there's bigger for screens with ATI graphics.


### ThinkLight

``gaim-thinklight`` (or ``pidgin-blinklight``) blinks ThinkLight when message arrives (useful when muted, using more virtual desktops and conversation window is open somewhere :)).

Some media players also have visualisation plugin named ``rocklight``.


### ThinkPad Buttons

TPB will show information on volume/brightness level, HV expansion or ThinkLight.  Example configuration -- [http://www.nongnu.org/tpb/doc/tpbrc.html](http://www.nongnu.org/tpb/doc/tpbrc.html) or in ``/usr/share/doc/tpb/tpbrc.gz``.

To make it work you have to load ``nvram`` module and change ``/etc/udev/permission.rules``:

KERNEL==“nvram”, MODE=“0644”, GROUP=“nvram”



### Useful kernel configuration

so ‘powertop’ can show you who’s waking us up

CONFIG_TIMER_STATS=y

tickless idle - reduces wakeups

CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y

suspends USB bus when there’s nothing to do

CONFIG_USB_SUSPEND=y


On ``amd64`` (``x86_64`` in kernel) ``NO_HZ`` and ``HIGH_RES_TIMERS`` should be available from 2.6.23.  You can get hrtimers patch from [http://www.tglx.de/projects/hrtimers/](http://www.tglx.de/projects/hrtimers/).


### Battery

You can set battery charging thresholds:

``` sh
echo 50 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 85 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

For this you have to compile tp-smapi modules for your kernel (see ThinkWiki).

Power saving tips

  • make sure laptop_mode takes care of things when you unplug AC adapter

  • use powersave scaling governor (keeps lowest frequency but higher frequencies take much more power)

  • keep WiFi turned off or set power management on when unplugged

  • do not use mouse :)

  • do not use USB devices

  • do not watch flash or have it open somewhere

  • use NoDRI option if the i915 bug affects you (and if you don’t need to use OpenGL)

  • close X.org :)

  • no audio (or movies) :)

  • look at powertop stats to see who’s waking up the system

X.org 7.3

Trackpoint scrolling stopped working and arrows behaved strabgely with evdev input driver installed.

TODO

General:

  • kernel patchset (it’s a moving target)

  • figure out new version of thinkpad-acpi -> get rid of tpb

Not yet tested:

  • fast IrDA with nsc-ircc driver

  • PC Card, ExpressCard/54

  • Firewire [Texas Instruments]

  • Modem [Conexant with proprietary drivers]

  • S-Video out

Not yet working:

  • video switch – works with newer xrandr tool (server has to support it)

  • xscreensaver or gnome-screensaver with fingerprint reader support

 
 
 
disorder's homepage