I use a lot of free and open-source software. This page lists a few of the things I did to get GNU-Linux and OpenBSD running on the computers I use.

The ThinkPad

At school, I use a IBM ThinkPad i1482. Celeron 500MHz/128MB/10G/CD-DVD/56k Lucent WinModem/Xircom 10/100 CardBus Ethernet. It's the SCI 2000 model, so students of the Princeton Class of 2004 that sprang for the CIT (now OIT) SCI laptop will find this useful. (You may also be interested in the Princeton Unix Group.)


I use the Red Hat 7.0 distribution of GNU-Linux. Out of the box, it autodetected nearly everything. Exceptions are the easy launch buttons (which were useful), and the exterior CD controls (which were not)). The amazingly useful volume control dial still works; apparently it interfaces directly with the hardware.

I've since upgraded to Linux 2.4.17. Once again, sound, Ethernet, and the like are all supported by in-kernel options.

Frills: IBM Optical Navigator Mouse

I recently purchased a USB mouse, an IBM Optical Navigator (model MO27FO). After some fiddling, I got it to work alongside the built-in TrackPoint. Greg Wierzchowski's Second Mouse in X mini-HOWTO came in handy, as did the Linux USB FAQ.. I'm using this XF86Config.

Thanks to the Colas Nahaboo X mouse wheel scroll page, and the Documentation/input/input.txt file from the latest (when I wrote this, it was something in the ~2.4.16 range) Linux tarball, I put together the necessary configuration files. You'll need the following entry for the mouse in /etc/X11/XF86Config (or wherever your X server keeps its config file: it was called /etc/X11/XF86Config-4 on my RedHat 7.0 system -- looking in /var/log/XFree86.0.log should reveal the config file's name.)

Section "InputDevice"
        Identifier      "Mouse1" #<-- may be Mouse0 in your case*
        # Modified by mouseconfig
        Driver          "mouse"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "explorerps/2"
        Option          "Emulate3Buttons"       "no"
        Option          "ZAxisMapping"          "5 6"
        Option  	"Buttons"        "6"                

Mouse1 may be Mouse0 -- look for the lines related to your mouse in XF86Config, and change those. A line like the one below this paragraph indicates the core input device.

InputDevice    "Mouse1" "CorePointer"

To make the wheel work, you'll have to tell X to consider the wheel to be buttons 4 and 5. Trouble is, the configuration above maps button 4 to the side button. The trick (from Colas Nahaboo) is to add a line to your ~/.login file (or somewhere like the .login file -- I'm not sure of the best place to put X initialization commands. (I also added "bash .login" and "/etc/X11/xinit/xinitrc" to my ~/.xinitrc -- eventually, I have to learn what gets executed and when. In any event, add it to something that gets executed when the X server starts):

xmodmap -e "pointer = 1 2 3 6 4 5"

This renumbers the buttons. Note that if you're using two mice (or, with an IBM laptop, a USB mouse and the internal TrackPoint), the xmodmap command above will only work on the CorePointer device. I used these lines in XF86Config, where Mouse1 is the Optical Navigator and Mouse0 is the internal TrackPoint:

InputDevice    "Mouse1" "CorePointer"
InputDevice    "Mouse0" "AlwaysCore"

See the XF86Config file and the websites linked above for details.

If you'd rather have both the side button and the button under the wheel map to button 2 (may be convenient, if you use button 2 as `paste' in X), don't add the xmodmap line to .login, and use this XF86Config entry:

Section "InputDevice"
        Identifier      "Mouse1" #<-- may be Mouse0 in your case
        # Modified by mouseconfig
        Driver          "mouse"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "imps/2"   #<--protocol changes
        Option          "Emulate3Buttons"       "no"
        Option          "ZAxisMapping"          "4 5"
        Option      	"Buttons"        	"5"   #<---buttons change             

The Aptiva

I use an ancient IBM Aptiva as a firewall. It runs OpenBSD and has a pair of NICs, like the Compaq. Unlike the Compaq, it's quite flaky -- and displays a disturbing tendency to not reboot without a power-cycle. But it does the filtering I need.

The Compaq

My family uses a Compaq Presario 8702 which took to Linux, but less pleasantly. My first mistake was deleting the disk partition that enables BIOS editing (I'm used to machines that kept the BIOS setup program in ROM.) Fortunately, it detects new hardware (like RAM) properly when it's inserted.

The sound card worked best with ALSA, but compiling it was a headache until I upgraded to the 2.4.5 kernel. (For some reason, the first time I compiled, my indication that the computer had only one CPU didn't stick, screwing up the header files to no end.) Try the ALSA module snd-card-interwave-stb if you have the Presario 8702.

Sound support on the Compaq remains spotty, though some editing in the rc.sysinit and init.d/halt files helped get it to recognize its sound devices at boot and load the appropriate mixer settings. ALSA is running in OSS emulation mode, but the emulation isn't perfect -- compared to the ThinkPad, which does everything sound-related but run IBM ViaVoice for Linux and play MIDIs right out of the box. The necessary configuration tricks (I assume they're configuration tricks) to get MIDI and ViaVoice voice recognition to work, I have yet to embark upon.

In a fit of retro-computing, I attacked a Wyse wy50 serial terminal to the Compaq, which provides a convenient place to log in if I crash my laptop at home. If you have such a terminal, you can learn how to disable the irritating keyclick here.

Made with the One True Emacs.


Last updated on $Date: 2002/03/12 19:31:56 $ GMT by Joseph Barillari. All trademarked terms used above are, naturally, property of their respective holders.