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.