Slackware 10.0 on the hp Pavilion ZD7168cl
using Kernel 2.4.26 and Kernel 2.6.7

You can use this however you like, but I'm not responsible for what happens

Introduction:

Since Linux On Laptops really helped me get my system working and I don't think there are enough enteries for this line of laptops I've decided to make an entry myself.

I will just briefly mention that slackware linux installed and ran easily and without any special requirements.  In fact, it initially found and configured the same amount of hardware as XP did.  This really suprised me since I expected windows to find and configure everything automatically, that being what people pay for, after all.  For example, my XP configuration of the wireless card was almost as hard as under linux.  However, this is a tangent since the page is dedicated to the more interesting and useful, linux side of things.

My goal is to install Slackware 10.0 dual booted with Windows XP Home (since the thing came with the laptop).  First I plan on trying to use the 2.4.x kernel and see what works.  Next I will install a 2.6.x kernel.  The only thing that I didn't get configured right using 2.4.x was the sound card.  I was able to get it to work using the 2.6.x kernel and I am fairly certain that disabling a particular module in the 2.4.x kernel will also get the sound card to work. THE WIRELESS CARD WORKS!

The next section outlines the main sections of the page.

Overview:

Hardware - list the hardware, color coded with the current functionality status.
Power Management - details what power management I used and how.
Install - I describe briefly how I installed the slackware linux/windows XP duel boot.
Setup - describes how I installed (or how I failed to install) the components.
          Subsections of Graphics, Audio, Touch-Pad (and usb-mouse).  Anything that doesn't have a section here works (or doesn't work) automatically with the standard slackware install.

Hardware:

Green indicates that it works,
Violet, that I havn't tried to make it work,
and Red, that I was unable to get it to work.

Processor:
P4 with HT

Drives:
80GB EIDE hard drive
CD-RW/DVD-ROM combo

Visual:
17.0" WXGA+ WVA TFT (1440 x 900) display
NVIDIA GeForce FX Go5600 graphics with 64MB DDR

Communication:
Integrated 54g wireless LAN (Broadcom Corporation BCM94306 802.11g)
Integrated 10/100BASE-T Ethernet LAN
Integrated v.90/v.92 56K modem

Audio:
16-bit Sound Blaster® Pro-compatible audio

Input:
Notebook keyboard
Touch Pad with on/off button and dedicated vertical scroll pad

