User:Hmh

From ThinkWiki
Revision as of 22:50, 23 May 2006 by Hmh (Talk | contribs) (add cpu power state governor to sysfs)
Jump to: navigation, search

ThinkPad T43 2687-DDU setup for Debian Etch

This is an ongoing, spotty guide for an advanced Debian setup of a T43, focused on using absolutely all of its capabilities that can be used. It is not an installation guide, but rather a configuration guide. Refer to Debian for a list of pages with initial installation instructions.

When it is really usable, I will move it to some other far more public place in ThinkWiki.

Installing should be done using the latest Debian Etch debian-installer release. Anything else simply will not run on the ThinkPad.

Kernel

Baseline kernel: Debian's latest 2.6.16 (2.6.16.17 with stabilization patches)

NOTE!
Thinkpad support is an ongoing, bleeding edge effort. One ends up needing to apply a ton of patches and to use the latest available kernel, sometimes even kernels not yet released
Hint:
The Con Kolivas (ck) desktop kernel patches might be very applicable to a ThinkPad Kernel

Patches employed

  • Latest ipw2200 driver and ieee80211 layer:
There are two ways to go about this: either disable IEEE 802.11 support (and thus ipw2200) in the kernel and build both modules out-of-tree (failure to do so will break the out-of-tree build), or update the kernel subsystems with more up-to-date files.
The advantage of updating the kernel drivers instead of doing an out-of-tree build is that should there be any configuration options that require ieee80211 support, those will be available. On the other hand, it is a bit more difficult, as you will have to mess with Kconfig.
  • copied files over the in-kernel files in include/net, drivers/net/wireless, Documentation/networking, net/ieee80211, thus replacing the old drivers with the new ones.
  • ipw2200 often have extra options you need to enable, look in the toplevel Makefile and add them to drivers/net/wireless/Kconfig. They are usually bool types, so it is trivial to copy, e.g. IPW_DEBUG and rename to the new required options.

Kernel setup tasks

  1. Make sure the following subsystems are modules (for suspend/resume)
    1. USB (especially EHCI_HCD and UHCI_HCD)
    2. HDAPS (may work compiled in, as well)
  2. Make sure the following subsystems are enabled and not modules (safety net)
    1. ThinkPad SMAPI
  3. Place the following modules on /etc/modules:
    1. hdaps
    2. nsc-ircc
    3. tg3
    4. ipw2200
  4. Configure IrDA module options
  5. ipw2200 firmware needs to go in /lib/firmware. The module should be given the led=1 module parameter option

Userland

Simple configuration issues

These are fairly simple minor things you might want to do:

/etc/sysctl.conf

install the procps package. Add the following lines to /etc/sysctl.conf:

Template:FIXME

/etc/sysfs.conf

install the sysfsutils package. Add the following lines to /etc/sysfs.conf

# ThinkPad battery charger defaults
devices/platform/smapi/BAT0/start_charge_tresh=40
devices/platform/smapi/BAT0/stop_charge_tresh=85
devices/platform/smapi/BAT1/start_charge_tresh=70
devices/platform/smapi/BAT1/stop_charge_tresh=90

# Default frequency scalling governor
devices/system/cpu/cpu0/cpufreq/scaling_governor=conservative

udev rules

  1. udev extended network interface naming needs to be configured, order of tg3/ipw2200 won't be respected if /etc/modules.conf is read after udev did the PCI coldplugging

Kernel/module configuration

This is done in /etc/modprobe.d/ files. Install the setserial package.

Add a /etc/modprobe.d/thinkpad-t43 file there with this content:

# Intel Wireless, default to radio offline for safety and security
options ipw2200 disable=1 led=1 hwcrypto=1

# IrDA
alias irda0 nsc-ircc
options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=3
install nsc-ircc /bin/setserial /dev/ttyS1 uart none port 0 irq 0; /sbin/modprobe --ignore-install nsc-ircc

References:

Software that needs packaging

NOTE!
If nobody beats me to it, I will probably package them for official upload to Debian, and official Debian Sarge backports. This requires that the software be properly licensed first, of course
  • hdapsd (a bit crude, needs a lot of work still)
  • ipw2200/ieee80211 need adopting, and since they clash terribly with in-kernel support, they will only work right if we either convert them to be patch-based, or to detect that the user built with in-kernel ieee80211/ipw2200 enabled and abort the out-of-tree compilation.

Software that could benefit from re-packaging

  • hsfmodem: should be easy to build out-of-tree in another machine other than the one it will be installed at

External Links