Debian GNU Linux (Etch) on an HP compaq nx6325 laptop

Featured link of the year: TuxMobil - Linux on laptops, PDAs and mobile phones

Latest Update: 26 May 2007

NEW: Internal wireless works since kernel 2.6.21.
patch for 2.6.20 to make the internal wireless work without ndiswrapper!
Install the firmware as described in the documentation of bcm43xx-fwcutter.
Activate everything belonging to BCM43xx and Software MAC add-on in the kernel
and give me feedback on this patch: mail at puchalla-online dot de

Introduction

This document contains some hints about the HP compaq nx6325 laptop (with Turion X2 processor).
There are other pages about this laptop, just go to TuxMobil.
I will not cover all details about this laptop, just what I think is interesting.

Features

- AMD Turion X2 1.6 GHz dualcore processor
- 15" display with 1400x1050 pixels
- 1 GB RAM
- 100 GB S-ATA HD
- Pioneer DVD+-RW DVD-RAM CD+-RW lightscribe writer
- Fingerprint sensor
- Touchpad with scrolling area
- Integrated WLAN
- 3 USB 2.0 ports
- Firewire port
- Weight of 2.6 kg
- Price: 900 €

Installation

I used Kanotix 2006 Easter RC4 to install Debian GNU/Linux via kanotix-installer.
Here is my harddisk layout, I added an ext3 and a swap partition into an extended partition by using qtparted.
sda2 is a hidden system partition, you better do not touch it.

/dev/sda1 *   1  7626 61250791+  7 HPFS/NTFS
/dev/sda2 11151 12161  8119440   7 HPFS/NTFS
/dev/sda3  7627 11151 28307475   5 Erweiterte
/dev/sda5  7627 11020 27262273+ 83 Linux
/dev/sda6 11021 11151  1045138+ 82 Linux Swap / Solaris

Hardware

lspci says:

0000:00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 10)
0000:00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
0000:00:04.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
0000:00:05.0 PCI bridge: ATI Technologies Inc: Unknown device 5a37
0000:00:06.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
0000:00:12.0 IDE interface: ATI Technologies Inc ATI 4379 Serial ATA Controller (rev 80)
0000:00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller (rev 80)
0000:00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller (rev 80)
0000:00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller (rev 80)
0000:00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 81)
0000:00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI (rev 80)
0000:00:14.2 Audio device: ATI Technologies Inc SB450 HDA Audio (rev 01)
0000:00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge (rev 80)
0000:00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge (rev 80)
0000:00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
0000:00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
0000:00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
0000:00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
0000:01:05.0 VGA compatible controller: ATI Technologies Inc RS482 [Radeon Xpress 200M]
0000:02:01.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03)
0000:02:04.0 CardBus bridge: Texas Instruments: Unknown device 8039
0000:02:04.1 FireWire (IEEE 1394): Texas Instruments: Unknown device 803a
0000:02:04.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
0000:02:04.3 0805: Texas Instruments: Unknown device 803c
0000:30:00.0 Network controller: Broadcom Corporation BCM4310 UART (rev 01)

Things that do not work (yet):

- Software hotkeys (they do not work out of the box in XP either)
- Perfect fan control. Please load fan, thermal and powernow-k8
  and run this script at boot time, it will improve fan control:
 test -e /proc/acpi && watch -n 9 'acpi -t' &> /dev/null &
  But still, maybe your CPU will get too hot! Boot with acpi=off to be on the safe side!

Reboot problems:

- If booting the BIOS takes long and/or you cannot type anything, unload psmouse before reboot and halt!
- If halt hangs, remove ndiswrapper before halt and reboot! But better use bcm43xx from kernel 2.6.21 or better!

Things I did not test:

- Firewire (said to work)
- PCMCIA slots (said to work)
- Bluetooth (said to work)
- ATi graphics drivers (said to work)
- Modem (said to work with driver from www.linuxant.com)
- Fingerprint sensor (said to not work)

Things that do work with my kernel-config:

Suspend to RAM

Works since kernel 2.6.21!
You need radeontool, vbetool, i915resolution and hibernate for this.
My /etc/hibernate/ram.conf
You may need to change the last three lines, it's for reenabling the internal wireless.
You may need USuspendRamForce yes in /etc/hibernate/ususpend-ram.conf
My /etc/acpi/events/lid
My /etc/acpi/actions/lid
And in /etc/X11/xorg.conf:

