HP Pavilion ze4100 Linux Laptop How-To

Preface

I own an HP Pavilion ZE4115 but I'm assuming these instructions will work the same for all ZE4100 series laptops (if not other ZE series laptops) since the variations between the ZE4100's seem to be different options.

Coverage

I intend only to discuss the items of interest when installing Linux on this model of Laptop.  Anything not discussed herin is either common to Linux on most laptops or Linux on PC's in general.  For instance, PCMCIA and Video will not be discussed.   This brand of laptop uses common hardware for these components, and others have put together more inclusive and verbose documentation for this type of hardware.

Hardware Issues Part I

I personally use Slackware, so I was able to install linux fully without running into this error.  It wasn't until after my first boot when I began setting up peripheral hardware that I first experienced this problem.  However, for my own muse, I started the Mandrake 9.0 installation and sure enough the installation failed when Mandrake tried to autodetect my hardware.

Basically what happens, is Linux (or the installation) will Kernel panic:

Bank 3: b40000000000083b at 340000000000083b
Kernel panic: Unable to continue

With some research, I found out that this is a Machine Check Exception.   Apparently the Linux Kernel does intermittent hardware checks, and panics when something is out of whack.  Anyway, all of my hardware runs fine under the default OS (to remain nameless - use your imagination), so it doesn't actually appear to be a hardware problem.  So with a little more research I discovered that there is a Kernel parameter that'll solve this pesky problem.  Just add nomce to lilo.conf (or the bootloader at install time).

add (or modify) the following in the global section of /etc/lilo.conf:

append="nomce"

or at boot time (especially at installation):

boot: bare.i nomce

Hardware Issues Part II

After setting up my hardware, I then tried setting up GPM and X.  Both of these were causing terminal lock ups.  I could still SSH into the box remotely, but my keyboard and mouse seemed to stop responding.  I noticed that modprobe usb-ohci seemed to help, this provided a crucial hint, but still didn't solve this issue fully.   It was with a suggestion from my buddy Dave that finally resolved this issue.   Apparently the BIOS comes factory preset with Legacy USB Support Enabled.  I'm not exactly sure what Legacy USB Support is, but disabling it solved the problem, and USB still works in Linux.

Sound

The ZE4100 comes equipped with an Acer Laboratories Inc. [ALi] M5451 PCI sound board.   This chipset uses the Linux trident module:

/sbin/modprobe trident

I still have yet to figure out how to get the external volume controls to work, but the sound works great and mixer software works the same as any other sound board under Linux.

Update:  I was finally able to get the external volume controls to work.  For more information, see Keyboard, QuickLaunch Buttons, and Volume Controls below.

Onboard 10/100 Ethernet

The ZE4100 comes equipped with a National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller.  This chipset uses the Linux natsemi module:

/sbin/modprobe natsemi.

CD+RW/DVD

The ZE4100 comes optionally equipped with a Toshiba DVD-ROM SD-R2212, ATAPI CD/DVD-ROM drive.  As with any machine equipped with a CD+RW drive, append the kernel with ide-scsi.  In the global section of /etc/lilo.conf modify the append:

append="hdc=ide-scsi nomce"

Next, remove /dev/cdrom and /dev/dvd symlinks:

rm /dev/cdrom
rm /dev/dvd

Next, create new symlinks:

ln -s /dev/scd0 /dev/cdrom
ln -s /dev/scd0 /dev/dvd

Slackware, and most other distributions provide cdrtools for doing cd burning. However, due to the DMCA and other factors, not many provide functionality for DVD playback out of the box. For this, you'll need LIBDVDREAD and LIBDVDCSS. Everything you need can be found on OGLE's website. They even have Slackware packages.

Integrated Touchpad

The Integrated Touchpad uses the IMPS/2 mouse protocol and also supports scrolling.  You'll have to update GPM and XFree accordingly.

/etc/X11/XF86Config:

# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************

Section "InputDevice"

# Identifier and driver

Identifier "Mouse1"
Driver "mouse"

Option "Protocol" "IMPS/2"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "4 5"

GPM:

/usr/sbin/gpm -m /dev/mouse -t imps2

Keyboard, QuickLaunch Buttons, and Volume Controls

For keyboard configuration, I used the following XWindows configuration which I found here.   I updated my keboard setting in my /etc/X11/XF86Config:

Section "InputDevice"
   Identifier   "ze4145 keyboard"
   Driver       "keyboard"
   Option       "AutoRepeat"             "500 30"
   Option       "XkbRules"               "xfree86"
   Option       "XkbModel"               "ze4xxx"
   Option       "XkbLayout"              "us"
EndSection

To get the QuickLaunch Buttons and the Volume Controls to work, I used OMKE.  After compiling the omnibook kernel module and setting it up to be loaded automatically at boot time, I used kmenuedit and kmix in KDE to assign these external buttons. 

I've found that the omnibook module doesn't seem to work without APM support compiled into the kernel.  I've also found that the QuickLaunch Buttons will only work if the correct keyboard layout is chosen in KDE Control Center.  Use KDE Control Center ->  Regional & Accessibility -> Keyboard Layout and change "Keyboard model:" to "Hewlett-Packard Omnibook XE4xxx and ZE4xxx".

In kmenuedit, select the application you wish to assign to a QuickLaunch Button, then click the button next to "Current shortcut key:"  Now, simply press the QuickLaunch Button you wish to assign to the app.  Apply the changes, and you are all set.

In kmix, right-click on the Master Control slider, and select "Define Keys...".   Select "Decrease Volume" and then click the button in the "Shortcut for Selected Action" box.  Finally press the decrease volume button on the side of your laptop.  Repeat this process for the other two buttons.

Performance Enhancement

The ZE4100 comes equipped with a 66mhz IDE bus.  To take advantage of this, we need to add (you guessed it) another kernel parameter.  The parameter is idebus=66.   In the global section of /etc/lilo.conf modify the append:

append="hdc=ide-scsi nomce idebus=66"

Quick Summary

Kernel Parameters:

hdc=ide-scsi nomce idebus=66

Modules:

/sbin/modprobe trident
/sbin/modprobe natsemi

Mouse is scrollable and uses the IMPS/2 protocol.

Copyright ©2002-2014 Wade Wassenberg
Last Modified: June 28, 2004. 
If you have questions, comments, or if you find any part of this document to be inaccurate or incorrect, please submit your feedback to webmaster@wass.homelinux.net.