Picture of the Compaq Evo N410c

Linux on the Compaq Evo N410c

This page describes my attempt at installing Debian on a Compaq Evo N410c.

Note: This page is now very out of date. However, with the latest BIOS, everything works including:

Last updated: $Date: 2007-12-23 22:51:13 -0800 (Sun, 23 Dec 2007) $

I am leaving the information about my struggle to achieve this below as there is useful information in it.


I put it in the form of a table so that it is easy to see what works and what doesn't.

Note that there is an interesting project which provides Linux kernels for laptop and puts you in a better shope for using the N410c.

A few details about the hardware:

What? Works? Remarks Specs
AC adapter Works OK with the latest BIOS The computer used to crash if the AC adapter is plugged or unplugged while Linux is running. Now it seems to work OK. Weird Compaq BIOS
Screen blanking Yes, with a lot af hacks! Before (with F.0A A): Impossible to blank console: "apm: set display: Interface not engaged" error; apparently, Compaq APM patch available.

Now (with F.0E A): the screen blanking works if the AC adapter is unplugged; it shows the above problem if it is, but that's OK. OTOH, the keyboard locks up when the screen goes blank because of power saving when the laptop runs on battery: the screen turns off, pressing a key turns the screen back on but then the keyboard stops working. I have not managed to disable this blanking; I tried in the kernel configuration, with setterm, with xset -dpms, nothing worked. I have sent a bug report to linux-laptop@vger.kernel.org (which didn't work) and to Stephen Rothwell, the kernel APM maintainer, about this.

I sent a bug report to Compaq's support about it too, since it is a major problem and makes the computer not very usable on battery... They pointed me to their Linux support (I don't know who those people are exactly). I have also asked about this APM screen blanking lock-up on the HP forum on Evos and the Linux forum.

The mouse_uf utility is a work-around for this problem.

The radeontool utility allows one to blank the screen under X as reported by Fraser Wright.

Weird Compaq BIOS
Hibernation Yes with swsusp and frame buffer Haven't managed to make the BIOS work (asked on Usenet: question and followup; asked on HP forum and also to HP support: no answer)

According to Bjørn Mork, it works if one installs Windows 98. I tried to create the hibrn8.dat file using Compaq's SP2773 on a FAT16 partition, but it didn't like that better.

Software suspend works as long as X is not running. Apparently, the DRI Radeon support needs to be tweaked to get it to work with X, but I haven't managed to make it work. See the discussion in debian-x, which indicates the the 4.3.0-1 package will integrate the patches. Woohoo!

However, I discovered that software suspend works with the Radeon framebuffer. The two drawbacks that I have found are:

  • the X fbdev server is much slower than the ati one, to the point where scrolling can be extremely painful.
  • DPMS does not work; this is actually not a big issue since APM cannot in my experience turn the screen off.
Weird Compaq BIOS

Incomplete APM implementation?

Suspend Poorly The first resume doesn't bring back the display when in console mode (works under X).

Suspending under X breaks mouse clicking (when resuming, it is impossible to hold down a mouse button) and the screen doesn't turn off, but shows the matrix, which looks pretty cool but doesn't really save battery at all.

Apparently, there is a workaround for the suspend problem which seems to be due to the Radeon DRI support.

Weird Compaq BIOS

Incomplete APM implementation?

ACPI Yes (but not perfect)

Non trivial

With all the APM problems, I am tried to get ACPI working, but the fan was not detected, which was leading to overheating...

I reported a bug about the fan not being detected, and sent a similar email to acpi-support where somebody told me that Compaqs usually work with a little help.

As instructed, I went to acpi-devel and discovered the existence of a DSDT table that one have to tweak, and ways to do so.

I tweaked mine, and got some things working:

  • the fan is detected.
  • the machine doesn't crash on batteries like it did with APM.
  • I now have more battery information (e.g. remaining time).
  • I now have more thermal information.

I have written a Getting ACPI to work on a Compaq Evo N410c How-To.

N/A
USB Yes Use OHCI driver.

USB 2.0 supported.

NEC
Integrated 802.11b: Compaq Multiport W200 Yes Use the Linux driver for Lucent/Agere Orinoco USB devices. See also my page for generating Debian packages for the Orinoco USB driver.

Historical notes: Uses Orinoco USB. Not supported yet. Wrote to Agere Systems to ask about Linux support. Answer (very fast): USB wireless adapters are only supported under Windows.

See the thread about W200 Linux support on the HP forum. There is another W200-related thread there too.

There is a report of somebody who managed to get it working by flashing the firmware, but it seems that it was with a Prism chipset.

This 802.11b Linux USB page is silent about Orinoco-based USB cards... So is the Wireless LAN resources for Linux page.

The Linux orinoco driver development site contains some interesting discussions, though, including a success report with the WL215. Manuel Estrada Sainz has created a mailing list for the development of an Orinoco USB driver that he has started.

