Linux on a Compaq Presario 905EA
by Vicente Aguilar <
bisente@bisente.com>
NOTE:
This page hasn't been update in a LONG time. Any recent distribution should
support all the hardware on the Presario 905 out of the box. Nowadays I'm using
Ubuntu without
problems.
Evenso, if you still need an updated guide on running Linux on a Presario
905, you could try with the
Compaq page at TuxMobil.
Introduction
This document describes how to get Linux up and running on a Compaq
Presario 905EA, but these instructions should also work with any
Presario laptop of the 900 series, maybe even others too (Evo). The
guide is a little bit Debian-oriented as that's the distribution I'm
using, but I'll try to give as much tips for other distros as I can.
With all the information shown here, anyone with a medium knowledge of
GNU/Linux systems should be able to get any other Linux distribution
working on these laptops. There've been reports of people getting
RedHat,
Mandrake,
SuSE,
Gentoo
and
Morphix
(among others) installed on one of these laptops.
I have tried lately a SuSE 8.2 Live-CD on this laptop and it worked
like a charm out of the box. If you're a newbie (no pun intended) and
don't want/know how to fiddle with the kernel, XFree86 and so on, maybe
you should take a look at this distro before trying to follow the
instructions on my page.
In case this page hasn't been updated in a couple of weeks, you should
take a look at any of the other
Linux on a
Presario 900 resources, specially
the
Presario 900 mailing list.
Some info about the hw/sw
- Technical Specs:
- AMD Mobile Athlon XP 1800+ (1.53 GHz)
- 256 Mb RAM
- 30 Gb HD
- 15" TTF Display
- ATI Mobility Radeon U1/IGP320M
- DVD-ROM/CD-RW combo unit
- 3 1/2" floppy drive
- Synaptics TouchPad
- 56K mini-PC Modem
(WinModem)
- 1 PCMCIA type I, II slot (with 32 bit card support)
- 2 USB ports
- 1 IEEE 1394 port
- 1 infrared port
- 2 audio ports (headphones + mic)
- 1 MultiPort
- 1 PS2 port, 1 parallel (SPP/ECP), 1 VGA and 1 S-VIDEO
ports
|
|
Status
WORKING
|
NOT WORKING
|
NOT TESTED
|
- Network
- DVD-ROM/CD-RW
- Video (2D + XVideo)
- TouchPad + 4way pad
- USB
- PCMCIA
- SVGA port
- ACPI
- Inet/MMedia keys
- Modem
- Sound
- Multiport
- AMD PowerNow!
|
|
- IEEE-1394
- InfraRed Port
- PS/2
- Parallel
- S-VIDEO
- Compaq Wireless W200
|
Revision history
- Version 1.0.6, Juny 2nd 2003:
Added a patch to add cpufreq AthlonXP PowerNow! support to the
2.4.21-rc6-ac1 kernel. Uploaded a new kernel image with this patch.
- Version 1.0.5, May 25th 2003:
There's been a lot going on since the last update. I'm lazy and haven't
updated the page in five months. O:)
Most notably, there is finally a driver (2D only) for XFree86, the ALSA drivers finally work, the PowerNow! works now too and
there's a driver for the W200 wireless
card.
- Version 1.0.4b, December 14th
2002: Added a note about devfs
for the kernels on the Tips and Trics
section.
- Version 1.0.4, December 12th
2002: The MultiPort
seems to work, and the sound
finally works with free drivers!!
- Version 1.0.3, November 11th 2002: Added the Introduction,AMD
PowerNow!, Multiport/Wireless, Software Suspend and Tips and
trics sections. The modem works, and the soundcard too (if you wanna
pay for it). Several sections have been improved.
- Version 1.0.2, September 18th 2002: The extra
inet/mmedia keys and the 4way pad bellow the TouchPad now
work. Other TouchPad and modem improvements. Updates on
the Logitech QuickCam Pro 3000 USB problem.
- Version 1.0.1, September 14th 2002: Improved DVD-ROM/CD-RW,
XFree86, USB, VGA and On dual booting sections. Added Status
section.
- Version 1.0, September 10th 2002: All the basic things work
except the soundcard. Most I/O ports and the ACPI support seem to work.
Modem not tested. Notes on dual booting win/linux.
Basic configuration
Basic things you'll need to get working in order to
be able to do some actual work with the laptop. In most cases, you won't
even need to recompile the kernel. If you have to recompile your kernel
in order to get something working and you've never done that before,
don't panic: it's not half as hard as it seems. Read The Linux Kernel
HOWTO and don't be afraid to mess with your kernel anymore.
Works out of the box. It's an RTL8139
C+ based card, fully supported by the standard kernel. It'll be likely
compiled into your distro's kernel or available as a module (look for
8139cp or 8139too in Debian). I even did a full network install using
one of these
netinst
CD images.
- DVD-ROM/CD-RW combo unit: works
The drive is a TEAC DW-28E, which also
works with the standard kernel without problems. If you want to burn
CDs, you'll need to enable SCSI emulation. This will likely mean that
you'll need to recompile the kernel... check your distro's docs and the
CD-Writing HOWTO.The
drive has BURN-Free support, a BURN-Proof-like technology, and it's
fully supported by
cdrecord.
DVD playback also works, I like
Ogle.
- FrameBuffer: works (without acceleration)
If you want graphics on the console,
use the VESA framebuffer driver included in recent kernels, as the
radeon driver doesn't work.
Getting this to work is only important if you really need to use some
framebuffer programs or if you plan to use the fbdev driver in XFree86
(see below).
- XFree86: works (without 3D accel.)
There is a (2D+XVideo only) XFree86
driver for the card by Hui Yu, but only works with XFree86 4.3.x and it
is not included (AFAIK) on the "vanilla" X 4.3.0 distribution. Some
recent distros seem to have already included it, though (Gentoo, maybe
the latests RH and SuSE).
So, if your distro ships with X 4.3 and the radeon driver just works
(and you can watch movies decently with mplayer, xine or whatever
program you use), you can be happy and forget about this. If it doesn't,
you'll have to install the driver yourself. It's available from
Ian's page (
direct link to
the drivers).
If your distro still ships with X 4.2, you'll have to upgrade to 4.3 by
compiling it from the sources or looking for some updated packages for
your distro, and then install the new driver. Another option is using
the VESA driver or the fbdev one (of course, you'll need to get the
framebuffer working before using the fbdev driver). They both work and
are quite easy to setup, but don't provide any kind of 2D or 3D accel.
Debian still doesn't ship with X 4.3, not even the "unstable" branch
(SID), so if you want 2D/Video accel you'll have to update your XFree86
distribution. Fortunately, there are several apt repositories out there
with updated packages:
Woody (I haven't tried it):
deb http://ktown.kde.org/~nolden/X11 stable main
Sid:
deb
http://penguinppc.org/~daniels/sid/i386/
./
(There may be other repositories too... YMMV)
They may or may not have the new driver included, so if the driver
doesn't work or XVideo doesn't seem to be supported, download and
install the driver yourself after upgrading to 4.3.
More info on the graphics card:
The graphics card on this laptop is part of a new, integrated chipset
by ATI called U1 or IGP320M. This chipset is a combination of a
northbridge with a Radeon 7000-compatible graphics card. You can find
more info about this chip at
this article at The
Inquirer and
this
other one at Tom's Hardware Guide.
- TochPad +
4-way pad: works
In X-Window it works as a PS/2 device,
so just remember to include PS/2 support into the kernel (comes with all
distros) and set in XF86Config the PS/2 protocol. This is the easiest
way to get the TouchPad working, but it'll work in a very simple mode
and the 4-way-pad bellow it won't work at all.
If you want the 4-way pad to work and have extra features on the
TouchPad (like scrolling by moving your finger on the right edge of the
pad, and 1, 2 or 3 finger tapping acting like left, right or center
mouse clicks), you'll have to install a recent gpm version. The version
currently distributed with Debian SID (1.19.something) WON'T WORK.
You'll have to use at least 1.20.0, while I've done all my tests with
1.20.1rc1 + patches. Here is what you have to do:
- Download the latest gpm version from here.
- Look at the mail list here and download the
latest patches by Peter Berg Larsen. This
is the one i've been using for gpm-1.20.1rc1.
- Compile and install it.
- Configure it to use the synps2 protocol and repeat in imps2 mode (/etc/gpm.conf).
- Copy this gpm-syn.conf
file in /etc.
- Restart gpm.
- Configure the mouse in X-Window to use /dev/gpmdata and the
ImPS/2 protocol (like
this).
- Restart gdm/xdm/whatever.
Alternativelly, if you don't want to patch/compile gpm yourself, you
can download my
pre-packaged
.deb archives of gpm-1.20.1rc1 with Peter's Synaptics patchs.
You can also try
tpconfig
(it comes with Debian), an utility for tweaking some options of the
TouchPad. I haven't messed with it much, so I'm not sure about what can
it do.
Another option, if you don't want to fiddle with gpm, is using this
Synaptics Touchpad
driver for XFree86. It woks great, but of course, it's a X-only
solution. You won't have all the nifty features while you work on the
console with gpm.
There are three ways to get the sound working:
- Use the kernel drivers (OSS/free). You shouldn't have any
problems with a kernel >= 2.4.21-pre4. On kernel versions <=
2.4.21-pre3 there was a bug which hanged the computer after loading the
sound drivers. If for some obscure reason you're stuck with an
older kernel, you can fix the bug by appliying this patch by Fedor Karpelevitch.
- Use the ALSA drivers.
These drivers had a similar bug on versions <= 0.9.0rc5, from rc6 on
it's fixed. You shouldn't have problems with the current releases (I'm
using 0.9.3c).
- Use the OSS/Commercial
drivers. They cost $35 ($20 for the base drivers + $15 for this card's
driver), but they work like a charm, the installation is very
straight-forward and they come with a built-in audio mixer (like esd or
arts, but in the driver itself).
I/O ports
Use the OHCI kernel driver. It loads
and detects the USB bus, and then the hotplug daemon detects any USB
devices upon insertion. I've tried this with two devices:
- A Logitech QuickCam Pro 3000 (audo + video USB device) which,
although it is detected and configured (I get a /dev/video0
device), doesn't work. But it doesn't work on Windows either!!!
I have called Compaq's and Logitech's technical support and both of
them told me to update drivers (in Windows, of course, as none of them
support Linux). It didn't work. The Compaq staff also told me that the
problem could be the laptop's USB port not supplying the camera with
enough power for it to work properly, they have had similar problems
with other cams and other laptops...
Anyway, the cam still doesn't work and I want to use it on this
laptop, as it has GREAT Linux
drivers.
- A Saitek Cyborg 3D Gold USB JoyStick, which is a fully HID
compatible device. The device file /dev/js0 is created upon insertion,
and I can calibrate and test the joystick with jscal and jstest. No
problems whatsoever.
So, despite the WebCam issue, I think that the USB support works.
Works with the CardBus driver. Tested with a Surecom 32bit 100/10M
CardBus PC Card (RTL-8139C based): The hotplug daemon detects it and
ifup's/ifdown's it upon insertion/extraction, and the new network device
works without problems.
If you're experiencing problems/hangs with the PCMCIA support, try
adding this line at the end of your /etc/pcmcia/config.opts file:
exclude port 0x380-0x3ff
- IEEE-1394: detected, couldn't
test if it works
The controller for the FireWire port is
a Texas Instruments TSB43AB22 1394a-2000 one. The kernel ohci1394 driver
loads and seems to detect the hw, but I don't have any 1394 devices so I
haven't actually tested it.
- InfraRed port: not tested
I still haven't looked at this. Don't have anything to test
it with.
- External SVGA port: works
If the external monitor is plugged in while the computer is
on, it shows nothing. If it's plugged while the computer is off and then
you turn it on, you get a copy of the laptop screen on the external one.
Don't know if it's possible to "activate" the external SVGA if plugged
while the computer is on.
On windows, you have nothing on the external screen at first if you
plug it in while the computer is running, but you can activate it using
the extended display settings on ATI's drivers. Then, you can set the
external monitor as a exact copy of the laptop's one, or make it work
in a "xinerama-like" mode where it acts as an "extension" of the
laptop's screen.
Haven't tried to set up Xinerama in Linux.
- PS/2, parallel and S-VIDEO ports: not tested
I still haven't looked at these. I think that the PS/2 and
parallel ports should work, though, as they are quite common and
supported hw.
Other stuff
The default kernel ACPI driver doesn't
seem to work well with this laptop. For ACPI to work, you have to instal
the latest ACPI patch from
here. After that,
al the relevant ACPI information (including the battery status) is
available on /proc/acpi/*. The computer can be powered off by software,
but suspended mode doesn't seem to work (but of course, you can use
software suspend).
You can check the ACPI status (battery charge and all that) with the
ACPI command line utility.
If you're using Gnome 2, you should take a look at my
improved
Gnome 2 Battery Applet (a simmilar patch is likely going to be
included in Gnome 2.2's batstat applet).
Another interesting program is the
acpid daemon. This
daemon captures all the ACPI events and lets you set an action to be run
for each event. For example, you could lock your screen everytime you
close the laptop's lid, or stop any superfluous, CPU-consuming software
(whatever@home) when you disconnect the laptop from AC power and start
running on batteries.
PowerNow! is the technology in AMD's Mobile K6/Athlons
which allows the CPU to run slower under low load conditions, thus
saving battery power and reducing the overall system temperature.
There's a project working on adding support to the Linux kernel for this
kind of technologies called cpufreq.
The project was lead by Dominik Brodowski and you could download patches
from his page for both the 2.4 and the 2.5 kernel series, but since
March Dave Jones has taken
on the project and moved all the development into the 2.5.x kernel
series. I haven't found a 2.4 backport of cpufreq since then, so we must
stuck for now to the latest cpufreq release (cpufreq-2.4.21-pre3-4, which works
anyway with newer releases too).
But the PowerNow! driver by itself is useless, as it won't do any cpu
throttling automatically. The driver only provides an interface to the
user, and it must be the user himself (or a user-land daemon) who
controls the CPU speed accordingly to the system load. One of such
programs is cpudyn,
by Ricardo Galli. It monitors the CPU load every X mseconds and switchs
the CPU speed as needed. It also monitors the HD's use and sets them on
stand-by mode if they're not used after a period of time. If you're
going to use this daemon, you should also apply this
patch, as it improves its functionality on an Athlon XP CPU.
The modem is a Conexant HSF 56k HSFi
Modem. There is a linux driver for this modem available
here. As I'm using Debian,
which is not RPM-based, I downloaded the source .tgz package and
compiled it. If you're using other distro, check their list of
pre-compiled packages.
After some weeks of fighting with the modem's drivers, I've finally
been able to make it work. All the problems I was having were due to me
forgetting how to configure a dial-in connection, after two years of
using an ADSL line. Luckily enough, I found
gkdial and it did all the
dirty work for me. :)
NOTE: The modem drivers DON'T WORK with a PREEPTIVE kernel. So, if
you've installed rml's patches, recompile the kernel without them if you
want to use the modem.
- Extra (inet/mmedia) keys: work
Install
LinEAK (the version that
comes with Debian SID is ok). Copy this
lineakkb.def
file over the one you'll have in /etc/, launch
lineakd and
configure your keys with
lineakconfig. For more information
about installing/configuring/using LinEAK, check its docs.
There are other ways to manage these keys. For example, GNOME 2.2
provides its own multimedia-keys daemon with a nifty graphic interface.
KDE may include a similar program, too.
The MultiPort is a special expansion slot in Compaq's
laptops. It's located at the back of the screen, i.e., on the top of the
lid when you close it. The most useful application for this expansion
slot is getting a wireless card, as it won't use the ONLY PCMCIA slot of
the laptop and, besides that, it allows a larger antenna and the antenna
is more protected (it's inside the laptop's lid). The MultiPort
technology itself is derived from USB's, there's more info about it on this
Compaq web page.
I've got a Compaq Wireless Lan W200 Multiport card. This card was
unsupported until a cople of weeks. There's now a driver by Manuel
Estrada Sainz available here. The drivers
compile and seem to work, but unfortunatelly I don't have a wireless AP
at the moment so I haven't tested if they work (they should).
Anyway, the laptop's MultiPort slot itself seems to work without
problems. The multiport slot is just a hacked USB port, and after
installing the wireless card and pressing Fn+F2 to turn it on, the
hotplug daemon detects a new USB device and all its information is shown
in the logs (/var/log/syslog). So the system detects the module as an
USB device correctly, and after loading the drivers I can configure the
card. So I guess everything works (the port and the card).
Thanks to Al Stone of the debian-laptops list for all the info on the
MultiPort technology.
- Software Suspend: not tested
I want to give this patch a try one of
these days but still haven't had the time, so I'll mention it here just
in case you don't know about it.
The whole idea behind the
Software
Suspend project is to save a "snapshot" of the running system
(memory, processes states, etc) into the swap partition before turning
the system down. This way, when it's bought up again, it can recover
this "snapshot" and the whole system will be in the same state you left
it (say, with an X session, Mozilla browsing some web, and an xterm
compiling the kernel).
The patch has been around for a while now and has already been included
on the 2.5 development kernel, so I think it can be considered mature
enough for use.
Tips and Trics
Some tips in case you're still having problems getting
Linux installed on your system:
- If your system hangs while starting up from the installation CDs
(this happens with RedHat and Mandrake, maybe also with others) type
"linux pci=off" at the lilo prompt. This is due to a bug in some recent
kernel releases, so the problem may be common to other distros too
(thanks to Ignacio Aliende for this info).
On Debian, just use the default installation 2.2 kernel (don't use
"bf2.4 at the lilo prompt) and, after the whole install is done, upgrade
your kenrel to the latest 2.4.x available.
- Here is my XF86Config-4 file. If
you're having problems setting up XFree86 yourself, copy this file in
/etc/X11 and restart gdm/xdm/whatever. This file uses /dev/gpmdata as
the mouse device, so you'll have to install gpm. Look at the TouchPad section above.
- This is my kernel .config file. It
contains all the configuration options I've selected in my currently
running kernel. Copy it as .config on your kernel source tree, then type
"make oldconfig && make dep && make clean &&
make bzlilo && make modules && make modules_install" to
get it compiled and installed. Reboot, and enjoy.
- If you don't want to compile the kernel
yourself, here is a tar.gz package with the kernel I'm currently using.
Untar it on / on your filesystem, make sure that lilo is configured to
boot with the /vmlinuz image file, run lilo and reboot (check your
bootloader docs if you're using grub or any other thing instead of lilo).
- Alan Cox's -ac1 patch (among other things, includes the O(1)
scheduler and the ACPI patch)
- My patch bellow to add cpufreq-2.4.21-pre4-3 over Alan's patch
- ALSA 0.9.3c
- hsflinmodem-5.03.27lnxtbeta03042700.
Not a patch, but the modules are included in the tarball. You'll likely
need some user-space tools too, so you'll have to install the package
anyway.
- Compaq Wireless W200 driver v0.1.2
NOTE: This kernel has the devfs support enabled. You'll need to
install de devfsd package, or pass the "devfs=nomount" option to
the kernel.
Usually, it is advisable to use always the latest -preX-acX kernel
releases with these laptops, as both the standard kernel series and Alan
Cox's patches introduce new features and optimizations for this
hardware. But the cpufreq patch included on the -acX series doesn't
still has support for the AthlonXP. Here is a patch to remove the cpufreq
code from Alan's patch and add a version which supports the AthlonXP's
PowerNow!
On dual booting
It's possible to set up a dual booting Win/Linux
system using lilo, but keep this in mind: The computer comes with WinXP,
Norton Internet Security 2002 (personal proxy + AntiVirus), MS Word 2002
and MS Works 2002, but you only get on CD Windows and Norton IS, there
are no Word o Works CDs to install them at a later time. There are 4
QuickRestore System Recovery CDs, but they won't let you select which
programs to reinstall or the partition size, they just format the whole
disk and make a full restore of the original installation.
So there are two options here if you need to dual
boot:
- If you don't really care much about having Word & Works (I'm
more than fine with OpenOffice,
but wtf, I've paid for that $oftware, didn't I?), do as I did: fdisk,
install Linux and reinstall Windows from the CD, but you'll lose MS
Word and Works 2002.
- Instead of fdisk-ing, shrink the partition and install Linux on
the newly freed space. Partition Magic 7.0 supports WinXP and NTFS
partitions (GNU parted still not).
If you act fastest than you think (like I sometimes do
O:) ) and after removing Windows you realize that you've lost Word and
Works and want them back, you'll have to do something with the
QuickRestore CDs. Here is a
guide on making those CDs restore the system into an existing partition,
instead of chewing up all the HD. I've followed it and failed, but I
think I know the reason: I prepared a NTFS partition for Windows, but
the QuickRestore procedure uses FAT for the installation and, at the
end of the process, converts it to NTFS. So I think it went mad when it
found an unknown partition format and ... well. I had again a 30Gb
Windows installation. Luckily, this time I had Partition Magic and a
backup of my linux system. ;)
Final customization steps
Get some Linux stickers to put on top of that
"Designed for Microsoft® Windows® XP" one. ;D
Related links
General
Drivers & software
Docs & HOW-TOs
Other "Linux on <some_laptop>" pages I've found useful
Other "Linux on a Presario 9xx" resources