Fedora Core 2 on a HP / Compaq Presario R3211 ( R3000 )

This is a weird piece of hardware.

I wanted to get it up and running with as few tweaks as possible, since it belongs to a user who doesn't aspire to become a linux kernel hacker yet.

I first tried the Linux distro the user wanted, Cern Linux 7.3.4 (based on RedHat 7.3). Severe problems with disk and network controllers. I then tried Fedora Core 2 instead. Much better, except I lost the mousepad and the text consoles.

After googling a bit I found 2 possibilities. Either patch the alps driver or upgrade to 2.6.9 kernel where the mousepad can be reprobed after usb is done. The first solution gives real support for all features of the mousepad, the second one just emulates a PS/2 mouse. For the reasons given above I went with the last solution. When 2.6.10 kernel arrives the alps driver has hopefully been updated as well.

How to install 2.6.9 kernel on Fedora Core 2

RedHat have changed the way kernel source is distributed. There is also a package called glibc-kernheaders that will let us compile kernel modules without having the full kernel source installed. This is how to get the kernel up and running, enabling kernel modules to be built (but without installing full kernel source)

Getting the mousepad working

This fix requires at least 2.6.9 kernel. Add the following file as /etc/rc5.d/S00mousepad

# Workaround to reset mousepad until 2.6.10 kernel fixes the problems
# and introduce real support for this alps device
# and introduce real support for this alps device
# birger 20041103

echo -n reconnect > /sys/bus/serio/devices/serio3/driver
Remember to make it executable.

Getting text consoles back

I installed the drivers from nvidia, and the problems with the screendrivers disappeared. tuxracer also became useable. :-)
Browse to http://www.nvidia.com/ and find the linux graphics drivers in the drivers section. The name of the file I got was NVIDIA-Linux-x86-1.0-6111-pkg1.run, and it needed a patch to compile with this kernel.
If yours is newer, try running it and building a module. If it fails, look in /var/log/messages. If you find a message complaining about "nvidia: Unknown symbol __VMALLOC_RESERVE" follow this procedure:
Extract the archive using sh NVIDIA-Linux-x86-1.0-6111-pkg1.run --extract-only
cd NVIDIA-Linux-x86-1.0-6111-pkg1/usr/src/nv
edit nv.c and add the following line at the top
unsigned int __VMALLOC_RESERVE;
cd ../../..
run nvidia-installer and it should work.

You have to change your /etc/X11/xorg.conf file to use the new driver. Here is my file (I think I snarfed it from http://home.gagme.com/greg/linux/xorg.conf.r3000z, but that site is down while I write this). I have changed the  resolution, the keyboard layout and added a modeline generated with gtf.

# XFree86 4 configuration created by pyxf86config
Section "ServerLayout"
        Identifier     "Default Layout"
        Screen          "WXGA Screen"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
Section "Files"
# RgbPath is the location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.
# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Red Hat 6.0 and later now use a font server independent of
# the X server to render fonts.
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        FontPath     "unix/:7100"
Section "Module"
        Load  "dbe"
        Load  "extmod"
        Load  "fbdevhw"
        Load  "glx"
        Load  "record"
        Load  "freetype"
        Load  "type1"
        # Load  "dri"
Section "ServerFlags"
        Option      "AllowMouseOpenFail" "yes"
Section "InputDevice"
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#       Option  "Xleds"         "1 2 3"
# To disable the XKEYBOARD extension, uncomment XkbDisable.
#       Option  "XkbDisable"
# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:
#       Option  "XkbModel"      "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
#       Option  "XkbModel"      "microsoft"
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#       Option  "XkbLayout"     "de"
# or:
#       Option  "XkbLayout"     "de"
#       Option  "XkbVariant"    "nodeadkeys"
# If you'd like to switch the positions of your capslock and
# control keys, use:
#       Option  "XkbOptions"    "ctrl:swapcaps"
# Or if you just want both to be control, use:
#       Option  "XkbOptions"    "ctrl:nocaps"
        Identifier  "Keyboard0"
        Driver      "kbd"
#       Option      "XkbModel" "pc105"
#       Option      "XkbLayout" "us"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "no"
# Doesn't work
# Section "InputDevice"
#       Identifier  "Mouse0"
#       Driver      "synaptics"
#       Option      "CorePointer"
#       Option      "Protocol" "event"
#       Option      "Device" "/dev/input/mice"
#       Option      "ZAxisMapping" "4 5"
#       Option      "Emulate3Buttons" "no"
# Original config
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "true"
# Also allow USB mouse
Section "InputDevice"
        Identifier      "USB Mouse"
        Driver          "mouse"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "ImPS/2"
        Option          "Emulate3Buttons"       "true"
        Option          "ZAxisMapping"          "4 5"
Section "Modes"
        Identifier "16:10"
        # 1024x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 64.11 MHz
        Modeline "1024x768"  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Unknown monitor"
        UseModes     "16:10"
        HorizSync    30-90
        VertRefresh  50-75
        Option      "UseEdidFreqs"      "1"
        Option      "FlatPanelProperties"       "Scaling = aspect-scaled"
        Option      "dpms"
# Non-twinview setup
Section "Device"
        Identifier      "NVidia GeForce4 420 Go 32M"
        Driver          "nvidia"
        Option          "NvAgp" "3"
        Option          "UseEdidFreqs"  "1"
        Option          "FlatPenelProperties"   "Scaling = aspect-scaled"
# This monitor is only needed in the non-twinview setup
Section "Monitor"
        Identifier      "WXGA LCD"
        UseModes        "16:10"
        HorizSync       30-90
        VertRefresh     50-75
        Option          "UseEdidFreqs"          "1"
        Option          "FlatPanelProperties"   "Scaling = aspect-scaled"
        Option      "dpms"
Section "Screen"
        Identifier "WXGA Screen"
        Device     "NVidia GeForce4 420 Go 32M"
        Monitor    "WXGA LCD"
        DefaultDepth     24
        SubSection "Display"
                Depth     24
                Modes    "1024x768"
        Virtual 1024 768
Section "DRI"
        Group        0
        Mode         0666