Linux on HP nw8000

2007-08-15: updated after installing Ubuntu 7.10 (Feisty Fawn), see ACPI section

Contents

Introduction

About This Notebook

HP nw8000 is a Pentium-M based notebook. The specs look nice and I was especially attracted by the fact that this notebook is Linux-ceritified (even if it was only for use with SuSE and I wanted to install the usual Debian on it) and so I hoped not to have problems with making it work. This has unfortunately turned out to be not quite right, although probably not more so than with any other Centrino notebook, and I had to wait for one year and a half before everything really started working under Linux.

Also, and even though I think that it was bad luck more than general lack of quality of HP notebooks, I can't not mention that the notebook has died after 10 days and I had to send it back to HP who duly returned it to me 3 weeks later with a new CPU, memory and motherboard. Unfortunately they have put in a bad motherboard which resulted in a few new problems which it took more than a month (and many phone calls and letters) for HP to fix. As a result, I couldn't use the notebook for more than 2 months after buying it and I had to reinstall everything on it several times. And then, although it's no fault of HP (other than certifying the machine as working under Linux when it didn't), I couldn't use it as a notebook for a long time because of fatal problems with ACPI suspend.

But, finally, after installing Ubuntu Drapper Drake on it after a hard disk crash (due to either hardware disk problem or a very bad bug in JFS driver in Linux and, as hardware seems fine so far, beware), I have a great Linux installation which works completely out of the box without any problems at all so far. In spite of being a loyal long time Debian user I have to admit that Ubuntu turned out to be a much better choice for this notebook and I wholeheartedly recommend it (and, of course, it's still Debian inside). Ubuntu developers have done a great job on their distribution, I'm really impressed by its quality!

Hardware Summary

Hardware Components Status (under Linux 2.6) Notes
Pentium-M CPU Works Supported by speedstep-centrino.ko
ATI OpenGL T2 Works Needs ATI drivers for 3D
Atheros 802.11abg miniPCI WiFi card Works Native driver doesn't work in ad-hoc mode (but Windows driver works very nicely)
ACPI Works Needs recent kernel and acpi-support packages
Mouse (Synaptics touch/trackpad) Works  
Bluetooth Works  
FireWire Works  
Sound card (ICH4) Works Both with OSS and ALSA

Here is the list of devices present on the notebook as seen by Linux.

All in all, this is a great notebook even if a bit heavy one. Linux works great on it, almost all the features are supported out of the box by the recent distributions.

Software Summary

I've only used this notebook with 2.6 kernels, although I don't see why 2.4 wouldn't work on it (except for the ACPI problems). I used several kernels between 2.6.8 and 2.6.15 but all of them invariably had problems with either resuming from suspend or hibernating (or both) and the first, and so far only, one which works for me is 2.6.15-22 from Ubuntu Dapper distribution. It is a pretty standard modular kernel using initrd but, just in case, here is its config file.

I was using XFree 4.3 from Debian initially which needed a separate synaptics driver for the touchpad to work but now use recent Xorg which has nice built-in support for it.

Debian Installation

Base System

During the first installation I'd used the latest available Debian Installer at that time (2004-10-07) which was pre-RC2 version. When I reinstalled it the second time, RC2 has been already released and I used it instead. I didn't notice any difference between the two versions, both worked just fine.

Being too lazy to burn a CD to boot it from, I've downloaded the netboot version, configured DHCP and TFTP on an existing Debian server and let it boot from it. The only problem I had was Debian bug 258998 which doesn't affect only atftpd but all the other TFTPD implementations I tried (vanilla tftpd and tftpd-hpa), maybe it is a limitation of TFTP protocol itself. Anyhow, I've had to do install tftp server on a machine with a single IP address.

Further, you need to press f10 early during the startup process to enter HP BIOS and explicitly enable PXE support in Devices menu, as it was disabled by default. You may also change the order of boot devices to try it first or just enable the boot menu. After doing this, I could boot the installer from network without any problems.

The install went flawlessly, network card (Broadcom NetXtreme Gigabit) was detected automatically and the tg3 was loaded. Installer also detected the IEEE 1394 (FireWire) controller and loaded drivers for it, but I didn't need it at this time.

Update: I've just reinstalled the machine using Ubuntu. The installation (using netboot again) was as flawless as before.

Graphics

The laptop has ATI OpenGL T2-128 video card. XFree autoconfiguration decided to use ati driver for it which did work in 1600*1200 resolution in 24bpp mode. Of course, there is no 3D acceleration with this driver and DRI module doesn't load.

So the next step was to follow these instructions and install Debian packages with ATI driver. This, again, worked without any problems and I'm now using this XF86Config file. Note that fgl_glxgears gives rather low results (~360) compared with the other machines mentioned on the above page, so maybe something still remains to be done.

On the console, neither the standard vesafb nor radeonfb modules don't work. I've also tried vesafb-tng but without any luck, so for now I'm limited to vga16fb which is really a pity on an UXGA display.

2005-01-13:
now radeonfb does work, loading it and fbcon modules resuls in a very nice 200*75 console layout
2006-05-16:
but loading it breaks resuming from suspend and as unloading it is impossible once it's loaded ("module is in use"), you can't use it if you want to use suspend.

Mouse

It is a Synaptic double pointing device (both trackpad and touchpad). On console, gpm worked without any problems with default configuration (PS/2 mouse, all default parameters).

I have also configured XFree 4.3.0 to use /dev/gpmdata as repeater instead of speaking with the mouse directly as I had had bad experience with not doing it in the past. Maybe it would have worked with /dev/mouse as well but as I don't have any problems with it currently, I prefer not to change it.

2005-01-13:
there is also a native synaptics touchpad driver which worked without any problems (provided CONFIG_INPUT_EVDEV is enabled in the kernel as mentioned in its INSTALL file), my XF86Config-4 is such that both pointing devices can be used simultaneously (this requires using CorePointer for the trackpad and AlwaysCore for the touchpad)
2006-05-16:
use synclient included in xorg-driver-synaptics to configure different touchpad parameters (unfortunately there doesn't seem any way to configure the trackpad part of the device which I personally would prefer to use if only the acceleration rate wasn't so slow)

IDE

This model has a Hitachi 60Gb 7200RPM (HTS726060M9AT00) hard drive. UDMA 5 was enabled automatically for it and (crudely) measuring its speed using hdparm -t option resulted in 32 MB/sec. After running hdparm -c1 -m16 /dev/hda, this increased to 36 which, while not very impressive, is still a gain and so I've modified /etc/hdparm.conf to use these options.

There is also a CD-RW/DVD optical drive but I didn't try to write CDs on it yet.

Wireless

You need to use MADwifi driver. There is a Debian package for it and I had no troubles installing it as described.

Unfortunately, I did have a lot of troubles to make it work in ad-hoc mode. In fact, I failed to do it so far, and could only use it in master mode. This means that I'll have to buy an access point to use the wireless network normally instead of using the three machines in ad-hoc mode as initially intended to.

It is interesting to note that the card identifies itself as "Atheros AR5212 802.11 abg NIC" which seems to mean that it should support 802.11a as well. But the madwifi driver only indicates support for 'b' and 'g' modes, so maybe it's just an error in the card description?

2005-01-13:
the Windows driver works just fine with ndiswrapper and for now I use it instead of the native driver.

Bluetooth

Works out of the box: pressing the ``wireless'' button on the keyboard loads all the modules automatically using hotplug and after installing bluez-utils package I could ping my Nokia phone without any problems.

FireWire

Works out of the box using hotplug, when an external disk (LaCie d2 250Gb) is plugged in the built-in 4 pin FireWire (a.k.a. iLink) port, it is recognized by ieee1394 module and appears as a SCSI device which can then be mounted as usual. See Linux FireWire project page for more details.

USB

Same as above, tested with the same disk (SCSI emulation for USB works perfectly too) and with an USB bluetooth adapter.

Sound

Worked by default using i810_audio OSS module and/or snd_intel8x0m ALSA one (the laptop has ICH4 chipset).
Notice that the below instructions are unnecessary under Ubuntu Dapper and probably other recent distributions as the keys work out of the box. But if you need to confiture them on an older system, see below.

Thanks to Marco Gatti for the next tip:

The keys for changing the volume and muting the sound completely on the front side don't work out of the box, but you can easily map them to any commands you want under X11, e.g.:

xmodmap -e "keycode 176 = XF86AudioRaiseVolume"
xmodmap -e "keycode 174 = XF86AudioLowerVolume"
xmodmap -e "keycode 160 = XF86AudioMute"
(this works at least under KDE). To make the settings permanent you need to save the map into some file:
xmodmap -pke > ~/xmodmap.conf
and then read it back using
xmodmap ~/xmodmap.conf
in some startup file.


Also thanks to Tyler J. Wagner for contributing this information:
Debian hotkeys package (currently only available in testing) can be used to map these buttons as well. Here is an example config file for hotkeys defining these special keys to perform their default actions (but you can, of course, assign any action at all to them). Just put this file under /usr/share/hotkeys and add a line
Kbd=nw8000
to your /etc/hotkeys.conf to use it.

PCMCIA

Yenta module loads ok but I don't have any PCMCIA cards to test it with.

IrDA

The module loads, but I don't have anything to test it with.

Modem

This is a so called soft modem, but SmartLink provides a Linux driver for it. There are also Debian packages sl-modem-daemon and sl-modem-source (both non-free) which do work but I had to restart the modem driver each time after dialing as otherwise it died on the second attempt. Except for this I could use it without any problems.

SD Card Reader

Not tested for lack of cards. Apparently not supported under Linux.

Power Management

ACPI

ACPI suspend works fine with the very recent kernels using the standard scripts from acpi-support package.

The suspend key does not work but I didn't even look into it as I prefer to use the lid button to suspend the machine anyhow.

APM

APM suspend works on console but hangs the machine completely when using X and with APM it is impossible (AFAIK) to make the computer go to sleep when the lid is closed and/or power button is pressed (this requires ACPI) and it also seems that APM never spins down the fans and so the computer is much more noisy when ACPI is not used.

Suspend and Hibernation

For now I'm using Software Suspend (version 2.1) which does work provided that you switch to a text VT before hibernating.

Update for Dapper:

Suspend works out of the box with Ubuntu Dapper (although it still switches from and to X VT behind the screens, but who cares).

Update for Feisty:

The best way to suspend and hibernate the machine now seems to be using uswsusp. This machine is not in s2ram white list but s2ram -fmsp works fine and s2disk works out of the box without any options. Suspending using this method is much faster than with the default one and hibernating simply didn't work at all after the upgrade for me.

To make the GNOME power management tools use uswsusp by default without ininstalling the default powermanagement-interface package which, unfortunately, is a dependency of ubuntu-desktop, use this command:

dpkg-divert --rename --divert /usr/sbin/pmi-disabled /usr/sbin/pmi
(thanks to Robin Battey for this hint!).

And add the -fspm options to s2ram invocation in /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux file to make it use the correct options.

ACPID setup

For what it's worth, here are my (trivial) /etc/acpi/events/lid and /etc/acpi/hibernate.sh files which hibernate the laptop when the lid is closed. The default acpid installation already included the scripts to shutdown the system when the power button is pressed.

Hotkeys

The notebook has a few of special keys:

Usage Notes

TODO.

Autonomy

TODO.
Please contact me if you have any comments about this page.