Linux on Compaq Presario 2800t
Revision history
20020803 - inital revision.
20021004 - added usb information. Minor formatting changes. added
radeontool information.
20030220 - updaing acpi info and keyboard notes.
Introduction/Impressions
In July of 2002 I decided to look for a replacement for my aging dell
inspiron 5000 (since it was going out of warentee. My
requirements were simple, but strict: Reasonably fast processor,
very high resolution screen (1600x1200 prefered), and as light as
possible with those two first restrictions.
The dell inspiron 4100 seemed like a good match, but the price went up
after I started looking at it. Then before I could order one they
pulled that model and replaced it with the 4150. The 4150 looked
ok, but the price went up again and the battery life was
terrible.
Looking around more on the net I saw the compaq presario 2800t. Looked
like a nice machine. Good power, nice screen, light, good battery
life. I decided to order one and try it out.
The laptop came in about a week and a half. Not bad. the listed ship
date was about 2 weeks, so they beat their timeline by a few
days.
The laptop has a nice look. Grey/silver on the outside, with some
black highlights. I got the optional usb based wireless (more
below) witch only took a few minutes to install. It fits on the
right side of the lid (kinda bulging out). After installing
that, I poped a limbo (redhat beta) cd into the drive and
booted.
The bios is pretty bare, but doesn't really need to be doing too
much. You can enable various devices and change the boot
order. After booting from the cd, the install went forward. Video
was detected just fine, and the install took about an hour from 3
700mb cds.
Once I figured out the power management and wireless issues, I am
pretty happy with the laptop. It's fast, the screen (1600x1200 -
15") is super nice, it's light, the battery life is good.
Video
The video works fine out of the box with XFree86-4.2.0. It uses the
radeon driver and sees 1600x1200 just fine. You can also do other
resolutions fine (640x480, 800x600, 1024x768, 1280x1024). I did
have to use the radeon driver hack from
dri_reinit_kludge
to get suspend to work right. The 3d DRI doesn't understand
suspend/resume by default. The screen is very nice!
I get about 1050 frames per second with glxgears.
Since ACPI depends on the OS to do lots of things, and the XFree86
radeon driver doesn't support dpms yet, I installed at utility from
radeontool-1.0 to allow
me to turn off the screen. I tied this to the lid button with acpid
so it turns off the screen when the lid is closed.
Audio
The audio works fine out of the box. It uses the i810_audio. No
problems at all with audio. The speakers on the front seem to
produce typical audio for a laptop.
Mouse
The trackpad is detected and works fine as a PS/2 mouse. The 2 mouse
buttons work fine with that setting. Not satisfied with that, I
looked into the gpm synaptic's touchpad patch at:
gpm_synaptics_hack
With this patch and X reading mouse data from gpm, everything
works and all kinds of features are available. You can do edge
control, tapping on the touchpad, and most importantly you can get
the 'scroll button' under the touchpad working. By default it maps
left to left mouse button, up to middle mouse button, and right to
right mouse button. The middle mouse button setting is very nice,
since there is no middle mouse button next to the trackpad.
Keyboard
The keyboard has a nice feel to it, seems more clicky than the dell
keyboard. I wish the "Fn" and "control" keys were swapped, but
after some getting used to I can deal with that ok. The "Fn-F2" to
enable/disable the wireless comes in handy (see below). The
brightness up and down keys seem to work fine in the bios screen,
but don't function once linux is booted. Will have to look into
that more. All the "internet" keys generate keycodes, so they
should be trivial to map to things in X.
NOTE: This laptop is very much the same as the evo 800. I tried to take a evo 800 keyboard
, with pointing stick built in and install it. However it requires a diffrent touchpad board
in order for it to work. I tried to install one of those, but it won't fit in the 2800. ;(
Wireless (multiport)
The multiport is a port on the top right of the lid where you can put
a expansion device. Compaq has a 802.11b and bluetooth modules so
far. I got my laptop with the 802.11b. It turns out that it's a
USB interface to a prism2 chipset USB wireless. The latest
wavelan-ng drivers support this card with some issues. Drivers at:
linux-wlan If you power the laptop up,
the device is by default powered on. If you then load the wlan
modules, the machine will be unable to init the device. If you
unload them then or try and power off the device the machine will
panic or lock up. If you disable the device and then load the
modules, and re-enable the device, everything works and the device
loads fine. On software suspend the device reloads fine.
Power Management
The laptop doesn't support APM at all, it uses ACPI, the new power
management standard. I first tried patching a 2.4.18 kernel with
the latest 2.4.18-acpi patch. This saw the ACPI stuff, but
nothing worked. It couldn't detect anything. Checking with the
ACPI linux devel list resulted in some very helpfull
information. Seems that the ACPI bios compaq has in the laptop
is not right, so the ACPI linux drivers don't see it. In order
to get it working, first you need to dump the tables from the
bios to something we can edit, using:
pacpidump once you
have a acpi.asl file, edit it and replace all "*PNP" with "PNP"
and change "C11C" to "BAT1" and "C11B" to "BAT2" and "C11A" to
"ACAD". Once you have that get the iasl util from intel at:
iasl-linux-20020725
and run it on the asl file: iasl -tc -bb -i dsdt.asl This will
produce a dsdt.hex file. Apply the following kernel diff to your
kernel source: 2800-acpi.patch
New info: Here is a step by step for getting 2.4.21-pre4 working with acpi on this laptop
or on the evo 800:
unpack 2.4.20
unpack 2.4.21-pre4 patch
cd /usr/src/linux-2.4.20
zcat patch-2.4.21-pre4.gz | patch -p1
From: swsusp
zcat acpi-20030125-2.4.21-pre3.diff.gz | patch -p1
zcat linux-2.4.18-acpi-20020709-dsdt.patch.bz2 | patch -p1
From: http://developer.intel.com/technology/iapc/acpi/downloads.htm
Get the latest iasl package, and run:
pacpidump once you
pacpidump > dsdt.asl
edit the dsdt.asl and replace all * with nothing.
iasl -tc dsdt.asl
This is produced dsdt.hex
mv dsdt.hex /usr/src/linux/drivers/acpi/
apply the custom dsdt patch.
make and install your kernel as normal.
Recompile and reboot and you should have ACPI support. Infromation is
available from /proc/acpi/ after loading the acpi modules. One
other item I needed to get working was some kind of suspend or
hibernate. Since I use my laptop all the time, I need a way to put
it in a lower power mode while I move from place to place. ACPI
doesn't support any kind of suspend or sleep by itself, that is
done in the OS now. So, I looked into software suspend. There is a
nice patch for software suspend against an ACPI patched kernel
available at:
swsusp
With that patch installed, software suspend works great. You just
'echo 4 > /proc/acpi/sleep" and it writes your information out to
your swap partition and powers down your machine. You need to be
carefull to take down the wireless and unload the wireless modules
before hibernating. It takes about 15 seconds to suspend, and
about 30 all total to come back up.
ACPI seems to provide some nice additional information that apm never
did. For example you can find out the current power usage and
discharge rate on battery. The following information is
available from ACPI: if you are on the ac adapter or not, if 0, 1
or 2 batteries are present, what their capacity is in mAh, lid
power and sleep buttons if they are pressed, if any fans are on,
CPU throttling, 3 temp readings (case, cpu, video?) and what
critical readings are for them.
Builtin ethernet
The built in ethernet works fine out of the box. It uses the intel
eepro100 driver.
Builtin Modem
The builtin modem is a Conexant HSF 56k HSFi Modem. This is a
winmodem, but there is a linux driver for it at:
cnxtlindrv This
driver works fine, and sees the modem just fine.
Processor
The processor is a 1.8ghz Intel P4M. It's quite zippy. Seems to handle
compiles just great.
USB
The laptop comes with 2 USB 2.0 ports. They work fine as 1.0 with older kernels
and with 2.4.19 or beyond work great with USB2.0 as well. With a external
USB hard drive I get about 1-2MB/sec with 1.0 USB, and about 12-14MB/sec
from USB 2.0. Quite nice.
Kevin Fenzi
Last modified: Thu Feb 20 20:38:56 MDT 2003