Linux on a HP Pavilion ZE4360

Last updated: 12.12.2003, by Bernhard Steiner,

Some annotations on Windows on a HP Pavilion ZE4360

Kernel with ACPI & software suspend
Network adapters (ethernet and WLAN)
OneTouch keys

Useful links


This how-to gives some configuration steps on how to set up Linux (in my case Debian GNU/Linux 3.0) on the Hewlett-Packard notebook HP Pavilion ZE4360ea. Some technical details of this notebook:

  • mobile AMD Athlon 4 (XP) 2400+ ("Barton") actually running with 1789 MHz, 128 kB L1, 512 kB L2 cache, 266 MHz DDR FSB speed
  • 512 MB DDR-SDRAM with 266 MHz FSB speed (on 2 seperate modules, wow they are Infineon!)
  • 60 GB HDD Toshiba MK6021GAS (see what hdparm -I says)
  • CD-R/W-(24x/10x), DVD(4x)-Combo drive (see what hdparm -I says)
  • integrated ATI Radeon Mobility IGP 320M VGA adapter with shared memory (16-128 MB)
  • SXGA+ TFT display with a resolution of 1400x1050 pixels (not only 1024x768 )
  • ALi chipset with integrated audio controller
  • integrated V92 modem
  • 1x PCMCIA CardBus slot (looks like two slots, but it's only one also for double-height cards)
  • 3,5" floppy drive, of course
  • integrated 10/100 MBit ethernet controller National Semiconductor
  • integrated 11 MBit IEEE 802.11b WLAN (wireless LAN) controller
  • other connectors: 2x USB 1.1, 1x IEEE 1394 Firewire, 1x SVideo-out, 1x VGA, 1x parallel, 1x serial, 1x HP docking station connector
See the complete output of "lspci -vv" here.

As this is the AMD-version of the HP Pavilion ZE4xxx notebook series, there are a few things you should think about before deciding for this specific notebook:

It's getting quite hot after running a while (not only the battery and the bottom of the notebook but also the power pack will get really hot). As a result of this typical AMD heat-effect the battery "only" lasts for about 2-3 hours (depending on what you're doing and what components are active. Hint: Switch off WLAN if you don't need it, this results in a noticeably longer battery lifetime).

A known but yet not explained problem of the HP ZE43xxx series when running on battery (and only in that case!) the notebook produces a very high but not very loud tone when pressing a key or moving the mouse. I read several articles on the net concerning this phenomenon but there seems to be no solution at this moment. I find it not very disturbing, but of course, this is subjectively.
UPDATE: Thanks to the recent BIOS update version KA.M 1.50 for the HP 4360EA this problem is obsolete. Just download and flash the new BIOS and the annoying tone is history! Great job, HP! I didn't know what can be fixed with a simple BIOS update.

Ignoring these small problems you get an excellent equipped (look at that list above!) and very fast notebook from the consumer series of HP which is faster than most other currently available Intel-based notebooks. And all this for a very reasonable price, especially if you compare prices a bit on the internet. I ordered mine on the german website for EUR 1420,- and got it after only 2 days. Good job!

Note that this version of the HP Pavilion ZE4300 series doesn't come with an IrDA interface, which is the only bad thing on this notebook I discovered up to now (I think the ZE4385 would have one).

Up to now I'm very very happy with this notebook, even though installing Linux and as well Win2k/XP wasn't that easy (see also the page on installing Win on this notebook).

The following steps describe a reasonable order for installing Debian GNU/Linux 3.0 on the HP Pavilion ZE4360ea, beginning with compiling a suitable kernel and then going on to the more and more "nice-to-have" features.


Kernel with ACPI & software suspend

Most actual linux distributions ship with common and often handy kernel configurations. Anyway, if you want to enhance your kernel and add very specific features like software suspending, you won't come around building your own kernel. As a purist I recommend this in any case, because you don't have to drag around features that others meant to be helpful for you. Decide this on your own ;-)

The following lines describe step-by-step how to build a kernel with ACPI and software suspend support. ACPI is needed in order to watch your battery fitness e.g. or to use the brightness buttons (fn-f1, fn-f2) on your notebook. Software suspend is a very sophisticated feature you probably know very well from Windows, there it's called "hibernate": it writes your whole memory to the hard disk before turning off the power. When you startup your machine again, memory is restored from disk again so that you can continue working exactly where you stopped before.

