fozzilinymoo.org

the home of Doran Barton (& family)
 
 
Home ::> Dispensation ::> zv5000z
 

FC3 on the HP Pavilion zv5000z

This document was last updated: 6 August 2006.

Contents

Quick step-by-step install of Fedora Core 3

Since I first posted this document, I’ve gotten feedback from some people who just find the task of getting Linux running on their laptop to be daunting after looking over all the information here. While I’ve tried to be very thorough in my presentation, getting a productive computing system up and running is not that difficult.

So, for those who either don’t care about the details or fear their head may explode from information overload, I hereby present to you simple step-by-step instructions for getting Fedora Core 3 running on the HP Pavilion zv5000z.

Fedora Core 3 installation notes

I’m running the x86-64 release of Fedora Core 3. Fedora Core is the free, community-supported descendant of Red Hat Linux. By contrast to Red Hat Enterprise Linux (which requires purchase of a Red Hat support contract), Fedora Core includes the latest and greatest versions of software and new versions are released much more frequently (every 6 months).

With older versions of the BIOS, the ALPS trackpad is not usable until you patch the kernel (see below). If you find you can’t use the trackpad attach a USB mouse until you get the kernel patched. You’ll want to choose a text-based install (type linux text at the Fedora Core boot prompt.

It seems the F.30 or F.33 BIOS versions make it possible to use the trackpad as a PS/2 mouse device. You can download the updated BIOS firmware from Hewlett Packard’s website, but, unfortunately, you need to use their ROMPaq Windows-only utility to install them. It’s one good reason to keep at least a small Windows partition on the hard drive.

Alternatively, you can do a VNC install (type linux vnc at the Fedora Core boot prompt). This will enable you to run the graphical installer inside of a VNC session which you can view from another computer connected to the laptop via ethernet. This is really cool, by the way.

After you have chosen the type of installation and have partitioned the disks, you will be asked about whether you want SELinux enabled. SELinux (Security Enhanced Linux) is a set of patches for security Linux which were assembled by the U.S. National Security Agency. SELinux adds finer-grain control over what users and programs can do. However, this does come at a performance cost. If you’re looking to maximize performance, you probably don’t want SELinux enabled. If you are running the laptop in a situation where security is more of a concern, you may wish to consider running some level of SELinux.

I disabled SELinux.

Read the Fedora Core 3 Release Notes for other installation-related items.

Configuration notes

Below are the files I am currently using for Fedora Core 3.

PCMCIA

The PCMCIA controller is a Texas Instruments PCI1620 PC Card Controller. I had problems getting Linux to recognize the controller under Fedora Core 1 (2.4 kernel), but FC2 and FC3 seem to recognize it okay.

You have to add some I/O port ranges and memory ranges to the config.opts file to get the PCMCIA subsystem working properly.

I figured these out by booting into Windows 2000 and looking at the resources being used by the PCMCIA controller in the hardware device properties. Comparing notes with other users of these laptops helped narrow it down as well.

Specifically, these two lines need to be added to the stock /etc/pcmcia/config.opts:

include memory 0xe0100000-0xe17fffff
include port 0x3000-0x7fff

Download my version of the file here: etc-pcmcia-config.opts

NVidia video adapter

NVidia has been kind to the Linux community by providing accelerated X drivers and chipset drivers. Thanks NVidia.

Out of the box, the zv5000z will use the open source nv X video driver. This works, but there are two downsides. First, the nv driver is only a 2D driver. Second, once you’ve got the system into graphical mode, you can’t go back to text mode. Well, you can, but text mode is an unreadable mess. This isn’t a problem with the nv driver—it switches fine between text and graphical modes on most systems—but with the nv driver in this laptop.

I recommend grabbing the AMD64 Linux drivers from NVidia. You can get those from the following URL: <http://www.nvidia.com/object/linux.html>

As of this writing, the 6111 version (and older) of the NVidia driver perform well without any extra work. If you want to use the 6229 version, you’ll need to make a modification to the /etc/modprobe.conf file to pass some options to the nvidia kernel module.

NVidia distributes a .run file containing the driver and installer. You should download it, run it as root with the sh command.

# sh NVIDIA-Linux-x86_64-1.0-6111-pkg2.run

One reader recommends using the --force-tls=new option if you install the 6229 version of the NVidia driver.

# sh NVIDIA-Linux-x86_64-1.0-6229-pkg2.run --force-tls=new

This will run the installer application that will ask you a few questions. Just go along with just about everything it asks and you’ll be fine. Make sure you have the development packages installed prior to this because you’ll be compiling kernel modules.

When the NVidia installer is all done, there will be some great documentation in the /usr/share/doc/NVIDIA_GLX-1.0 directory.

Because the NVidia driver is a kernel driver, you’re going to run into video problems every time you upgrade to a new kernel. For example, if you use yum or up2date to upgrade to a new kernel and then reboot, you’ll want to boot into runlevel 3 (text mode) and run the NVidia installer again to built the NVidia driver for the new kernel.

If you’ve installed version 6229 of the NVidia driver, add this line to your /etc/modprobe.conf file:

options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=0

Fedora Core 3 introduces udev to the Fedora Core world. This is a system that creates and maintains a dynamic /dev directory. It works with hotplug to create devices as they’re needed (e.g. when you plug in a USB device).

Because of udev, the NVidia driver won’t load before the Red Hat Graphical Boot (rhgb) or X starts unless you do something about it. You can disable rhgb by removing its references in the /etc/grub.conf file and put the modprobe nvidia command in your /etc/rc.local script, or you can execute modprobe nvidia (to load the driver) and then copy all the /dev/nvidia* files to the /etc/udev/devices directory.

# modprobe nvidia
[Warning message about NVIDIA license tainting the kernel...]
# cp -a /dev/nvidia* /etc/udev/devices
# chown root.root /etc/udev/devices/nvidia*

You have to copy the devices to the /etc/udev/devices directory if you still want to use rhgb.

(Note: If you have your system set up to treat your trackpad as a synaptics device, you may want to disable rhgb in general since the steps necessary to get the synaptics working don’t get done until after rhgb.)

Red Hat has some good documentation on udev and how it is handled in Fedora Core. You can get that information here: <http://fedora.redhat.com/docs/udev/>

There’s more information below about how to get the NVidia driver working in X.

X.org

The X.org configuration takes a little work to get it working best.

With Fedora Core 2, I had to download the XFree86/XOrg Synaptics driver. If the laptop has a recent BIOS installed, you can use the trackpad in Fedora Core 3 as a generic PS/2 mouse device. This only gives you basic functionality of the trackpad, so if you want all the bells and whistles of the synaptics driver (horizontal/vertical scrolling, middle-click, etc.) you will need to do some extra work.

The good news is that Fedora Core 3 includes the synaptics driver for X (via the synaptics RPM). The bad news is that this still doesn’t resolve the issue with the 2.6.x kernel not seeing the touchpad as a ALPS/synaptics device. See my kernel modifications below for that. Once you have a kernel that can see the touchpad as an ALPS/synaptics device, then you can modify the xorg.conf to use the synaptics driver.

See my section on the custom kernel I built (and packaged into an RPM) below information on enabling the kernel to see the touchpad device.

Assuming you have a touchpad device the kernel can identify as an ALPS/synaptics device (cat /proc/bus/input/devices), you should be able to use the touchpad device in X with some modification to the /etc/X11/xorg.conf file.

Here are the relevant sections I had to change to get X working with the ALPS touchpad (concurrent with a USB mouse) and the NVidia video driver.

Section "ServerLayout"
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice "ALPSMouse" "CorePointer"
        InputDevice "Keyboard0" "CoreKeyboard"
        InputDevice "Mouse0" "AlwaysCore"
EndSection

This adds the ALPS touchpad to the server layout. To support multiple mouse devices, one of those devices has to be identified as CorePointer while others are set to AlwaysCore.

Section "Module"
        Load  "dbe"
        Load  "extmod"
        Load  "fbdevhw"
        Load  "glx"
        Load  "record"
        Load  "freetype"
        Load  "type1"
        # Load  "dri"
EndSection

This is for the NVidia X driver. The documentation (found in the /usr/share/doc/NVIDIA_GLX-1.0/ directory) indicates the dri module should be commented out of the config.

Section "InputDevice"
        Identifier      "ALPSMouse"
        Driver          "synaptics"
        Option  "Device"                "/dev/input/Touchpad"
        Option  "Protocol"              "auto-dev"
        Option  "LeftEdge"              "120"
        Option  "RightEdge"             "830"
        Option  "TopEdge"               "120"
        Option  "BottomEdge"            "650"
        Option  "FingerLow"             "14"
        Option  "FingerHigh"            "15"
        Option  "MaxTapTime"            "180"
        Option  "MaxTapMove"            "110"
        Option  "EmulateMidButtonTime"  "75"
        Option  "VertScrollDelta"       "20"
        Option  "HorizScrollDelta"      "20"
        Option  "MinSpeed"              "0.2"
        Option  "MaxSpeed"              "0.5"
        Option  "AccelFactor"           "0.01"
        Option  "EdgeMotionMinSpeed"    "15"
        Option  "EdgeMotionMaxSpeed"    "15"
        Option  "UpDownScrolling"       "1"
        Option  "CircularScrolling"     "1"
        Option  "CircScrollDelta"       "0.1"
        Option  "CircScrollTrigger"     "2"
EndSection

This is all new stuff for supporting the ALPS touchpad in X.

If you include another option Option SHMConfig "on", you can use a program called synclient to modify synaptics driver parameters while you’re in X. There are some other GUI applications like qsynaptics that let you do this as well.

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "LCD Panel 1680x1050"
        HorizSync    31.5 - 90.0
        VertRefresh  60.0 - 60.0
        Option      "dpms"
        Modeline "1680x1050" 147.17 1680 1784 1968 2256 1050 1051 1054 1087
EndSection

This defines the timings for the 1680x1050 mode. If you’re one of the lucky ducks that got the 1920x1200 display, you’ll want to add this:

	Modeline "1920x1200" 197.27 1920 2064 2272 2624  1200 1201 1204 1253

And if you’re cheap:

 	Modeline "1280x800"    85.7 1280 1360 1496 1712   800  801  804  835
Section "Device"
        Identifier  "Videocard0"
        Driver      "nvidia"
        VendorName  "Videocard vendor"
        BoardName   "NVIDIA GeForce 4 (generic)"
EndSection

You’re going to want to change the "nv" that is in here to "nvidia" to make use of the accelerated NVidia driver.

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     16
                Modes    "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1680x1050" "1400x1050" "1280x1024" "1280x960" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Red Hat’s firstboot will let you define your display as one that is capable of running at 1680x1050, but it does not offer you a 1680x1050 mode to run in. It does, however, give you a 1400x1050 mode to run in, which is adequate for use until you get your configuration changed.

You may download my complete /etc/X11/xorg.conf file if you would like.

Kernel modifications for ALPS touchpad

You don’t need to do this if you don’t want to. You may install one of the custom kernel RPMs for Fedora Core 3 below. If you’re not running FC3 or if you’re interested in what I did to get this working, read on.

To use the ALPS trackpad with the 2.6 kernel (it worked fine under 2.4), you must make some modifications to the kernel. Fortunately, this is not very difficult.

First, grab the synaptics X driver source code from < http://web.telia.com/~u89404340/touchpad/ >. In the tarball, there is a kernel patch file called alps.patch. Patch your kernel source with this file.

# cd /usr/src/linux-2.6.9
# patch -p1 < /home/fozz/synaptics-0.13.6/alps.patch
[ ... stuff about files patched ... ]

After patching the kernel, you only need to make sure the psmouse driver is built as a module and not compiled into the kernel statically. You can use any of the kernel configuration interfaces (i.e. make menuconfig, make xconfig, etc.) or just edit the .config file in the root of the kernel source directory tree and set CONFIG_MOUSE_PS2=m.

Then do your make, make modules_install, and make install.

Final steps to getting touchpad working

Once you have a kernel to boot to that supports the ALPS touchpad, you still need to create a /dev/input/Touchpad device. Andy Ross over at plausible.org wrote a quick and dirty findmouse script that does this for you.

I suggest saving the findmouse file in /usr/local/sbin and run it at boot by adding a line in the /etc/rc.local file like this:

/usr/local/sbin/findmouse

What really needs to happen is for someone to integrate this into hotplug by creating a hotplug script for it. If anyone has come across or has come up with a hotplug or udev method of getting the trackpad to work as a synaptics device, please let me know and I’ll add that information here.

USB Mouse

I have had no trouble using a USB mouse, or any other USB devices for that matter. However, one reader wrote in and said he had to add a line to his /etc/modprobe.conf to get a USB mouse to function. That line is shown below.

options ohci-hcd no_handshake=1

Kernel RPMs

I’ve built an x86_64 kernel RPM for Fedora Core 3 which modifies the RPM spec file to do what is described above. You can download this kernel RPM below: