Debian GNU/Linux on an Acer Travelmate 291 LCI
Note:
I sold this good friend of mine in January 2009 after it was replaced by a
MacBookPro, so this page will not be updated anymore. The last stage of Linux on
this laptop was to run Unbuntu Linux in various versions on it, starting with
version 7.X. With all of these distros up to the one current at the time of
writing (8.10), everything worked exceptionally well, no problems to fix what so
ever. Thoroughly recommended if you want a fast and easy install with no messing
about. The install CD also offers a "live" system for you to test your hardware
with before commiting to a harddrive install.
Hardware
The Travelmate 291 is a 'Centrino' notebook based on
Intel's Pentium M Processor and associated chipset and
WLAN card. I have the 1,4Ghz version with a 60Gb Toshiba
hard drive, 512Mb of memmory and a DVDreader/CDwriter
(24x) optical drive. The display has a resolution of
1024x768 pixels. Contrary to many other notebooks it has
an 'ALPS' touchpad (rather than a synaptics one), but
more on that later.
It has a 14,8 volt 4300mAh battery which gives me 4+
hours of running time using medium display brightness and
dynamic clockfrequency controlling. The fan hardly ever
comes on and even when it does it is very quiet and
unobtrousive. It runs only for as long a needed and
doesn't change speed every few seconds. I am very pleased
about the lack of noise :-) the notebook has 3 USB 2.0
ports, one firewire and one parallel port. Should be
enough for most. A cardbus slot is also present. Take a
look at the
lspci
output.
Software: I've been
using Debian Linux for quite a while now and wanted to
use it on my new aquisition as well, even though the
notebook came with a preinstalled Win XP. Aber
repartionining the drive with Partition Magic under
windows I went ahead with installing Debian. I use
'testing', so I decided to give the new Debian installer
a try (beta3 at the time of writing). Everything went
well, the thing booted and detected most of the hardware
straight away using the stock 2.4.25 kernel.
I'll give a more detailed account of what worked and what
didn't below.
Gerneral setup:
Nothing to report here, really. Just follow the usual
Debian steps of tasksel/dselect and you'll have a running
system.
Current configs: Before you read through this whole page,
try these files:
POWER consumption measurements
Ok, I must have been a bit bored to get down to this, but
nonetheless I measured the laptops power consumption in various
configurations. To do this I removed the battery and ran the box
off a laboratry power supply. To connect up, I soldered myself an
adapter cable with the right type of plug on the end. The power
supply was set to a constant 19 Volts DC, the same level as the
normal AC adapter delivers.
The tests were conducted with the IR and paralle port activated in
the BIOS, I've been told that switching them off reduced the
current draw a little. Haven't tested that though.
The harddisk was on (spinning), but idle at all times unless otherwise stated.
Linux, with cpudynd and ACPI etc., WLAN off |
operation | display brightness | current |
idle, clock set to "low" (600MHz) | minimum | 580mA |
X running, idle, clock low | min | 580mA |
X running, idle, clock low | maximum | 800mA |
X running, idle, clock low | medium setting | 700mA |
X running, idle, clock set to "high" (1,4GHz) | med | 800mA |
Max load on cpu, high clock rate, fan off | med | 1630mA |
Max load on cpu, high clock rate, fan on | med | 1690mA |
standby mode, hd spun down (note, this is not suspend!) | - | 260mA |
playing mp3, internal speakers | med | <850mA |
idle, clock low, display turned off | off | 390mA |
machine turned right off, but plugged in | - | 55mA |
Windows XP, mode "laptop" (I think) |
idle | med | 640mA |
standby mode (suspend to RAM) | - | 70mA |
To work out the theoretical running time you'll get out of the battery,
divide the batterie's capacity by the consumption above and multiply with
the voltage factor (the battery delivers 14 volts compared to the external
supplies 19 volts), i.e.
(14/19)*(4300mAh/700mA)=4,15 hours, very roughly. In practice it will be less due to
the battery having a lower voltage than the external supply I used and the
battery not quite delivering it's rated capacity. But it will do as a
rough guide.
What is very intersting is that the display, when set to medium brightness,
uses roughly as much power as the rest of the system, i.e. 300mA. The
harddisk uses very little power when spinning, around 100mA. Also, the
clock frequency make surprisingly little difference to the total power
consumption, only around 100mA. Of course these figures must be viewed with
a little suspicion, as a current of 55mA flows, even when the machine is
right off. This is most probably not the case when running on the battery.
Whether it's safe to say the consumption is always the current I measured
less the 55mA I cannot say. It would be very difficult to connect up a
foreign supply to the battery contacts.
I really can't wait for someone to find a way to use suspend-to-ram running
Linux, this would be a great saving as the figures when running windows
show. The problem is still the grafics card
not resuming after a suspend to ram. Great pitty that.
Kernel: I didn't
play around with the standard setup too long as I wanted
to use a 2.6 series kernel anyway. No problems here, if
you're intersted you can look at my config(2.6.5)
here. That got
everything working, the touchpad is detected als a serial
mouse device and works without any further doing. The
speedstep features (processor frequency governing to save
power) caused me a few comprehension problems to start
with, wasn't quite sure where the speed could be set, as
the few reports on the net I found didn't seem to match
the proc entries I was seeing. Anyway,it did work out
finally.
I like to use high resolution consoles as well, so I use
the vesafb driver at 1024x768 for the consoles, works
fine.
Update:Kernel 2.6.6-rc2 works fine, too. It has a few
more experimental speedstep options, look at the
dmesg output. The
config is here.
Update:Kernel 2.6.6
config updated, I had forgotten async
support for dialup. Silly me. Modem now works well. A few things
may have got changed compared to the previous version, I'm still
testing various options and their effects....
Update:Kernel 2.6.7
config
online now(
dmesg-output).
No major changes, but I had to use the 'alps-patch'
from the synaptics driver 0.13.3 to patch the kernel. The
X-driver is still version 0.12.5, newer versions are reported to
produce strange behaviour.
Update:Kernel 2.6.9-rc2
config
available. I didn't try 2.6.8 because of some changes in the ATA
libs made CD-writing impossible as a normal user. This is still
true to some extent, so I suggest you write CDs as root :/
Also due to more strict kernel behaviour(?), I couldn't get
ndiswrapper to function, or even load the module :-(
I have changed to the
IPW2100 driver
which compiles and loads fine. Haven't tested it 'live' though.
To use this you need a few new features in the kernel, the config
above reflects this.
Also a slightly different method of
network-config is necessary.
Update (8.7.2005):Kernel 2.6.12.2 is running now. Look at
the
config here. The changes
I've set are the following:
- Intel Framebuffer now runs the consoles. To get a
normal cursor on the consoles it is necesary to add a
kernel parameter due to a bug in intelfb. For grub the line is:
... vga=791 video=intelfb:hwcursor=0
- Modem now runs with the ALSA module snd_intel8x0m,
this requires the slmodemd to be run with the "--alsa"
option. I had trouble compiling the slamr module anyway
with kernels newer than 2.6.9, so I guess this is the
easy way out. Still, there is a
patch I found on the net. Alsa still works
better, though.
- The touchpad is now /dev/input/event3, this has to be
accomodated for in the XF86Config
- IPW2100 is currently broken, version 1.1.0 will not
compile. The problem is known to the ipw developers, it
seems. This patch
also solves the problem.
Update (2.11.2005):Kernel 2.6.14 has arrived, and I
must say that this is the best yet, for a number of reasons:
- The kernel frequency is now 250Hz instead of 1kHz. This
completely elliminates the high pitch buzz at certain
loads and power configurations. Great!
- The IPW2100 driver is included in the kernel, so
there's no need to fiddle with external drivers
- The ALSA is very stable, so it's no problem to run
the modem in ALSA-mode.
- The intelfb works well, no need to set "hwcursor=0"
anymore.
In fact, I now use a vanilla kernel without any patches
whatsoever and get a fully functioning system. That's just what
I'd been looking for.
Speedstep/ACPI/sleep-states:
As I said, I found it a bit difficult to find definite
information on how to set up the whole thing and what is
the best way to control the speed of the CPU. There seem
to be a couple of ways: throttling, C-states(?), and
frequency control. I now use the 'cpudyn' to take care of
setting the right clock speed. This is a package and
needed no configuration to work for me. It seems to
reduce the clock down to 600Mhz (the minimum speed
supported by the cpu) wenn idling using the 'cpufreq'
kernel interface. According to gkrellm the CPU clock goes
down to 80 Mhz when idling, or using the notebook gently,
i.e. editing text, browsing, reading, so it might also
use throttling to save power? Xmms and mplayer cause the
clock to go to 600Mhz or more, even if the load is not
really high. Take a look at
[path of kernel source]/Documentation/cpu-freq/governors.txt
and user-guide.txt
http://acpi.sourceforge.net/documentation/index.html
- /proc/cpufreq
- /proc/cpuinfo
- /proc/processor/CPU0/{limit, power, throttling}
- /sys/devices/system/cpu/cpu0/cpufreq/*
to find out whats going on. I must look into this more
closely in the future.
Using the acpid lid and power button events are detected,
the power swith works. The lid switch turns off the
background lighting by hardware, so no need to worry
about that. ACPI also reads the battery stats and power
connection reliably, I use gkrellm to display the various
states of battery and CPU.
I played around with sleep states (suspend to ram), but
couldn't get the box to wake up again well. It does come
up if you disable the acpid (you need the power button to
wake up, but it switches right off with the acpid
running), BUT the display and USB don't wake up. All I
could do was to login via cable net and shutdown. I
haven't tried swsusp yet. These are known bugs in the
kernel/X. See kernel documentation/power/video.txt
Update (21.4.04): I've been asked whether my box makes an
annoying high-pitch buzzing sound when on. At first I hadn't
really noticed this, but it
does make this sound
under certain circumstances, which I'll try to describe here:
- cpudynd deactivated, 'scaling_govenor' set to
'performance'. The clock is the varied between 150 and
1400 Mhz according to load, there is a constant
buzzing noise from the area around the power
input/cpu
- cpudynd deactivated, 'scaling_govenor' set to
'powersave'. The clock varies between 80 and 600 Mhz,
no noise whatsoever.
- cpudynd on, when the clock is dynamically scaled
(80-1400Mhz)
there is sometimes a short buzz as it sweeps
up/down.
If I run 'watch -n 1 cat
/sys/devices/system/cpu/cpu0/cpufreq/scaling_govenor'
I can see cpudyn switch between powersave and
performance mode as the load is varied. This is also
visible in /proc/cpufreq.
This would explain why I sometimes get buzzing.
'watch -n 1 cat /proc/acpi/processor/CPU0/power' shows
a switching of 'C-state' when loading the system from
C3 to C2. Don't know what affects this, but it also
works with cpudyn switched off.
- When acpi is switched off (kernel option acpi=off)
the frequency is also varied according to load, but no
buzzing
- When the battery is out and the box is running
purely on AC, it never makes this
sound...
- When the battery is in and the box is running on
AC or charging the bat it is silent.
I have a few question concerning this still on my mind,
perhaps one of you can help me understand this:
- How is the frequency set exactly? I thought it
can only be varied between 600 and 1400 Mhz by the
chipset (also see limits in the cpufreq dir), but
actually it goes down to 80Mhz in powersave mode and
150 Mhz in performance mode. How is this achieved?
Throttling? Where can I find out wheter it is
throttling, /proc/acpi/.../throttling is always at
0%...
- Could the noise be caused by switching something
in the external power routing of the CPU? Perhaps some
coils and condensors resonate at certain clockspeeds
and loads? It should then happen to other centrino
notebooks as well...
Update (14.10.2004):I have taken the box apart right down to
the very last screw. To say that it wasn't easy is an
understatement... Anyway, I finally got to the motherboard and had
a good look around, hoping to find the cause of the annoying
buzzing sound and to find a way to stop it. Take a look at the
pictures I took while at it:
1,
2,
3. I have marked what I
assume to be the offending items so that you can find them more
easiy. I coated all of the coils with expoxy resin glue and screwed
the whole lot back together. Luckily the box booted after I had
finished and there weren't any left over screws ;-)
The result of this modification is that the buzzing sound has
decreased quite a lot, but it is still audible.... Don't really
know what else I could do. If you decide to take the box apart, be
very carefull, there are a lot of tiny screws and cables
about!
Note: The buzzing sound is fixed with kernels newer than
2.6.12. due to a change of the "Timer frequency" now being 250Hz
instead of 1KHz.
X: The 'i810'
drivers in the 4.3 release of XFree work perfectly with
this notebook. Some hardware acceleration is present and
viewing DVDs etc is easily possible. My config can be
found
here.
I was advised via email that the fonts look a little fudgy with
this config. I think the config is ok, but you must make sure
your X-Server is running at 85 dpi, check this by doing something
like: 'startx -dpi 85' or running 'xdpyinfo'. If the fonts look different/better, edit
/etc/X11/xinit/xserverrc to reflect this change.
The external VGA switching does not work for me at the
moment using the Fn keys. If I boot the machine with an
external monitor connected the notebook display stays off
and the external monitor is used. The display qualtiy when
booting with an CRT attached is good. During boot the internal an
the external monitor can be activated by pressing the keyboard
key combination.
But this messes up the quality of the
external dislay output, it is all fudgy then, so take care. I tried hitting the Fn
key for switching outputs under X and the machine froze,
so I'm not too sure whether this feature can be used. I
haven't tried the S-VHS output yet, I have nothing
to connect it to. As the lspci output shows 2 graphics
controllers it should be possible to have a 'dual head' setup
with both outputs being used simultaneously. Must look into
this later.
Update: I tried hard for a long time to get a
dual head working without any patches, but I did not have any
sucess. A setup as for an ATI Radeon card does not work.
But there is a small utility to activate the external output
while running X. It can be found
here
and works very well for me. Resolution of the external display
can be set and the picture quality is much better than when
switching using the keyboard shortcuts. Super! I'm happy
now. For the mouse cursor to be available on both monitors
simultaneously, you must use the "SWCursor" option in your
XF86config. Also the programm must be run as root.
UPDATE (10.08.2006): After switching to Debian "etch", which
sports the X.org X-Server, using the external VGA output and the
S-Video output has become much easier! Take a look at my current
xorg.conf" to see how
easily one can now use the external outputs. Watching DVDs on the
telly is possible, but not perfect yet, as the local display goes
blank and I've found no way to get it back going again. Please tell
me how you get on.
After patching the kernel with the ALPS patch to get
enhanced touchpad features the scrolling and so on works
with the touchpad, otherwise it only has simple
funcitonality using the PS/2 driver. The touchpad driver
can be found
here,
just use the alps.patch file included and copy the
synaptics_drv.o to the X directory as explained in the
readme and everything should work just fine.
Sound: Really
easy, just choose the snd_intel8x0 module. The speakers
sound rather bad and tinny. Plugging in the external speaker
jack cuts out the speakers.
LAN: No surprises
here, Realtek 8139 chipset.
WLAN: After a bit
of fiddling I got the WLAN to work including WEP using
the
ndiswrapper
driver. This works by using a windows driver to access
the card. Works just fine. Sarge also has this as a
package. You will also need the wireless-tools package. I
use a small
script to
enable the WLAN as I don't always need it.
Modem: This is
something I haven't been able to test yet, as I don't
have a telephone, but it should work ok using the
sl-modem driver provided by the Debian package. I use
version 2.9.6 and the modem is detected and can be spoken
to after the slmodemd has been started and the slamr
module loaded. I have not tested its functioning using
the alsa drivers, as the patch didn't work at all. Maybe
because the patch ist for 2.6.1 and I'm running 2.6.5.
Might look into this later on.
Update: Have got this working fine now, and tested with a
copper line at my parents'. Don't forget the ppp_async ;-) I use
wvdial, this autodetects everything.
IR: I got this to work
fine, just add some features like ircomm etc. to the kernel and
doing 'irattach /dev/ttyS0 -s' gets it working. Make sure the
following modules are loaded or statically compiled in:
irtty_sir, sir_dev, irport, ircomm_tty, ircomm, irda.
Actually I only need to modprobe 'irtty_sir', the others are
loaded automatically. 'irdadump' shows up whether a phone is in
range or not. My Nokia 5210 wasn't set up properly by wvdial,
using the strings that windoze uses makes it work fine though.
A dialup connection is possible with the phone using wvdial, take
a look at the
wvdial.conf.
I got an hint from an IRC-user that the kernel module "smsc-ircc2"
also works. Use it like this (untested by myself):
setserial /dev/ttyS0 uart none
modprobe smsc-ircc2
irattach irda0 -s
You can then use IR via /dev/ircomm or ircd0. Thanks for the
info.
DVD/CD-R: Works
fine, although it's a bit slow reading CDs. The full 24x
write speed is only reached at the very end of the CD, it
stats writing at 8x. Average speed works out to about
12x. In kernel 2.6 there is no need for scsi emulation,
so the writer is easy to set up. I use xcdroast btw.
Special keys: As
mentioned, the display switching isn't working yet, but
the other keys are. The display brightness can be set
straight away, it seems to be BIOS supported. Using the
special keys 'P1' and 'P2' and the volume controls
requires a bit of work. Take a look at my keysetup:
key
|
keycode
|
function
|
P1
|
236
|
F13
|
P2
|
178
|
F14
|
Win
|
115
|
F15
|
Win2
|
117
|
F16
|
Fn+Vol up
|
174
|
F17
|
Fn+Vol down
|
176
|
F18
|
These can be assigned to keys via the
.Xmodmap file. Pressing
any of these keys then generates a virtual keystroke of
the 'F-keys'. I assign a function to these keyevents with
my IceWM
keys
file.
Summary: This notebook
is almost fully functional using Linux, and suits my
needs very well. It's quiet and runs a long time on the
batteries. I would recommend it to anyone looking for a
linux compatible laptop.