Configuration of IBM Thinkpad T41
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.
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 "^#"`
Running the hibernate now works without any problem. To enable
automatic suspend on 'lid' close, add this to /etc/acpi/events/lidclose:
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.
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:
io32_support = 1
interrupt_unmask = 1
spindown_time = 24
mult_sect_io = 16
io32_support = 1
dma = 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:
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?
- 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)
Touchpad & trackpoint
Check support for synaptics touchpad in kernel and install the
Both trackpoint and touchpad work without problems.
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.
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.
My Ericsson does not seem to answer LCP-echo requests, I had to add following
lines into my dialing file for PPP:
The 8250 + irtty_sir modules work.
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:
#and if you want to enable discovery
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?
Use e1000 module.
Sound works - snd-intel8x0 is the module, it is part of ALSA.
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
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.
The ASUS driver on the ndiswrapper pages works OK. Slow output problem remains.
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.
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!
Add support for nvram to kernel and use the tpb package for
on-screen display and to bind the special keys.
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
Radeontool can be good for turning LCD backlight off during powersave.
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.
Ctrl-Alt-+ can be pressed on the 'numeric' keyboard. Enable numeric keyboard
by pressing Shift-Scroll Lock.
Atitvout does not seem to like Hardware Cursor of Xfree 4.3. Add "Option SWCursor" to your XF86Config-4 and everything works OK.