
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 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 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:
|
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:
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... |
/etc/network/interfacesMy /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
Interesting pages to harvest:
Power management investigation pointers:
I also got some help and feedback from Bjørn Mork.