I have seen a report from Stefano Argiro saying that he got the W200 working! See the Linux driver effort for Lucent/Agere Orinoco USB devices page. I got it working with version 0.0.7, although WEP didn't work for me (it worked for somebody else).

Compaq Multiport W200

Based on Lucent ORiNOCO USB (now maintained by Agere Systems)

Graphics Yes With XFree 86 4.2, ati driver, using DRI.

Note: under X, the screen blanking using APM doesn't work, even when closing the lid.

Radeon Mobility
Sound Yes

With i810_audio.o.

Works with BIOS upgrade, from Compaq's bios F.0A

Intel ICH chip
Internal modem Yes With ltmodem (see also ltmodem tool) Lucent Winmodem
Hotkeys, volume adjustment Yes With hotkeys:

Keyboard definition file:

<?xml version="1.0"?>
<CONFIG model="Compaq Evo N410c keyobard">
<!--
From: http://larve.net/people/hugo/2002/12/evo410
-->

  <Help           keycode="163"/>
  <WebBrowser     keycode="159"/>
  <Search         keycode="154"/>
  <Email          keycode="158"/>

  <VolUp          keycode="176"/>
  <VolDown        keycode="174"/>  

</CONFIG>
N/A
Adjusting brightness Yes Using Fn-F10 key and then the arrow keys. N/A
Infrared Should work Using the smc-ircc driver.

I have failed talking to my cell phone but managed to detect it (see my T68i page).

Jon Butterworth tells me that one needs to play with setserial to make it work:

/bin/setserial /dev/ttyS2 irq 3
?
Synaptics mouse pad Not tested Have a look at tpconfig or XFree86 driver N/A
Monitor output Yes Interestingly enough, I didn't have to use Fn+F4 to make it work. radeon_tool shows that it's always on. N/A
TV output Should work Received success report. N/A
Keeping Windows Yes Used BootIt NG to resize the NTFS partition.

XP is bootable with GRUB.

Windows XP Professional

Compaq version: installation formats the disk...

Maps and /etc/network/interfaces

My /etc/network/interfaces:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface

auto lo
iface lo inet loopback

# The internal interface

mapping eth0
	script /etc/network/map-scheme.sh
	map masq masquerading
	map * anywhere

# W200

#iface wlan0 inet dhcp
#	pre-up /etc/network/wireless-settings start wlan0
#	up /etc/init.d/ntpdate start

mapping wlan0
	script /etc/network/w200-scheme.sh
	map masquerading masquerading
	map kadish masquerading
	map * anywhere

# PCMCIA Cards

mapping eth1
	script /etc/network/pcmcia-compat
	map modem,*,*,* modem
	map masquerading,*,*,* masquerading
	map kadish,*,*,* masquerading
	map *,*,*,* anywhere

# Profiles

iface anywhere inet dhcp
	up /etc/init.d/ntpdate start

iface masquerading inet static
	address 10.168.169.1
	netmask 255.255.255.0
	up /etc/init.d/dhcp3-server start
	up /etc/init.d/ipmasq start
	down /etc/init.d/ipmasq stop
	down /etc/init.d/dhcp3-server stop
	down rmmod -a
	down rmmod -a

My /etc/network/map-scheme.sh:

#!/bin/sh

iface="$1"
which=""

[ -f /etc/network/scheme ] || exit 1

lookup=$(cat /etc/network/scheme)

while read glob scheme; do
        if [ "$which" ]; then continue; fi
	case "$lookup" in
		$glob) which="$scheme" ;;
	esac
done

if [ "$which" ]; then echo $which; exit 0; fi
exit 1

My /etc/network/w200-scheme.sh:

#!/bin/sh

iface="$1"
which=""

if [ "$1" = "wlan0" ]; then
  /etc/network/wireless-settings start wlan0
fi

[ -f /var/lib/misc/pcmcia-scheme ] || exit 1

lookup=$(cat /var/lib/misc/pcmcia-scheme)

while read glob scheme; do
        if [ "$which" ]; then continue; fi
	case "$lookup" in
		$glob) which="$scheme" ;;
	esac
done

if [ "$which" ]; then echo $which; exit 0; fi
exit 1

My /etc/network/wireless-settings:

#!/bin/sh

source /etc/pcmcia/shared

SCHEME=`cat /var/lib/misc/pcmcia-scheme`
HWADDR=`/sbin/ifconfig $DEVICE | sed -ne 's/.*\(..:..:..:..:..:..\).*/\1/p'`
ADDRESS="$SCHEME,$SOCKET,$INSTANCE,$HWADDR"

source /etc/pcmcia/wireless

My /etc/network/pcmcia-compat:

#!/bin/sh

source /usr/share/doc/ifupdown/examples/pcmcia-compat.sh

Pointers

Interesting pages to harvest:

Power management investigation pointers:

I also got some help and feedback from Bjørn Mork.


Hugo Haas