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.Read a story about my E500 and the Compaq service
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.
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.
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:- Users Manual (PDF, 800 KB)
- Technical Specifications (PDF, 192 KB)
- Trouble Shooting (PDF, 580 KB)
- Hardware Installation and Trouble Shooting (PDF, 2 MB)
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 902Matthieu 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 ONThen 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 40into 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 tryhdparm -m 16 -c 1 -d 1 /dev/hdawhich 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 consoleIf 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 = XF86Mailin 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.netFor 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 !-- endNow 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 = 0100and 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/ircomm0Jaroslaw 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
Alan"
- 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..
Did I forget something important? Do you need more information? Please tell me!
Frank Steiner