Protest against software patents

Linux on the Presario 711 EA

The Presario 700 are a series of cheap and reasonably fast entry-level laptops from Compaq. On the downside, they seem somewhat fragile, and have a number of minor flaws that used to cause problems with earlier versions of Linux.

If you intend to buy a Presario 700, please be aware that it does not have an integrated serial port (you will need to use a USB protocol converter if you want to use any serial peripherals).

The information contained in this document is offered in good faith, but with no guarantee of any kind.

Summary

The situation has improved significantly since this document was first written. Today, no patching is required, and the laptop pretty much works out of the box with any recent Linux distribution.

Summary: use Linux 2.4.21 or later and XFree86 4.3.0 or later. Avoid SMP versions of the kernel.

The rest of this document is offered in case it may have some historical interest.

Partitioning

The system comes with Windows XP on a single 17 GB NTFS partition (there's also a 3 GB FAT-32 partition used by Compaq's system restoring software). If you want to keep XP, you will probably need to buy PowerQuest's Partition Magic version 7 or later. If you don't care about Windows, you can simply reformat the disk with any of the available Linux tools.

Core system

There is a bug in the PCI chipset which causes the machine to lock when using a kernel optimised for Athlon/Duron. A workaround is included in kernel 2.4.18. This workaround is enabled if you see the following line in your kernel log:

Disabling VIA memory write queue: [55] 3c->1c

For some reason, the system hangs on boot if you enable the local APIC.

Use kernel 2.4.21 or later and choose Athlon/Duron/K7 processor family; disable Use local APIC on single processors.

Power management

The Presario 711 does not do power management through APM; unless you use ACPI, the machine will run so hot as to be almost unusable.

Unfortunately, Linux on the Presario 711 loses ACPI interrupts, which causes power management to become disabled. You will need to use a version of the Linux ACPI code that compensates for that by polling for lost interrupts. A suitable version is included in Linux 2.4.21 and later.

Earlier versions of the Linux ACPI code did not poll for lost interrupts. Use the kacpid patch, if you need to use such a version (a more detailed explanation was provided in this posting).

All ACPI functionality works with the exception of suspend and performance management.

Both S3 and S4 suspend states cause a hang on wakeup; according to Pavel Machek, the problem is understood and being worked on. The Presario's BIOS doesn't advertise support for S1.

The Presario does performance management using AMD's PowerStep interface rather than an ACPI-defined interface; more exactly, the ACPI tables decare power management to be in system-dependent space (7F). The version of Powerstep included in kernel 2.6-test5 and later appears to support this laptop's powerstep functionality correctly (test4 was buggy).

Use kernel 2.4.21 or later and enable all ACPI options.

Software suspend

The swsusp patch appears to work with the Presario, and partly compensates for the lack of ACPI suspend.

There is a number of caveats with swsusp on this machine. In particular, due to disk write buffering, the suspend data never actually gets a chance to hit the disk. A workaround is to disable the write cache before suspending.

In order to take care of this problem, and others, I use this suspend script. Modify to suit your taste.

Optionally apply the swsusp patch and select Software suspend.

Peripherals

IDE system

Choose Use PCI DMA by default when available and VIACXXX chipset support in order to get decent performance from the hard disk and DVD drive. If you do that, you will not need to tweak the drive parameters using hdparm.

PCMCIA

No problem with either 16-bit or CardBus cards. Choose Support for hot-pluggable devices, PCMCIA/CardBus support and CardBus support.

Network

The built-in ethernet chipset works fine with the 8139too driver.

The 8139too driver is a forked version of Donald Becker's rtl8139 driver. I haven't tested the latter driver myself.