First, get a actual kernel source (latest stable release is 2.4.21, which I took and used for the example here, get it here). Apply the ACPI patch (version acpi-20030619) first and then the software suspend patch (version 1.0-2.4.21):

$ cd /usr/src
$ tar xfj linux-2.4.21.tar.bz2
$ ln -s linux-2.4.21 linux
$ ln -s linux a # as the patch wants to get the source files in a directory called "a"
$ ln -s linux b
$ gunzip -c acpi-20030619-2.4.21.diff.gz | patch -p0
$ tar xfzv swsusp-1.0-2.4.21.tar.gz
$ ln -s linux linux-2.4.21-acpi20030619
$ ln -s linux linux-2.4.21-acpi20030619-1.0-pre17
$ bunzip2 -c swsusp-1.0-2.4.21/acpi-option.bz2 | patch -p0 # to be able to sw suspend using "echo -n 4 > /proc/acpi/sleep"
$ bunzip2 -c swsusp-1.0-2.4.21/swsusp-1.0-2.4.21.bz2 | patch -p0

Now go to the kernel source dir, configure your kernel (make menuconfig), choose all you need, especially "General setup", "Software Suspend" (if applied) and "ACPI Support":

[*] ACPI Support
<*>   AC Adapter
<*>   Battery
<*>   Button
<*>   Fan
<*>   Processor
<*>   Thermal Zone
and build your kernel and modules (make dep, make bzImage, make modules, make modules_install, make install). For a more detailed manual on how to build a kernel in general, take a look at the kernel HowTo.

You can also download my kernel config file and load it using the menu item "Load an Alternate Configuration File".

As append-line in lilo.conf I'm using the following: append="hdc=ide-scsi nomce idebus=66 resume=/dev/hda3"
The latter sets the resume partition for software suspend to /dev/hda3, my actual swap partition. If you don't add this kernel parameter, software suspend will not work!
To set the console to a resolution of 1280x1024, add this line to lilo.conf: vga=794
A full listing of all available VESA modes for the standard console can be downloaded here.

After installing the kernel with the ACPI features enabled, the power on/off-button is automatically mapped to a system halt, no more to the cruel "zzap-the-power-is-really-off". Also the brightness-buttons already worked with only ACPI turned on.
Using the ACPI daemon (acpid), you can assign special behaviours to the power button and also to the lid switch. E.g. add a file called /etc/acpi/events/lid with the following contents in order to hibernate when closing the lid:

event=button[ /]lid



What you can do in any case: Run your XFree server in VESA mode, this works for sure. Disadvantage: It's very slow, especially when running a resolution of 1400x1050 which is supported by the HP Pavilion ZE4360. The resolution of 1400x1050 is used even with or without a special ModeLine for this resolution (ModeLine "1400x1050" 107.85 1400 1448 1500 2000 1050 1058 1070 1150 ) .
To get the touchpad working I've just chosen the ImPS/2 protocol and even the scrollarea worked at once!! Great!
For configuration of the special OneToch keys see below.
My config file XF86Config-4 running XFree 4.3.0 in VESA mode.

From version on XFree supports the ATI Radeon Mobility graphics chip which is used in the HP Pavilion ZE4360. In principle, that means 2D graphics are accelerated, 3D graphics NOT! So if you're happy with only 2D acceleration you have finished now. Just use the option Driver "radeon" in the device section of your XF86Config-4 (take a look at my example XFree configuration file).

If you're also keen on 3D acceleration support, you will have to take on of the latest developement versions from XFree, starting with XFree and patch the sources before compiling it by hand. So try this solution only if you are familiar with patching sources, compiling XFree and so on. What you also have to do: Patch your kernel and build a DRM kernel module for your ATI Radeon card. Only after having loaded the DRM kernel module, XFree can use DRI (direct rendering interface), which takes over the part of 3D acceleration.

Here's how I did it:


Network adapters (ethernet and WLAN)

  • Ethernet controller: this is chip called National Semiconductor DP83815, so only load this kernel module and it's OK: modprobe natsemi
  • WLAN (wireless LAN) interface: download, compile and install the latest (stable) version of the linux-wlan-ng package including the corresponding kernel modules. You only need to build the prism2_pci kernel module, not the ..._usb, nor the ..._pcmcia. (make all, make install) After having built and installed the modules (prism2_pci.o and p80211.o) and the wlan scripts (wlanctl-ng, ...) you should configure /etc/wlan/wlan.conf (you can take mine as a sample) and /etc/wlan/wlancfg-your_ssid.
    If your distribution (mine: debian) already provided a start/stop-script, you're now able to start wlan by typing /etc/init.d/wlan start. Probably you will also need to edit your /etc/network/interfaces and do a ifup wlan0.
    Currently I'm using my HP Pavilion in combination with the D-Link DWL900AP+ access point with 128 bit WEP encryption and shared key enabled. Works fine, except for the rather poor distances you can bridge. Maybe the internal WLAN interface of the notebook has a very poor antenna...