Section "Device"
[...]
Option "VBERestore" "true"
EndSection

After all this, restart acpid and X and try hibernate-ram.
Wake it up with the power button.
If it works, close the lid and try again.
Feedback wanted!

Fan control

Works since kernel 2.6.21.

Networking

The integrated ethernet card worked out of the box, I used it with 100mbps.
Integrated wireless networking works with ndiswrapper, unload it before halt and reboot!
NEW: Internal wireless works since kernel 2.6.21.
patch for 2.6.20 to make the internal wireless work without ndiswrapper!
Install the firmware as described in the documentation of bcm43xx-fwcutter.
Activate everything belonging to BCM43xx and Software MAC add-on in the kernel
and give me feedback on this patch: mail at puchalla-online dot de

CPU speed step

I use powernowd -m 2 for less heat.
load the modules powernow-k8 thermal at boot time.

Battery monitoring

load the module battery at boot time.

CPU temperature monitoring

load the modules i2c-piix4 lm90 eeprom k8temp at boot time.

Memory card reader

NEW:
For kernel 2.6.21 do this:
Get latest tifm driver from here
Untar it and type make && make install under the running kernel 2.6.21.
Type rmmod tifm_sd; modprobe tifm_sd or reboot.
Now /dev/mmcblk0p1 should be available, no more setpci usage here.
Note: I don't get a notification when inserting the card, but I can mount it nevertheless.
For suspend you need to unload tifm_7xx1 tifm_sd tifm_core before!
Something shows up in /var/log/messages.
Give me feedback if it works for you or what you did to make it work!

OLD:
Works since kernel 2.6.17
You need to load the modules sdhci, mmc_block and mmc_core.
However, after every boot you need to do:
setpci -s 02:04.2 4c=0x22
where 02:04.2 is the PCI address of your cardreader.
You will get the PCI address with /sbin/lspci | grep "Mass storage controller".
I got this info from here.

Display

I booted with screen=1400x1050 and it worked ever since without fiddling.
You better use radeon as driver in /etc/X11/xorg.conf instead of vesa.
You really want to switch to 120 dpi in /etc/kde/kdm/kdmrc and /etc/kde/kdm/Xservers.
You get 3D acceleration with the unstable ATi-Driver only, but I need stability. ATi graphics driver suck big time.

Soundcard

Sound works fine with ALSA 1.0.12rc3, I had to install it manually.
The version with Linux 2.6.17.5 is too old.
Create /etc/modutils/mythings:

alias snd-card-0 snd-hda-intel
options snd-hda-intel model=hp position_fix=1 enable=yes

and run update-modules.modutils.

Using Touchpad and USB mouse at the same time

This works out of the box with Kanotix. You can even unplug and replug the mouse in operation.

Touchpad scrolling

This works out of the box with Kanotix.

Modules to load at boot time:

# main hardware
ac
fan
button
thermal
powernow-k8
container
battery

# WLAN
p80211
#ndiswrapper
bcm43xx

# MISC
8250
capability
fuse
pcspkr
psmouse
nls_cp437
nls_iso8859-1
af_packet
autofs4
lp
parport_pc

# card reader
tifm_sd

# USB
usbcore
ehci_hcd
ohci1394
ohci_hcd

# timidity MIDI sound server:
snd_seq
snd-seq-device
snd-seq-midi
snd-seq-oss
snd-seq-midi-event

# I2C adapter drivers
i2c-piix4
# Chip drivers
lm90
eeprom
# Warning: the required module k8temp is not currently installed
# on your system. For status of 2.6 kernel ports check
# http://www.lm-sensors.org/wiki/Devices. If driver is built
# into the kernel, or unavailable, comment out the following line.
#k8temp

Should you buy this laptop?

Yes! The display has a nice high resolution and the Turion X2 is really fast, KDE flies.
Including all other features for now less than 800 €!
The fan control will be usable soon, I'm sure.
HP is a good choice for Linux, they do care.
Their service replaced my malfunctional battery within one day free of charge.


Author: Jochen Puchalla
(check the email address!)