A summary description of this chip's programming interfaces is available from Realtek's site. In summary, all data gets copied. Twice. (But that's okay, the laptop is fast enough to still get a 8MB/s sustained data rate over TCP.)

Choose RealTek RTL-8139 PCI Fast Ethernet Adapter support.

Sound

The sound chipset is supported with the ac97_codec and via82cxxx_audio drivers. Unfortunately, there is a bug in the firmware that prevents any sound from being heard without a kernel-level workaround, included in Linux 2.4.20 and later.

For earlier kernels, you will need to apply ad1886-presario.patch.

Use kernel 2.4.20 or later and choose VIA 82C686 Audio Codec.

USB

The built-in USB connectors appear to work (tested with usb-storage only). Choose UHCI support and any USB-related options that you will need.

Touchpad

The touchpad behaves like a PS/2 mouse. Choose PS/2 mouse.

The 2.6 series of kernels uses a different driver with this mousepad. If you see any problems, you may want to use the option psmouse_noext when loading the mouse driver or on the kernel command line.

The funny four-arrow thingie beneath the touchpad buttons is connected to the touchpad, which exports it to the system as four extra buttons. These four buttons are visible to applications that use the 2.6 event interface.

Modem

The Conexant HSF modem is a cheap controllerless and DSP-less thing; however, the CPU is fast enough to make it work with no noticeable decrease in interactivity. It is supported under Linux using proprietary (binary-only) drivers available from Marc Boucher's site. I can report success with version 4.06.06.02mbsibeta02041300 and a few later versions. Do not use the older versions, especially those without the “mbsi” suffix, as they break all applications that use the FPU.

The hardware design doesn't seem to connect the modem's output to the laptop's speaker, and the Linux driver doesn't implement emulating this functionality in software. You won't get any audio feedback during dialing.

Install hsflinmodem-4.06.06.02mbsibeta02041300.tar.gz or later.

Unfortunately, Marc Boucher's drivers are no longer free (as in beer). You will still find the free versions on the 'net, but none of them work with the 2.6 series of kernels.

XFree86

The video chipset is a Savage Twister K. While this chipset is supported by XFree86 since version 4.1.0, and stable since version 4.3.0, it might not be detected automatically. Manually configuring XFree86 for any Savage chip should give you a working XF86Config.

Make sure that the Device section of your XF86Config looks as follows:

Section "Device"
Identifier "whatever"
Driver "savage"
EndSection

Older versions of this driver have some problems: some 2D operations cause a hard lock of the system (most notably the Blaster module of xscreensaver); furthermore XVideo sometimes causes the system to hang. The problems are fixed in version 1.2.25 of the driver, included in XFree86 4.3.0.

Use XFree86 version 4.3.0 or later.

XVideo

The video overlays of the Savage are not particularly efficient, and the current driver only implement nearest-neighbour scaling. I've been able to play DVDs using all of MPlayer, Xine and Ogle with no problem, but the nearest-neighbour scaling is a problem with lower-resolution video, for example VCDs; a workaround is to use client-side scaling, for example with MPlayer's `-vop scale' option.

How do you do that with Xine?

The DRI driver for the Savage reportedly supports interpolated XVideo scaling.

The efficiency problem is due to the chipset requiring the driver to do software conversion of the client-supplied data into a funky format. There used to be patches to XFree86 3.3 to optimise the process by using Intel's MMX hack, but they haven't been updated for XFree86 4.

OpenGL

There is currently no support for 3D acceleration using DRI on the Savage under Linux.

There is a beta driver, and it can be found in the savage-2-0-0 branch of the DRI CVS tree.

Don't play quake.

Alternate servers

Note that these servers are not recommended; you are probably better off using the stock XFree86 server. If you decide to try them out, you are on your own; please do not e-mail me with requests for help.

The KDrive Xvesa unaccelerated server works almost flawlessly on this machine; the only problem is with the touchpad, which reacts badly to being taken for an Intellimouse. If you want to run KDrive on the presario, you should apply a patch to disable Intellimouse support in KDrive. (This is a hackish workaround, not a fix; a fix will appear in a later version of KDrive.)

To my great surprise, the accelerated Xsavage server works fine (as long as you don't try to use overlays -- specify only one depth in the screen specification). You only need to tell it about the PCI ID of the Twister chip, which you may do with this patch.

Back to my software page.

Juliusz Chroboczek, <jch@xfree86.org>