Update: Bought a 12 dbi antenna (from for the access point and now got much higher distances covered.



Important: Very soon you should turn the option in bios "USB legacy support" to OFF, otherwise your machine will crash when trying to load a USB kernel module.
After disabling the legacy support you only need to load the kernel-module "usb-ohci" (modprobe usb-ohci) and that's it. According the USB devices you have, you might probably want to setup usbmgr or hotplug for automatically loading the right module when plugging in an USB device. But that's another story...! I tested my Sony Clie on the USB port (with module usb-storage for accessing the MemoryStick) and it worked at once.



Quite easy: just load the module "trident" (modprobe trident) and it's OK.


OneTouch keys

If you want to use the cool blue lit keys on your notebook for launching your favorite email program, browser and so on, you have to use at least the kernel module named "omnibook" (get it here: "omnibook kernel module" and "omke-1.0"). Compile the omnibook kernel module according to doc/INSTALL in the omnibook-dir. Compile the omnibook module seperatly and don't do a "make kpatch", as it may screw up your kernel source dir (it did so for mine).

After successfully compiling the module load it with
$ modprobe omnibook

OneTouch keys should already be enabled by default, but we want to go really sure, so enable them explicitly by using the little perl-script (get it here: "omke-1.0")
$ -k 1

As a first shot the OneTouch keys now produce so called scancodes. To use them as you want, you have to assign them also "keycodes". I did this using setkeycodes in a small sript, which I call at bootup time straight after loading the omnibook-module. Also put the "enable OneTouch keys" directive here. See your Linux distributions doc how to add a script at bootup time (e.g. for debian: put it in /etc/init.d and make a link to it in the according runlevel-dirs e.g. /etc/rc5.d/S45omke)


  • OneTouch for KDE (tested with KDE version 3.1.2)
    OK, now all the keys are already available under KDE control center for assigning it e.g. to reboot, logoff, etc. First, choose "Hewlett-Packard Omnibook XE4xxx and ZE4xxx" as your keyboard model in KDE control center (module "Keyboard layout"). And then you will be able to assign the mentioned actions like logoff etc. in the module "Keyboard shortcuts".
    Annotation: For some unknown reason the KDE assigned keys sometimes work for me and sometimes not. :-( Didn't find a cause yet. If you have a solution, let me know!

  • OneTouch for X in general
    In order to start a real program when pressing one of the keys, another program is needed, e.g. "hotkeys" which comes e.g. with Debian woody. Here are the customized config files for hotkeys:

    /etc/hotkeys.conf (almost original, just enabled the HP Pavilion definition as default definition and the OSD)


  • If you define a OneTouch-key for both, for hotkeys and for KDE, the KDE definition seems to have higher priority. The hotkeys-command associated with it is then NOT executed.
  • Sometimes hotkeys seemed to crash something, because after playing a bit with the volume/mute-keys it happened serveral times that the keyboard wasn't reacting at all. But the mouse was OK so I could at least log off KDE and then press the power button to halt the machine more smoothly.
  • If you don't load the omnibook kernel module, some keys (for me it was the Mail and the WWW-key) already work within the KDE shortcut assignment and hotkeys, but not all!
  • To automatically launch the hotkeys program when starting KDE, e.g. add a file to your
    $home/.kde/Autostart/hotkeys :
    [Desktop Entry]
    Exec=hotkeys -b
    Name=OneTouch hotkeys



This notebooks has an integrated Conexant HSF softmodem chip, so download the suitable driver (for HSF chipsets), which is available only directly from Conexant and install it. This requires that you already have a configured kernel source. See Conexant driver install file, very easy and worked at once for me.



Great improvement for this section: PCMCIA now works completely, thanks to Nocho!! Take a look at his howto and setup PCMCIA according to his document.
Finally it also worked for me running kernel 2.4.21 and pcmcia-cs 3.2.5.


Useful links

TuxMobil listed Counter

© 2004 Bernhard Steiner