Linux on the Compaq Armada E500
Well, in short: This is really a nice machine with really all features
running perfectly with Linux :-) If you need any further information which
I missed to list below, don't hesitate to
contact me.
News
- Closing somehow... Well, I
finally give up trying to update the page. I have a lot of emails around
with information I planned to add to the page. But it is hopeless,
currently I don't have time at all. So I just put the emails on the
server. Newer ones are at the bottom. Some of them are in german only. You
can find them here, unsorted. Sorry for that... :-(
- Important:
Matthias Eichler just told me that the laptop might
freeze when SuSE 8.0 tries to autodetect/install the sound chip. Finally, it turned
out to be due to ACPI support in the kernel. It seems that sound card initialization
can fail when the kernel supports ACPI.
Marijn Driel told me that his E500 also freezes
if logging in into Windows 2000 too fast, i.e., before the sound initialization
is finished. As W2K uses ACPI and not APM anymore, it could be a general problem
with ACPI and the sound chip in this model. So, take care :-)
Solution: Boot the laptop without docking station, login and disable the
alsa sound driver (e.g. by insserv -r alsasound). Then reboot with
the docking station and use the kernel driver instead (modprobe maestro).
- Important: After upgrading from XFree 3.3.6
to 4.1 I ran into a little suspend-from-X problem which can be solved this way:
- When using XFree 3.3.6, LEAVE_X_BEFORE_SUSPEND must be set to yes
somwhere in your apmd config file (depends on the distribution)
to make the laptop suspend and resume properly from X. Or you can switch to
a text console manually before suspending.
- When using XFree 4.x, LEAVE_X_BEFORE_SUSPEND must be set to
no because XFree 4.x will switch itself
to some virtual screen, and letting apmd to it will cause interferences
which result in X switching back from the console to X before suspending,
thus not resuming again.
- 23. October 2002: Long time ago... ;-) Added some new information
which I received from a lot of mails.
- 5. June 2002: Got a lot of new infos from various people.
Ramine Nikoukhah pointed me to a problem
he had with APM. It turned out LAN activity can wake up the laptop if it
was suspended but still connected.
- 14. March 2002: Finally another update :-) Added
information about messed-up keyboard after resume, an USB
webcam, telephony (in the modem section), bios version for
functions keys, the internet keys (keyboard section). Also added
the Compaq story which you can read above. There are two more
E500 Linux page which I detected. Take a look at
http://www.pd-dr-herrmann.de/linux.html
(has some special information for debian users) and
http://www.gnote.org/editor/e500s.html.
- 31. December 2001: Renewed modem section, added some information about IRDA chip,
APM in combination with ext3, suspend from X and docking station.
- 28. September 2001: External volume keys working, sound patch for modem sound
(in this section),
framebufer console support (in this section).
- 11. July 2001: How to fax with the Lucent modem :-)
- 30. June 2001: Added more info about USB and X (higher resolution, video out).
- 23. June 2001: Matthew Tippett pointed me
to some additional Fn-key functionality, thus, I finally added a
section about all the Fn-key stuff. He also
mentioned a brightness setting tool for the M300, which works on the E500, too. Read
about it in the X-section. Thanks a lot Matthew :-)
- 20. June 2001: Compaq going Linux?
Shay Files, employee at Compaq, has published an
official howto for installing Red Hat 7.0 on the Armada E500/M700. Take a look at
http://www.compaq.com/products/software/linux/clients.html#notebooks.
It's not as detailed as my page ;-) but it guides you step by step through the install
process. Nice to see that Compaq might be shifting a little bit more towards Linux...
I hope to have another update here soon as many people have sent me information about
special hardware they got running etc. I will include this as soon as I have some more time.
Already thanks to all those people and please keep mailing me if you have problems with or
solutions for anything specific with the Armada E500 :-)
- 12. Januar 2001: Modem news.
- 9. Januar 2001: Added more IRDA and USB infos.
- 3. Januar 2001: Added infos about USB and microphone.
- 26. December 2000: Added several infos about tweaking the harddisk and about the screen, modem
and dockingstation.
- 1. December 2000: TFT problem (update)
- 13. November 2000: More Docking station infos
- 2. November 2000: TFT problems (see X section), TFT and external screen work in parallel, Docking station section added
- 12. October 2000: Modem running, DOS sound driver found
Many thanks to Vincent Deffontaines,
Jake Hawkes,
Matthias Eichler,
Darren Moorhouse ,
Jonas Ryser,
Jaroslaw Karwik,
Matthew Tippett,
Klaus Steinberger,
Olaf Lösken,
Matthieu Weber,
Stefan Kees,
Tristan Tarrant,
Zoran Dzelajlija,
Reginaldo Stückner,
Kamil Iskra,
Simeon Petkov,
Kyle William Baker,
Neil Bingham,
Pablo,
Marco Roeland,
Tony McGregor,
Tuurlijk!,
Marijn Driel,
Karlheinz Herrmann,
Peter Fittschen ,
Ramine Nikoukhah,
and Jon Olav Vik for keeping this page
up to date by adding several information which you will find throughout this page.
A special big thank you goes to Ralf Gregor for making my laptop work again several times!
Some facts about the Compaq Armada E500
Hardware
My E500 came in the following configuration:
- Mobile Pentium III with 500 Mhz (250 with Speedstep)
- 14" TFT screen, 1024x768. This one is *really* good! Very bright, and even
set to only 60% brightness (to save batteries) it's still great to view!
There were no damaged pixels.
- 196 MB RAM. Note that there are only two memory slots
available, where the first one was already set with a 64 MB module.
So think in advance how much memory you would like to have...
- Ati Rage LT Pro with 8 MB RAM, 2x AGP
- ESS Maestro 2E Soundcard 16 bit
- 12 GB IBM hard disk
- 24x Atapi CD-ROM, can be exchanged against a little plastic module. Good
for flights where they might be afraid of you using a CD-ROM ;-) One can also
exchange the CD-ROM against a smaller battery (6 cells), a DVD, CD-RW or a hard disk.
- The floppy can be exchanged against a second (large = 9 cells) battery.
- The touchpad is a PS/2, works quite precisely and runs in parallel
with a external PS/2 mouse.
The mouse can be plugged in at any time and will work.
- Keyboard feels nice with quite large keys, but the design is bad: Insert/Delete,
Home/End and PgUp/PgDn are in the right upper corner and very small. The Fn key is
at the left bottom where you expect the Control key. It takes quite a while to
get used to the control key position which is right next to the Fn key... It has
those ugly Windows keys, but they can be programmed with Linux. Nice point: There
are spaces between the function keys like on a normal keyboard. Makes it easy to
find the right function key :-)
- 2 PCMCIA slots
- Internal Lucent Winmodem
- Ports: PS/2, parallel, serial, USB, IRDA, phone jack for the modem,
headphones and microphone, connector for a docking station. External volume keys
which work with kernel 2.4.7 or newer.
- Intel 440 BX chipset
- Windows pre-installed. On the first boot, I could chose between
Windows 95 and 98. Took Win98.
For those who like more details, here are the contents of /proc/pci.
Bios
The bios is a SM, which is the new bios developed by Intel, Dell, IBM, Compaq, Ami,
Award and Phoenix, so by almost everyone ;-) It can handle ACPI but also APM and
although one cannot address most of its functionality under Linux, all adjustments
made under Windows will affect Linux, too.
There is a small text-based bios menue which you can enter with F10 during
booting up. It allows to set the bootable devices (CD, floppy, harddisk) and
their order, as well as the quicklock configuration and the boot/setup passswords.
Quicklock lets you lock the laptop (keyboard and mouse) on startup,
after resuming from suspend and at any time by pressing Fn+F6, even with Linux.
You can also blank the screen when locking. To unlock you must enter the password blindly.
You can also enable/disable the ports and writing to the floppy.
All other bios functions can only be used with Windows, so it's a good idea to
keep it. Fortunately, all settings made with Windows are kept when booting Linux.
See the section about functions keys to learn how to access some bios
functionality even with Linux.
CPU
It's one of these mobile CPUs using Speedstep. That is, you can tell the CPU
to switch from 500 Mhz to 250 Mhz when on batteries. That really helps saving
battery. Look at the apm description in the next section to learn how to set the CPU.
Then fan is on the side and pretty small. It comes up from time
to time and is really very silent.
Batteries and APM
Two important hints first:
- After charging the batteries with the laptop off, sometimes it cannot be
turned on after removing the power line. Removing and inserting the batteries
once will help.
- In some situations, when the laptop hangs (e.g., when trying a wrong modeline
for X) neither the suspend button nor the power slide work anymore. To shut
down the laptop, switch the power slide to the right and press the suspend
button at the same time. This combination always turns the power off.
The main battery is a 9-cell LiIon. You can buy a second 9-cell battery and exchange
it against the primary battery or against the floppy, so you can have two batteries
in parallel. The battery in the floppy bay will be decharged first and charged last.
That's very nice to completely uncharge your batteries as recommended. Just swap
primary and secondary battery from time to time.
One battery will run about 2.5 hours while playing Doom II (my battery test ;-)),
thus calculating and having the hard disk running all the time. However,
you can define a power saving scheme for the laptop running on batteries.
Right-click on the battery symbol in the task bar and chose "Adjust battery settings".
In the menue you will find a card for defining the behaviour of the laptop
when it runs on batteries. There you can chose between high/middle/no energy saving,
and chose a user-mode. There you can define the CPU speed and the brightness
of the TFT screen.
With CPU speed
set to 250 Mhz and screen brightness to 60%, the lifetime will increase to
about 3.5 hours! So with
two batteries you have 7 hours. And believe me, that the screen is still very
bright when set to 60%.
When the battery becomes low (about 12%) the E500 will start to beep
five times about every minute. With hibernation enabled it will save to disk
automatically when the battery is at about 9% (a little to early for me :-().
Saving to disk takes about 45 seconds for my 196 MB, and restoring on next boot
takes about 2.5 minutes, so it's not really worth using it...
When enabling hibernation, a file of the size of the memory
will be created in the Windows partition. Linux will save to this file via the
bios, too!
Saving to RAM works quite fast, about a few seconds, and maybe 10 seconds
to resume.
Saving to disk/saving to RAM can be invoked with Fn+Suspend-key/only the
Suspend-key, and this works regardless of the operating system.
Function keys
Happy news that someone at Compaq decided to make the Fn key work with many
of the special functionalities independent of the operating system. Although the
special keys F5/F7/F8/F10 are mapped to some special tools in Windows, there are
ways to access the functionality even with Linux. However, as
Tony McGregor figured out, it seems to depend
on the bios version if you can use the keys or not. Bios with date May 23rd 2000
and earlier seem not to work. But bios from November 2000 (that's mine) and later
do work.
WARNING Make a bios update only on your own risk!
Any damages caused by a bios update will likely not be covered by the warranty!
Here is the table of the functions keys working with Linux and DOS
(and exactly the same way with Windows, too).
Fn-Suspend button |
The suspend button is the blue round button. When pressed alone, the
laptop suspens to RAM, if pressed together with Fn, it saves to disk (if this
is enabled under Windows).
|
Fn-T | Toggle stretching resolutions lower than 1024x768. |
Fn-F4 |
Switch between TFT screen and external monitor. Both screens can be run in
parallel without problems. The external screen can be connected at any time.
|
Fn-F5 |
Activates the sound setting mode. With the left/right cursor keys you can
lower/increase the volume of the speaker. The down cursor key will play a
beep so that you can check the volume. Leave the mode with Fn-F5 again.
Thanks to Matthew Tippett who told me
about this!
|
Fn-F6 | Activates the quicklock (see Bios section above). |
Fn-F7 | Man, this is cool :-) It activates the power saving mode. You can
flip through the power saving schemes with the cursor keys. These are the modes
that define how the laptop will behave when running on batteries. See the APM
chapter right above this one. With the right key you select the modes in the order
"No saving -> middle saving -> high saving -> user-defined", with the left
key in the reverse order. Thus, if you have defined the user-defined mode
to run the CPU with 250MHz, you can switch between 500MHz and 250MHz while
running Linux (note that all modes except user-defined mode run the CPU
with 500MHz). And even if you have defined a certain screen brightness for
the user-defined energy-saving scheme, you can still adjust the brightness
with the m300bl-tool (see the X section). Thus, you can chose the CPU speed
independent from the brightness with Linux :-)
Leave the mode with the same combination. |
Fn-F10 | Activates the brightness mode. You can now lower/increase
the screen brightness with the left/right cursor keys. If you are running
on batteries, the maximum brightness is restricted to what is defined
in the power-saving scheme. E.g., if you are running on user-defined
power-saving scheme and have defined 60% brightness, then you will not
reach more than 60% with the cursor keys. However, with the m300bl tool
you can always set the maximum brightness. See the X section.
Thanks to Matthew Tippett who told me
about this!
Leave the mode with the same combination. |
Manuals
You will find a lot of facts and manuals on the Compaq web page at
http://www.compaq.com. I've collected the
ones for the Compaq Armada E500 here:
Installing Linux
Partitioning
As mentioned before, you should definitely keep Windows to be able to adjust
the bios settings. I kept a 1.5 GB partition for Windows and used a DOS tool
called fips which comes with SuSE 6.4. It's freeware, so you should
be able to find it in the Internet. This tool can cut down the primary DOS/Win
partition and create a second one, *if* there is no data in the space where
you want to create the second partition. So use defragment to move all Windows
data to the beginning of the partition (Actually,
Jon Olav Vikpoints out that
"there's an option in the defrag program to just consolidate free
space, without actually defragging files. The consolidation is all that's
needed to resize a partition, and it's much faster, especially if there are
many files already on the disk." He is definitely right, thanks for the hint!).
Then fips should work fine. You might also try tools like PartitionMagic etc.
Unfortunately, this option seems to have disappeared in W2k.
Jaroslaw Karwik reports:
"When you get laptop with preinstalled W2k you expirience some more problems:
The standard defrag program only defrags files - there is no way to force it to consolidate free
space.The documentation says that consolidating
free space does not help much and that's why you cannot have it :-(.
The solution: I used Mandrake 7.2 installation - its partitioning program (do not
remeber its name) can reallocate used sectors in FAT32 partitions."
Getting started
I've experiences with SuSE 6.4 *only*, but I guess any recent distribution
should work more or less the same. After booting the first SuSE CD with the
CD-ROM (don't forget to make the CD-ROM the first boot device in the bios),
the installation just ran through without any problems. All hardware was
detected correctly. The kernel version was 2.2.14 originally, which worked
fine, but I upgraded to 2.2.17 due to the bugs in 2.2.14.
X
I found many hints, that the Ati Rage chips seem not to work with XFree versions
earlier than 3.3.6! So, you should upgrade to 3.3.6!!!
With XFree86 3.3.6, the Ati Rage LT Pro can use the Ati Mach64 driver. The SuSE tool sax
automatically detects the chip and choses the Mach64 driver. 1024x768 modes
work fine, but I don't manage to set up any 800x600 mode :-( The screen
just goes white and the laptop locks up completely when I try it. This seems
to be a problem with the Mach64 driver. No mode except than 1024x768 works
with the Mach64 driver and X. They work with the SVGA driver, and, amazingly,
they work when you start them with an external monitor connected and the
output set to the monitor (Fn+F4), and then switch back to the TFT *after*
X has started up. This is really strange. Actually, if you then leave X,
the text console is messed up.
Upgrading to XFree 4.0 solves this problem. All resolutions work fine!
So it's likely a bug in the Mach64 driver of XFree 3.3.6 in combination with
the display of the E500, because I have other reports of Rage LT Pro chips
which work with the Mach64 drivers in lower resolutions without problem.
Unfortunately, there is no 3D acceleration in XFree 4.0 for
the Rage LT Pro chipset so far, so I went back to 3.3.6.
I could not figure out the ranges for the TFT screen, so I've chosen
a generic "LCD XGA 1024X768@60HZ" monitor in sax. Later I changed
the ranges to 31.5-65 kHz and 50-100 Hz which seems to work fine.
There is a mesa glx rpm that comes with SuSE and provides glx support
for the Ati. This works pretty fine, for instance the mesa modes of
xlock or gltron run really smooth. Quake3 *sigh* and even GL-Quakeworld work,
although the Mesa 3.2 has a bug with QW.
Here's my XF86Config file, which also loads
the glx module, and the glx.conf with the parameters
for setting up the glx module. Be careful when playing around whith ranges etc.
I'm not responsible for any damage your screen may take when you use my config!
Olaf Lösken has a model with maximal
resolution of 1400x1050 pixels. He uses the following modlines for high resolutions:
Modeline "1400x1050" 108.96 1400 1416 1704 1944 1050 1050 1059 1097
Modeline "1280x1024" 110.76 1280 1296 1552 1736 1024 1024 1034 1070
Modeline "1280x1024" 127.80 1280 1296 1552 1736 1024 1024 1035 1070
Modeline "1152x864" 90.48 1152 1168 1384 1568 864 864 873 902
Matthieu Weber reports that the video-out port works,
but only if you connect the TV before you start the laptop (or you reboot it after you plugged
in the TV :-)).
svgalib
I got svgalib 1.3 working just out of the box. Although the mach
drivers didn't work, vesa worked fine. However, it seems that some other
users had problems, so Stefan Kees
pointed me to
this page
where he found hints for setting up the svgalib on his E500. He had to recompile
the svgalib 1.4.3 and add MAX_REGS>6460 in driver.h. So, if svgalib
doesn't work for you, you might try this out.
Setting the brightness
Georg Acher has written a tool "m300bl" to set
the screen brightness on the Armada M300. Fortunately, it works with the E500, too.
You can download the sourcecode from Georg's homepage
http://www.acher.org or from here.
Many thanks to Matthew Tippett who pointed me
to this tool. Calling the tool with parameter "8" will set the full brightness,
even if you are running in energy saving mode with recuded screen brightness.
Thus, assume that you have defined the user-defined energy saving mode to run the CPU
with 250MHz and 60% brightness, but then need more brightness to see more, you can
just call "mbl300 8" and will have 250MHz CPU but 100% brightness.
Please also check the section about
the function keys to learn how to set
the brightness with the Fn key.
Framebuffer console support
Matthias Eichler has figured out how to use the framebuffer
support for the console. Seems to work only with kernel 2.4.7or newer. Here is what you
should compile into your kernel (it seems modules are not working well):
CONSOLE DRIVERS
---------------
VGA text console ON
Video mode selection support ON
FRAME-BUFER SUPPORT
-------------------
Support for frame buffer devices ON
VESA VGA graphics console ON
VGA 16-color graphics console ON
Advances low level driver options ON
2 bpp packed pixels support ON
4 bpp packed pixels support ON
8 bpp packed pixels support ON
16 bpp packed pixels support ON
24 bpp packed pixels support ON
32 bpp packed pixels support ON
VGA 16-color planar support ON
VGA characters / attributes support ON
Select compiled-in fonts ON
VGA 8x8 font ON
VGA 8x16 font ON
Then you can define a video mode in lilo.conf by defining e.g. vga = 771
where 771 (=303h) will give you a 101x37 character console. 773 (=305h) will give you the maximal
resolution of 128x48 characters. You can also define vga=ask, then lilo will
ask you for the mode before booting. You have to enter the hex values in this case.
PCMCIA
The cardbus was detected automatically. The intel chipset works with the i82365 setting.
The pcmcia version shipped with SuSE is 3.1.11. My noname NE2000 compatible
network card is detected automatically and works fine. No lockups etc.
Important note to Debian users:
Vincent Deffontaines reports the following:
"When you install debian 2.2 from standard potato CD, it is necessary to update
packages pcmcia-cs for all users, and also
pcmcia-sources for the ones who want to compile a new
kernel."
So, if you don't get PCMCIA running with this laptop, check your Debian version. It's
not due to the PCMCIA chip!
Sound
Please also check the section about
the function keys to learn how to
set the volume with the Fn key.
There are alsa as well as kernel drivers for the ESS Maestro 2. The
kernel driver is loaded with "modprobe maestro". Alsa (0.58)
provides access to /dev/audio, whereas the kernel drivers only give you pcm.
Both allow mixer access, but amixer, the alsa mixer, cannot adjust the
speaker, i.e., the volume of the system beeps generated by linux but also
by the bios (e.g. when warning of a low battery). One can use e.g. aumix,
which can also set the volume via command line parameters. It's a good
idea to put an aumix call into the boot.local, so that the volume is set
on startup, because the speaker is quite loud after booting! I've
set a line
/usr/bin/aumix -v 50 -w 60 -p 40
into my boot.local.
Only the kernel driver works after resuming from a suspend, so I use that.
The alsa driver seems to have a bug playing MP3 files because it
moves 70% of all sound to the left channel after some seconds.
To avoid beeping around, I put a "setterm -blength 0" into my .cshrc
and a "xset b off" in the .xinitrc to disable the linux generated bells.
Tristan Tarrant was the first one
to inform me that the external volume keys finally work with the maestro
kernel driver from kernel 2.4.7 (or newer). All 2.2.x kernel users
can take a look into the keyboard section below for hints how to comfortably
use other keys for that purpose and check the section about the
function keys.
I did not try the built-in microphone yet, but
Jonas Ryser reports that he tried it
and it worked without any need for special configuration. So try it :-)
*Update* I tried it, too. Works :-)
Zoran Dzelajlija has written a patch for
the maestro sound driver from kernel 2.4.7 to enable phone-in mixer
(to listen to modem handshake). You can get it here:
http://www.zabbo.net/pipermail/maestro-users/2001-July/000380.html
Matthieu Weber reports, that the sound
card cannot be initialized when you run Windows 2000 and then reboot to start
Linux. Thus, you have to turn off the laptop completely after running Win2k
before starting Linux.
Although ESS told me that they don't support DOS, I found a Maestro Sound Driver for DOS.
Ok, this is a Linux page, but maybe someone likes it :-) Here it is.
APM
Kernel 2.4 warning:
There seems to be a problem with apm in combination with the ext3 filesystem
in kernel 2.4.x. Kamil Iskra reports that
his E500 has problems with suspend and wakeup sometimes when the ext3 option is
compiled into the kernel. It seems to happen only to some people, so it's not
a general problem with apm and ext3, but maybe in combination with certain bios.
However, it seems to help when you use the noatime option for ext3
file systems. Kamil writes that this makes the suspend "quite reliable".
So, should you have problems with apm, check that option.
Everything stated below holds for apmd 3.0 and kernel 2.2.16/2.2.19.
Please also check the section about
the function keys for energy saving
schemes.
Amazingly, suspend-to-disk and suspend-to-ram work (for suspend-to-disk,
hibernation must be enabled in Windows) with or without apmd running. As
stated above, suspend-to-disk is really slow, so I disabled it completely.
Some people reported problems of Linux locking up some time. This can be
caused by automatic APM switching. To avoid this, disable *all* automatic
APM stuff in Windows, i.e., this "When on batteries, power down hard disk after
3 minutes, blank screen after 10 minutes" etc. All this must be turned off!
You can do so by chosing the "always on" energy scheme with the Compaq
apm tools. After people did this, they had no more problems with lockups!!!
Suspension from X does not work, so you must set APMD_LEAVE_X_BEFORE_SUSPEND
in the apmd.rc.config (/etc/rc.config.d/apmd.rc.config with SuSE). In the
same file you can let the pcmcia cards be ejected (virtually ;-)) before suspending,
and adjust
the hard disk timeout parameters. Those seem not to work since the update
and flush daemons have been moved into the kernel...
Kyle William Baker reports that on his
Red Hat 7.1 system suspension from X works if xscreensaver is running.
Thus, he just set LOCK_X="yes" in /etc/sysconfig/apmd (would be
/etc/rc.config.d/apmd.rc.config on SuSE) and now suspension from X
works fine.
Since the alsa modules don't work after resuming, one can apmd let them
unload before suspending, but this may take some time because first
all applications using sound must be found and killed so that the alsa
modules can be unloaded. The kernel drivers work fine after resuming
without restarting, so I use them instead of alsa. If you want to
use alsa, try APMD_STOP_SOUND_BEFORE_SUSPEND="alsa" in the apmd.rc.config.
Unfortunately, /proc/apm does not give any information about the
estimated battery lifetime. apmd calculates some values itself, but tools
like xapm will just show 0:00 remaining time. Also /proc/apm does not
distinguish between one and two batteries. With two batteries, it will
just calculate the average load (Matthias Eichler
reports that his KDE 2.0.1 sees two seperate batteries, but as this is not
up to the KDE, I guess that he has also a newer APM daemon running in
his system. So you might want to check out the latest APM versions.)
With the CPU set to
250 MHz and screen brightness to 60%, one percent load of one battery
is more or less 2 minutes lifetime. So with one battery, one can work
200 minutes (actually, even a little more) = 3 hours 20 minutes.
With 2 batteries, we are at 6 hours 40 minutes, but in reality it's
more likely to be even 7 hours. So, I've hacked the xapm to show
the remaining time, but you need different versions if you work with
one or with two batteries because there is no chance to distinguish that
automatically :-( Here you can find xapm1
(source) for one
battery and xapm2 (source)
for working with two batteries.
When the battery falls below about 12%, the bios will start beeping
5 times about every minute. At 9%, it will automatically save-to-disk if
hibernation is enabled under Windows. There seems to be no way to make
it suspend-to-disk at a lower state. Note that with 2 batteries, 9% means
almost 40 minutes remaining lifetime, so I've disabled hibernation completely.
Even with only one battery, 2% lifetime is enough to shut down Linux.
Note that LAN activity can wake the laptop if it was suspended but
still connected (of course only if you have the built-in network card :-))
In addition to setting the CPU to 250 MHz and brightness to 60%, it should
save some power to disable USB and IRDA in the bios, but I'm not really sure.
What does help is to remove all pcmcia cards or at least virtually eject them
(with cardctl eject). I've set up a second boot configuration that boots
my kernel with runlevel 1, which can be done by an entry like this in lilo.conf:
image = /boot/2.2.16/vmlinuz
root = /dev/hda3
label = linux
append = "1"
The append parameter will start in runlevel 1, where many services are not
started (like scanlogd etc). I removed the pcmcia-links from /sbin/init.d/rc1.d/
so that pcmcia is not started either. Thus, booting (and shuting down) works
much faster and you have less unneccessary daemons running in the background.
Look at the Battery-Powered-Mini-HOWTO for more tips and tricks.
Interrupts (Sharing)
Just in case someone might be wondering, interrupt sharing seems to work. Actually,
the pcmcia cardbus, USB, the soundcard and the modem all run on interrupt 11.
As I've only sound and pcmcia running and never played mp3 while heavily using
the network card, I can't tell if it really works if two devices working at the
same time...
Harddisk
Using hdparm will considerably optimize the transfer rate of the harddisk.
Jake Hawkes recommended to try
hdparm -m 16 -c 1 -d 1 /dev/hda
which sets the harddisk to 16 sectors
per interupt (the drives reported optimum), dma and 32 bit IO mode.
Using these settings, my harddisk copies about 12 MB/s.
Peter Fittschen told me, that
there is an OEM harddisk bracket with Compaq interface, so that you can
plugin any laptop harddisk into the E500. Take a look at
http://toscha_vertrieb.bei.t-online.de/5_2.htm for german users, and
at for US.
CD-RW
Karlheinz Herrmann reports the
following: "Compaq shipped for my 'Armada E500' Laptop a CD-RW (Product No 136186-B25)
which turned out to be a recognized as a TEAC CD-W28E. This device was found
to be functional under debian/GNU Linux woody 2.4.18 kernel."
Keyboard
Resuming in console
If you suspend and resume the laptop on the console, the keyboard might
be messed up, that is, the keyboard thinks the control key is pressed
all the time. Thus, you will get ^A instead of "a" etc. The solution is easy:
Press the Alt-key once, and the keyboard works fine again. You can also
try Fn+Scroll, if Alt does not work. Thanks to
Pablo and
Marco Roeland for these hints.
Internet keys
Newer models have these 4 internet keys. Tuurlijk!
managed to use them. You need to define
keycode 163 = Help
keycode 159 = XF86HomePage
keycode 154 = XF86Search
keycode 158 = XF86Mail
in your e.g. $HOME/.Xmodmap file and then merge it with
xmodmap $HOME/.Xmodmap. Then you can attach functions
to these key, depending on your window manager. For instance,
for fluxbox put sth. like this in your $HOME/.fluxbox/keys:
None XF86Mail :ExecCommand evolution
None Help :ExecCommand gnome-help-browser
None XF86Search :ExecCommand galeon -n http://www.google.nl
None XF86HomePage :ExecCommand galeon -n http://freshmeat.net
For ctwmrc, you would use sth. like
"XF86Mail" = :all : f.exec "whatever mail tool you want to call & "
in your $HOME/.ctwmrc. This is reported to work with
XFree 4.x, I have no clue about 3.3.6. I can't test this myself
as I have one of the nice old models without these ugly keys ;-)
Key programming
I have a US keyboard but need German umlauts. Also, the PgUp/PgDn key block is
quite far away... So let's
do some programming ;-) I've selected the pc104 keyboard, us layout, and here
is the .Xmodmap that I load additionally:
! Make the left win key the mode_switch key. By that, the third and fourth
! column in a key definition define the keys generated by win+key.
clear Mod4
keycode 0x73 = Mode_switch
add Mod4 = Mode_switch
! I'm german, but prefer an us keyboard. But I still need umlauts,
! so I add them to be generated with the win-key.
keycode 0x20 = o O odiaeresis Odiaeresis
keycode 0x1e = u U udiaeresis Udiaeresis
keycode 0x26 = a A adiaeresis Adiaeresis
keycode 0x27 = s S ssharp
! PgUp and PgDn are too far away, so I put them on the win-menu
! and the right control key.
clear Control
add Control = Control_L
keycode 0x6D = Next
keycode 0x75 = Prior
! make the right alt key the super_r key with modifier 3.
! Actually, it could be any key, I just wanted the modifier 3 here
! to use it in ctwm.
remove Mod1 = Super_R
clear Mod3
keycode 0x71 = Super_R
add Mod3 = Super_R
!-- end
Now comes the nice thing with the ctmw. It's a quite old window manager,
but it's so nicely configurable, that it beats every KDE ;-). (If you like,
have a look how nice ctwm can look.)
Anyway, you can do nice key programming in ctwm. To use the right alt key
as modifier together with the six keys block (Insert, Delete etc.) for
volume adjusting, I added the following lines to my .ctwmrc:
# Define Sound-Functions via the right alt-key (Super-R with Mod3)
"Prior" = m3:all : f.exec "aumix -p+5"
"Next" = m3:all : f.exec "aumix -p-5"
"Home" = m3:all : f.exec "aumix -w+5"
"End" = m3:all : f.exec "aumix -w-5"
"Insert" = m3:all : f.exec "aumix -v+5"
"Delete" = m3:all : f.exec "aumix -v-5"
Thus, right alt + Insert/Delete will increase/decrease the general volume,
Home/End deal with PCM and PgUp/PgDn adjust the speaker volume.
I used the right alt-key with modifier 3 because
ctwm refuses to recognize the win-key (mode_switch with modifier 4)...?!
The same way, one can set F7/F8, which have the battery symbols on it,
to load either xapm1 or xapm2:
# let right Alt and f7/f8 change between xapm1 and xapm2
"F7" = m3:all : f.exec "(killall xapm2;xapm1 -g 45x13-110+0&)"
"F8" = m3:all : f.exec "(killall xapm1;xapm2 -g 45x13-110+0&)"
And with right alt + F9/F10 we set the brightness to 60%/100%:
# right Alt and F9/F10 set brightness to 60%/full
"F9" = m3:all : f.exec "/usr/local/bin/m300bl 4"
"F10" = m3:all : f.exec "/usr/local/bin/m300bl 8"
For the console, I set the right alt-key and the win-key to AltGr
and added the same functionality by extending /usr/lib/kbd/keymaps/i386/qwerty/us.map.gz
with the following lines at the end:
keymaps 0-6,8-9,12 #must contain 2-3 because that is AltGr/AltGr+Shift
# changed keycodes:
keycode 58 = Control # - caps_lock is becoming control
keycode 97 = Next # - right control is becoming pgdn (prior)
keycode 127 = Prior # - Win-Menu is becoming pgup
keycode 125 = AltGr # - make Win key Mode_Switch
keycode 100 = AltGr # - right alt key becomes AltGr, too
# now define umlauts
keycode 30 = a A adiaeresis Adiaeresis
keycode 24 = o O odiaeresis Odiaeresis
keycode 22 = u U udiaeresis Udiaeresis
keycode 31 = s S ssharp
# define Insert/Del/Home/End/PgUp/PgDn block for volume adjusting
AltGr keycode 110 = F110 # Insert
string F110 = "aumix -v +5\n"
AltGr keycode 111 = F111 # Delete
string F111 = "aumix -v -5\n"
AltGr keycode 102 = F102 # Home
string F102 = "aumix -w +5\n"
AltGr keycode 107 = F107 # End
string F107 = "aumix -w -5\n"
AltGr keycode 104 = F104 # PgUp
string F104 = "aumix -p +5\n"
AltGr keycode 109 = F109 # PgDn
string F109 = "aumix -p -5\n"
Modem
The internal modem is a 56K Lucent Winmodem. The chip is detected (look for it in /proc/pci).
Drivers can be found at http://www.heby.de/ltmodem.
The installation is very easy and works for kernel 2.2 as well as 2.4. The modules will
be compiled for your current kernel during the installation, so you need to reinstall
(i.e., recompile) the modules when you update the kernel. I've made a little (source) rpm
which I can send you if you are interested.
Load the modem modules with "modprobe lt_serial".
For 2.2 and PPP, you need to modprobe the slhc and ppp
modules (if you don't have it compiled into the kernel). For 2.4., you need also PPP support
for asynchronous serial ports compiled into the kernel. If you have it as module,
just use "modprobe ppp_async" to enable PPP support.
Then you can use e.g. wvdialconf to autodetect and setup the modem and PPP connections.
That works without any problems.
If you use the kernel sound module, the modem does not make any sound.
Jake Hawkes had success in using the ALSA
drivers, but I could not reproduce his success so far. There is a sound patch for kernel 2.4,
take a look at the sound section.
Telephony
Pablo sent me some information
about using the E500 as phone :-) I quote:
"It's a couple of programs by Pavel Machek
at http://close.u-net.com (package is ltmodem-0.9.9.tar.gz), called "ltmodem"
(yes, the same name than the modem driver, but it's a program) and "phone"
that, supposedly, turn the computer into a telephone by somehow connecting the
microphone output to the modem input. But that's what is driving me mad
all these days! If I run any of the programs (actually, phone is kind of front
end to ltmodem) without the sound module loaded, all behaves well (save that I
neither hear nor am heard ;-), but if I try to run them with the maestro.o
loaded, the system hangs.
Well, just now, when I was writing this, has arrived a mail by Pavel saying
that, in order for the computer not to hang, the irq _must_ not be shared. And,
you know, in our systems irq 11 is shared by several devices."
So he tried to change the interrupt:
"I made some experiments brute force and guess what I got... If I do
root# setpci -s 00:09.0 interrupt_line=0a (that's 10)
root# modprobe lt_modem Forced=10,0x3800,0x3834 (irq and resources)
then dial with, e.g., wvdial, I get dialtone, and the modem dialing and
negotiate the handshake. :-)) Then the computer hangs. :-(("
However, he also has a pcmcia modem, and when he uses this one, he
gets sound without sound modules loaded. Then unplugging the pcmcia
modem and stopping the pcmcia service, and loading the ltmodem modules,
gives sound from the ltmodem without any alsa or maestro sound modules
loaded. Strange effect! If someone has more information on this, let me know!
Fax
The Lucent modem has fax class 1 capabilities, 14400bps. Class 1 faxes let the
CPU/OS do a lot of work while class 2 do most of the work on their
own. Unfortunately, class 1 faxes are not very well supported by
Linux. However, there are at least two software packages, one free
and one commercial.
- efax, a very nice and
easy to set up tool. You can copy the first lines from /usr/bin/fax
into /etc/efax.rc and adjust everything to your needs, even the
header etc. You can even define a printer for efax, so that you can fax
from every program with "lpr -Pfax -J fax-number file". Look at the
man page. Very nice :-)
Important: It might be neccessary to download the latest development version
from the web page, currently efax-0.9a-001114.tar.gz The latest stable
release 0.9 which is e.g. shipped with RedHat did not work with my
Lucent winmodem (I got an error due to the FTM command after the connection
was established), and I had reports from other users with the same problem.
So if faxing with the 0.9 version does not work for you, try the development
version. I've made a rpm for it, get it here,
works with glibc 2.1. If you want to rebuild it, download the
source rpm.
- pmfax is a commercial tool, but there
is a lite version which is free. It prints a one-line ad as header. It's fully
graphical and I actually like it very much because it has been developed from
the OS/2 pmfax program which was my first fax software at all back in 1992 when
I started with OS/2 :-) It works freat with the Lucent modem.
Network
The network interface (if you have one built-in) is an Intel chip which will
run flawlessly with the eepro100 module.
Note that LAN acticity can wake up the laptop if it was suspended but still connected.
Docking station
Vincent Deffontaines reports, that
the keyboard works with the docking station. Latest update reports mouse is
work, too, but problems with finding a driver for the network adapter, which is
not yet solved. He will add more information as soon
as he finds the time to try the other features.
Matthias Eichler also has a docking station, the one
with two extra PCI slots. He reports, that the network card is detected as eth1
but only works with a fixed config but not with DHCP. Even the built-in network
adapter in his Armada will not work with DHCP anymore while the notebook is in
the docking station. This issue is now solved with SuSE 8.0
Keyboard, Mouse and monitor work without problems. If you remove
the notebook from the docking station while it is suspended, it will wakeup
and feel very confused because a network adapter is normally not hot-swapable :-)
Neil Bingham had to include Option "crt_screen"
defined for the ATI device to use an external monitor with the docking station after he
had upgraded from Red Hat 6.2 to 7.1.
USB
I did not try USB myself, but Darren Moorhouse
reports the following: "I have tried an iMac usb mouse with it (just for the
fun of it). Linux liked it just fine. Didn't take much beyond plugging
it in and telling the system what kind of mouse it was."
Jaroslaw Karwik figured out this:
"Kernel 2.2.17 gives USB support for mouse (checked with Logitech USB/PS2
mouse). According to documentation also USB keyboards are supported.
To get my favourite Iomega 250 ZIP drive I had to use kernel 2.4.0 (works
without problems)."
Klaus Steinberger reports that he
managed to add an Epson Perfection 640 Scanner with the 2.2.18 kernel (a one-line patch
in drivers/usb/scanner.h is neccessary) and got gimp/xsane working with it. Also
detecting a RICOH camera worked fine.
Marco Roeland tried a USB webcam called
"Trust Spyc@m" and reports that it works well. And he told me, it is very cheap also!
IRDA
Also not tried. But at least some comment from
Jake Hawkes:
"I contacted compaq, and they tell me that the IR chip is SMSC's
IrCC 2.0 compliant controller, but I am yet to get this working."
Reginaldo Stückner
has added those information about the chip:
Device ID: SMCF010
Device Name: SMC IrCC Fast Infrared Port
Device Type Code: 070002
IRQ = 3, DMA = 5, I/O Port = 03E8, I/O Port = 0100
and found more information at
http://mobilix.org/Infrared-HOWTO/infrared-howto-c-hardware-supported.html
Simeon Petkov sent me the following description
how to get IRDA working with SuSE:
So the only thing you need to get it working with
SuSE (i.e. 7.0 with a 2.2.16 kernel) is change rc.config
by making the IRDA_PORT - line looking like this:
IRDA_PORT="/dev/ttyS2"
then in the shell:
> rcirda stop
> rcserial stop
> setserial /dev/ttyS2 irq 3
> rcserial start
> rcirda start
irdadump should now bring the discovery packages every
3 sec. - no segmentation fault any more ;]
If you now f.e. want to use the irda port to surf over
your mobile you just need a link of the modem pointig
to /dev/ircomm0
Jaroslaw Karwik pointed me to
some newsgroup discussion where I found the following description by
Alan Carter, taken
from
http://www.pasta.cs.uit.no/pipermail/linux-irda/2000-November/001899.html. I've no idea
if this works the same way for SuSE, but anyway ,should give you some hints what to do.
"Hi
I am using redhat linux 6.2 with a nokia 7110, to get irda working I had to
upgrade my kernal to ver 2.2.16. I have included a list of instructions I have
used to get IRDA working.
Configuring Nokia 7110 for ircomm
- Check to see if you have irda utils (check in /etc/irda)
- Compile the kernel. You need (m) IrDA Subsystem
(m) for IrCOMM, (X) IrDA protocol options, (X) Fast RRs, (m) IrTTY), (M)
IrPORT). This is for kernel versions 2.2.15/2.2.16
- Edit the script file /etc/irda/drivers, uncomment the
irattach /dev/ttyS2
(this will depend on which serial port your irda port is (check
with 'dmesg'). Comment out any other irattach drivers).
- enter the following into /etc/config.modules:
alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty
- Make the following devices:
mknod /dev/ircomm0 c 161 0
mknod /dev/ircomm1 c 161 1
mknod /dev/irlpt0 c 161 16
mknod /dev/irlpt1 c 161 17
- Next make a link between /dev/ircomm0 and /dev/modem
(if you wish to use the phone as a standard modem).
- I also had problems with pcmcia using the irq3 (check file
/etc/pcmcia/config.opts).
- restart your computer.
- start irmanager (irmanager -d 1), check for errors in your
/var/messages file.
- start irdadump. switch on you phones irda port and check to see if
you have contact. You will see the phone annouce itself.
- All you then have
to do is to use you favourite dialup program. I have used kppp and wvdial with
success..
Alan"
Did I forget something important? Do you need more information? Please tell me!
Frank Steiner