Ports:
5-in-1 integrated digital reader for Secure Digital, MultiMedia, Memory Sticks, Memory Stick Pro or SmartMedia cards
One Type I/II/III PC card slot with 32-bit card bus
4 USB 2.0 ports
1 Parallel SPP/ECP standard interface
1 port replicator connector
1 VGA (15-pin)
1 TV-Out (S-video)
1 IEEE 1394 (Firewire)
1 FIR (Fast Infrared

Power Management:
Initially, slackware comes with both apm and acpi disabled.  The only real problem this causes, that I can tell, is that the computer does not automatically turn off at the end of the shutdown sequence.  Additonally, I cannot determine the amount of battery life, see cpu temperature, change the monitor lighting, etc.  However, this is all topping on the cake in my option, as long as the system works.

I use acpi in the 2.6.x kernel.  This enables all the features that one would expect; however, I have not tried enabling suspend in the kernel.

Install:
The easiest way to install the system is to partition using linux, install windows XP in one of the partitions, and then install slackware.
insert slackware 10.0 disk 1 and boot up.
Once the boot sequence leaves you at the prompt use cfdisk to partition the drive.  My final partition table looks like this:

    hda1        Boot        Primary   W95 FAT32 (LBA)                  20003.89
    hda2                    Primary   Linux ReiserFS                   15002.92
    hda3                    Primary   Linux swap                         509.97
    hda4                    Primary   Linux ReiserFS                   44507.00

windows will automatically wipe the MBR and set its partition as the bootable one when it is installed.  For this reason, it is easiest to install windows first, and then install slackware.

Reboot the machine using the windows XP disk.
Follow the instructions to install XP on the partition you created for windows.  I used the FAT32 file system because I wanted to be able to write to my windows partition from linux.  If you use NTFS you will only be able to read information from the windows partition but not write to it.  However, be aware that FAT32 is not as secure as NTFS.

After formatting the drive and placing a basic system on your disk the installer will ask you to remove the windows CD and reboot.  Do this.  Jump through the rest of the hoops and eventually you end up with windows XP, congratulations.

After this reboot using slackware 10.0 disk 1 again.
This time when you end up at the prompt type "setup" and go through the installer.  (be aware that Cancel does not always go backwards).  I grew up playing rpgs, where one needed to explore every nook and crany in the game.  I suggest NOT doing this with the slackware installer, it will do very strange things when you do things in a non-standard order.

Setup:

Graphics:

Slackware does not start an X windowing session by default.  Therefore after booting up it is necessary to log in as the user you wish to start X as and type "startx".  Alternately log in as root (or su to root) and type "init 4".  Note that runlevel 4 is the graphical runlevel in Slackware.  Most other distributions use runlevel 5 for graphical mode.  To do this automatically at each boot simply edit /etc/inittab and change the first uncommented line which should look like this
id:3:initdefault:
to
id:4:initdefault:


Installing the NVIDIA driver:

Download the NVIDIA driver from http://www.nvidia.com/object/linux.html.  From this website click on the latest version of the driver for IA32 for "Graphics Drivers".  Once downloaded, execute the driver as root while there is no X Windows session open and the driver will install.  This is a very easy install, thank you NVIDIA for the great Linux support.  You will have to re-install the driver every time you recompile the kernel.

Audio:

Getting Audio to work is not as easy as it should be.  The problem for me was that both the sound card and modem are sound devices.  In my case, however, the modem was loading before the sound card, causing my system to try to play all music on the modem.  The way I fixed this is by disabling the modem module.  It should be noted that the modem will not work after this module is removed.  Since I don't care about the modem, this is a viable solution for me.  Just delete the modem's module in /lib/modules/ .  I can't remember the name of the module but it is something like i810m.  "cd /lib/modules/; find | grep -i i810m" should find it.  Make sure NOT to delete the module i810 (without the m) since this is the sound card's module.  After rebooting the system run "alsaconf" as root.  You should be able unmute the soundcard using "rexima" and raising the general volume and pcm volume.  Make sure to never max out either the general volume or volume since this causes distortions.  I had trouble using other mixers.  It should also be noted that I am using ALSA to do all of this.

Touch-Pad (and usb-mouse):


The touchpad is really nice.  There is an X11 driver that gets the scroll wheel and tapping to work correctly.  This is the nicest touchpad I have ever seen.  You can download this driver at http://w1.894.telia.com/~u89404340/touchpad/.  I can't remember how I installed it, but it was pretty easy.  This is my current xorg.conf file.  It may require some tweaking to get to work on your system.  For example the usbmouse and the synaptics touchpad may not be found in the same place in your /dev directory.  However, it should give a good example of what needs to be included to get both the touchpad to work and a hint as to how to configure X to use the NVIDIA driver.

Wireless:

The wireless card works using ndiswrapper.  I used version 0.8 with the following XP driver (SP23107A.tar.gz).  I can't remember exactly how to install ndiswrapper; however, the INSTALL file is rather well written.  In this respect I think it is just important that I state that it does work and what programs I used to get it to work.  The reader can figure out the details.

Recompiling the kernel:

Compiling the kernel is a very useful thing to learn to do.  It really isn't nearly as difficult to do as I have been lead to believe.  The most important trick is to start with a configuration file for a distribution.  Do not use the default configuration file which ships with the kernel source.  The most basic changes you need to make to this kernel is to remove support for the modem (since it interferes with the sound card) and to make sure that support for your root filesystem is compiled into the kernel (not loaded as module).  As I found out the hard way, making a minimalistic kernel will cause you problems eventually.  For example, I originally removed all support for SCSI devices in my kernel since I have no such devices.  However, I didn't realize that a usb memory stick needs SCSI drivers.  Therefore, I was unable to use my memory stick when I needed it.  Leaving most drivers as modules is usually perfectly acceptable.  They don't take up much space and don't slow down the kernel when they aren't loaded.  The only other modification which you should strongly consider is compiling optimizations for your particular processor.  In my case I tuned the kernel to running on a P4 with HyperThreading.  My 2.4.26 kernel configuration file (for P4), config2.4.26. My 2.6.7 kernel configuration file (for P4 with HT and base Filesystem ext2), config2.6.7.

Last modified 09/20/04 by Manfred Georg

E-mailed comments are welcome: mgeorg (at) arl.wustl.edu

License:

Copyright (c) 2004 Manfred Georg

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.