Configuration of IBM Thinkpad T41
Software
I like Debian GNU/Linux and I decided to try this distribution on
this notebook. To support all the software & hardware, I have downloaded
and installed kernel 2.6.0.
Power management
ACPI & cpufreqd seems to be a good choice. You should definitely install
processor, thermal, battery, ac, button modules for ACPI. There seems
to be a problem with processor being compiled as a module (oops
when you rmmod from kernel),
compile it directly into the kernel and it will work perfectly. For centrino
you will need modules speedstep-centrino and proc_intf
and some management daemon (cpufreqd is a good choice).
Suspending works best using software suspend. Download
swsusp.sh and run it with '--install' parameter. In /etc/suspend.conf I did:
SWSUSP_INSERTMOSD=`cat /etc/modules | grep -v "^#"`
SWSUSP_FORCE_SUSPEND_MODE="ACPI"
Running the hibernate now works without any problem. To enable
automatic suspend on 'lid' close, add this to /etc/acpi/events/lidclose:
event=button/lid
action=/usr/local/sbin/hibernate
The 'event' for Fn-F4 is 'button/sleep'.
Tpctl approach may be better,
unfortunately, after compiling the module from here
I still was not able to do suspend.
The S3 state ('echo 3 > /proc/acpi/sleep') works, but you receive
message about hardware fault after startup and the touchpad/trackpoint
cease to work.
After software suspend I got empty /tmp and /var/run.
The mountnfs.sh contained bootclean mountnfs command.
Commenting it out makes everything work OK.
Update 25/12/2003
Do not compile the kernel with APIC enabled - it refuses to turn
off and enters some kind of 'power-save' state and you must use
the power-button to really turn it off.
There is a bug in 2.6.0 - do not compile the kernel with pre-emption enabled.
If you compile it with pre-emption disabled, 'processor.ko' loading works
without problems. This will be probably fixed in 2.6.1.
Disk spin-down: this is rather tricky. Set the spindown timeout in
/etc/hdparm.conf ('apt-get install hdparm' if it does not exist).
My /etc/hdparm.conf looks like this:
/dev/hda {
io32_support = 1
interrupt_unmask = 1
spindown_time = 24
mult_sect_io = 16
}
/dev/hdc {
io32_support = 1
dma = on
interrupt_mask on
}
Unfortunately this is not enough - there are still lots of writes to the disk
and it just does not spin down. You must find the programs that
do this and disable them. This works for me:
- Mount all filesystems with 'noatime' option
- Disable process accounting (!!!) - in /etc/init.d/acct
- Modify /etc/cups/cupsd.conf and change RootCertDuration to a large number
- Look into /etc/cron.d and check for nasty tasks (e.g. exim)
Start vmstat 5 on some console and look if the 'bi' and 'bo' columns
are zero. Can somebody tell me how to find the program that does the writes?
Touchpad & trackpoint
Check support for synaptics touchpad in kernel and install the
Synaptics driver.
Both trackpoint and touchpad work without problems.
BlueTooth
Install the bluez-* and hotplug packages. If you compiled bluetooth as modules,
add 'bluetooth' to your /etc/modules to allow the daemons to start on boot.
Pressing Fn-F5 should add USB bluetooth device. Use hcitool inq to
scan for devices and read documentation to rfcomm.conf. There is a problem
with deactivation: if you are in Xwindows and press Fn-5,
the system totally freezes.
Solution: either change to console, press Fn-5 and back to X, or disable
the hci interface through hciconfig hci0 down before pressing Fn-5.
Update 25/12/2003
Use processor PentiumIII for compilation of kernel. It seems that
Pentium M is not P4 type processor. If you compile the kernel for P3,
you can enable/disable bluetooth as you want.
Update 30/12/2003
My Ericsson does not seem to answer LCP-echo requests, I had to add following
lines into my dialing file for PPP:
lcp-echo-failure 0
lcp-echo-interval 0
InfraRed
SIR
The 8250 + irtty_sir modules work.
FIR
When compiling the kernel, add the nsc-ircc driver (you must have ISA bus
enabled). To /etc/modprobe.d/some_file add:
options nsc-ircc dongle_id=0x09
and run update-modules. In /etc/irda.conf specify:
IRDADEV=nsc-ircc
#and if you want to enable discovery
DISCOVERY=-s
Try to start irda, find appropriate line in nsc-ircc.c in kernel
sources and remove the lines that produce version mismatch error.
Executing /etc/init.d/irda start enables the IR interface.
If you have ericsson phone,you should add:
echo 1000 > /proc/sys/net/irda/min_tx_turn_time
echo 1 > /proc/sys/net/irda/max_tx_window
My phone at least appeared in the irdadump, I was even able to communicate,
but could not do it repeat it. Somebody is luckier?
Ethernet
Use e1000 module.
Sound
Sound works - snd-intel8x0 is the module, it is part of ALSA.
WireLess
Your friend is ndiswrapper.
Use the CVS version and download drivers from IBM. Automatic loading is
described in README of ndiswrapper, if you want automatic unloading
with 'ifdown eth1' (should probably save power), add this to the appropriate section of /etc/network/interfaces:
post-down rmmod ndiswrapper
Update 25/12/2003
The ndisdriver seems to be very slow on output. I got 600K/s in and 60K/s out.
Unfortunately after configuring the card in WinXP, the ndisdriver ceased to
work and causes reset always after loading the driver.
Update 30/12/2003
The ASUS driver on the ndiswrapper pages works OK. Slow output problem remains.
Modem
These drivers should work: ftp://ftp.smlink.com/linux/unsupported/. Compiled without problems,
unfortunately there seems to be a problem with dialtone in eastern countries,
so I was not able to call anybody.
Update 25/12/2003
Actually the problem was with the command for dialing, you must use 'ATDT' instead
of just 'ATD'. I made the modem dial, unfortunately it did not connect.
Please tell me if you are successfull!
Hardware keys
Add support for nvram to kernel and use the tpb package for
on-screen display and to bind the special keys.
X11
X11 works out of the box, the radeon framebuffer too. There are problems
with DRI acceleration: if you compile the AGPart (intel) and Radeon DRI
as modules, it does not work (some problems regarding loading of modules).
If you compile it directly into the kernel, it does not work either
(this time the 'glxgear' segfaults). XVideo extension works without problems.
You may want to install atitvout utility to set S-Video output
characteristics.
Radeontool can be good for turning LCD backlight off during powersave.
TV-Out
Get atitvout.
Use the 'xrandr' program (you must use the xserver-xfree86 4.3) to change resolution to 800x600. Now start 'atitvout -f t' to get TV output and
'atitvout -f l' to go back to LCD.
Update 13/01/2003
Ctrl-Alt-+ can be pressed on the 'numeric' keyboard. Enable numeric keyboard
by pressing Shift-Scroll Lock.
Update 21/02/2003
Atitvout does not seem to like Hardware Cursor of Xfree 4.3. Add "Option SWCursor" to your XF86Config-4 and everything works OK.
Ondrej Palkovsky