Linux on the hp pavilion ze4420

For reference - unless otherwise noted, my experiences are with very cutting-edge source code and patches; most of the hardware on this laptop that does work is working for me with a rather heavily-patched 2.6.0-test3 kernel. I provide links to the patches that I'm using, of course, and my kernel configuration file is available for you to use if you so desire.

I'm using Gentoo Linux. I have no idea if Red Hat installs properly, or Mandrake, Debian, SuSE, or any other distro.

Sound

Integrated sound is well-supported by both the OSS "trident" module and the ALSA "snd-ali5451" module. No extra hassle or anything. Sound quality is quite nice, integrated speakers are surprisingly loud for a laptop (although bass is of course rather nonexistent).

Ethernet

Integrated ethernet also Just Works (TM) for me, using the "natsemi" module provided in the kernel source tree.

Ultra DMA

The hard drive controller is supported by the kernel if you enable ALi IDE chipset support. Of course, it's a laptop hard drive, so it's not exactly fast anyway (hint: the drive speed is limited much more than the bus) but the UDMA seems to work just peachy.

USB

The USB controller is an ALi OHCI chipset, well-supported by the "usb-ohci" module. I have read tons of problems from other people with very similar laptop hardware stating that it is highly recommended to disable "Legacy USB support" in the BIOS, and I wholeheartedly agree with this.

ACPI

ACPI is rather new in the kernel, but it seems to work very well here. I can check battery status, AC adaptor status, the temperature of the processor, and various other useful settings that ACPI supports. The system sends all of the proper events for things like the removal of the AC adaptor and the closing of the lid. No complaints here. (Again, remember that this is with 2.6.0-test3. No idea how things are on the 2.4.x side of the fence.)

PowerNow

Compiling the kernel with "cpufreq" support, and enabling the "userspace" governor, I can choose between 'powersave', 'performance', and 'userspace' processor modes. 'powersave' obviously is the low-power battery mode; for me it drops the CPU down to 1.064 GHz and seems to power down a few of the other devices on the bus as well. 'performance' ramps the speed up to the full 1.795GHz and puts everything else on full throttle as well; I've had the temperature on the CPU hit 80 degrees Celsius with this setting while compiling particularly large projects.

The 'userspace' mode, however, is the most interesting, as it allows me to choose between 1.064GHz, 1.33 GHz, 1.463 GHz, 1.596 GHz, and 1.795 GHz speeds. Works perfectly as far as I can tell; lowering the speed also lowers the voltage, which lowers the heat coming from the CPU fairly effectively.

PCMCIA

PCMCIA works beautifully with the "yenta_socket" module from the kernel, with one caveat: You will probably want to alter your /etc/pcmcia/config.opts file to include these lines instead of the "exclude irq" sections, because otherwise, inserting some PCMCIA cards (in my case, anything using the "orinoco_cs" driver) will hardlock the machine, requiring a hard reset.

/etc/pcmcia/config.opts:
{...}
exclude irq 1
exclude irq 2
exclude irq 3
exclude irq 4
exclude irq 8
exclude irq 9
exclude irq 10
exclude irq 11
exclude irq 12
exclude irq 13
exclude irq 14
exclude irq 15
{...}

I haven't systematically removed any of these and figured out exactly which ones are required and which ones aren't; suffice it to say with these lines in my /etc/pcmcia/config.opts, my machine now works with every PCMCIA card I've thrown at it. YMMV. (For good measure, here's my /etc/pcmcia/config.opts file.)

DVD/CD-RW

mplayer, my personal preference when it comes to playing videos on Linux, works great with the included DVD/CD-RW drive. Burning CDs with cdrecord and the "ide-cd" module (in other words, without SCSI emulation or "ide-scsi") works perfectly here - I have yet to burn a single coaster.

XFree86

XFree86 has probably been the biggest time-sink on this laptop so far. However, after a lot of annoying hassle and quite a bit of work, I've managed to get everything X-related that I can think of to work with this laptop - the AGP chipset, 2D acceleration (no VESA here!), 3D acceleration with very VERY experimental patches to XFree86 and an experimental "radeon" kernel module, the Synaptics touchpad, including the scrollpad on the right-hand side as well as the multi-finger button support. All in all, I'm very pleased with it, but it is NOT for the faint of heart. If you aren't experienced with patching, compiling things from source, and troubleshooting, I would not recommend that you use Linux on this laptop just yet.

However, if you're determined to get it working, download the patches I've provided here (for convenience only; I didn't write any of these), and grab my XF86Config file. Good luck and may the Force be with you.

Synaptics Touchpad

Using the driver I found for 2.6.0-test2, with this XFree86 "synaptics" input driver, the touchpad works perfectly with all of its features. Vertical and horizontal scrolling areas function as expected, and multi-finger tapping produces different button keypresses (tapping two fingers at the same time produces a middle-mouse-button keypress, and three fingers simultaneously will produce a right-mouse-button keypress).

ATi RadeonIGP 320M

The AGP chipset included on this laptop isn't supported by the stock 2.6.0-test3 kernel source; however, using this patch the AGP chipset is properly detected and has worked flawlessly so far. I'm using AGP 4x.

ATi Radeon Mobility U1

The integrated Radeon Mobility can be tricked into working in XFree86 4.3.0 for 2D acceleration. Using snapshots from the development tree of XFree86, as well as this patch from the XFree86 Bugzilla, I have gotten both 2D acceleration and 3D acceleration working on the laptop. I had to add 'noirqdebug' to my kernel's boot parameters for 3D acceleration to function properly; if I didn't use that flag, the "radeon" kernel module (from XFree86, not the one included with the kernel; note that the "radeon" kernel module from XFree86 needs this patch to work properly) died after a few minutes of proper 3D acceleration with an error that stated the system was "Disabling IRQ 10."

Again, my XF86Config file is also available if you're interested in using it. If it causes your laptop to burst into flames, I'm not responsible; but tell me about it so I can get a good laugh out of it anyway ;)

Any comments, questions, contradictory information, hints, or other general communication aimed at me will probably find me fastest at clee@kde.org.