Configuring xfree86 on Pismo: XF86Config-4
And Debian is slowly coming to life on my Pismo powerbook (G3/500 Firewire). After a few false starts and quite a bit of googling, I came up with this XF86Config-4 file, which works perfectly with the Pismo's lcd screen, keyboard, trackpad, and an external USB Logitech optical mouse I have plugged in (with true plug-and-play). It did not work with a Microsoft wireless optical laptop mouse I tried, and I'm sure I could have added that mouse to the config file and tinkered with it, but instead I returned that $50 mouse, bought another $20 Logitech optical mouse, and saved 30 bucks and a bit of headache.
One caveat: xinit's startup output reports an error, that it couldn't load the r128 module, and that DRI wouldn't work. DRI is Direct Rendering Interface, and I believe it's necessary for things like gaming and intensive 3D rendering. Since I won't be doing any of that on this machine (it's just an old Pismo after all), it's not an issue - the IceWM window manager works fine, as do Firefox and XEmacs, and so far that's all I need. I haven't tested the config file with gnome or kde, but I don't see why it wouldn't work with them too (but on a Pismo, I recommend IceWM - it's lightweight and snappy, and all you really need).
The steps I took:
1) Installed the following debian packages: discover, mdetect, and tpconfig, for supporting auto-detection and configuration of the screen, mouse, and trackpad. I don't know if these were essential or not, but I installed them and everything subsequently worked. I configured tpconfig with the --tapmode=0 option, to disable trackpad-tapping as button clicks.
2) Installed xfree86, icewm, and all dependent packages using dselect.
3) Modified the default /etc/X11/XF86Config-4 file until it looked like the text below.
4) Created a script, /usr/local/bin/ice, that looks like this, chmod 777'd it, and ran it:
#!/bin/bash
xinit /usr/bin/icewm -- :0
This started the xserver and the icewm window manager, and I could sleep a happy man.
And now, the config file.
# XF86Config-4 (XFree86 X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the XF86Config-4 manual page.
# (Type "man XF86Config-4" at the shell prompt.)
#
# This file is automatically updated on xserver-xfree86 package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xfree86
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following commands as root:
#
# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom
# md5sum /etc/X11/XF86Config-4 >/var/lib/xfree86/XF86Config-4.md5sum
# dpkg-reconfigure xserver-xfree86
Section "Files"
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
ModulePath "/usr/X11R6/lib/modules"
ModulePath "/usr/X11R6/lib/modules/dri"
ModulePath "/usr/X11R6/lib/modules/drivers"
EndSection
Section "Module"
Load "GLcore"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "pismo-keyboard"
Driver "keyboard"
Option "CoreKeyboard" "true"
Option "XkbRules" "xfree86"
Option "XkbModel" "macintosh"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "trackpad-or-usb"
Driver "mouse"
Option "CorePointer" "true"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/input/mice"
Option "Buttons" "4"
Option "Emulate3Buttons" "1"
Option "ZAxisMapping" "4 5"
EndSection
Section "Modes"
Identifier "mode-0"
ModeLine "1024x768" 65.0 1024 1064 1200 1344 768 771 777 806 -hsync -vsync
EndSection
Section "Monitor"
Identifier "pismo-lcd"
ModelName "Monitor Model"
UseModes "mode-0"
HorizSync 30.0 - 70.0
VertRefresh 50.0 - 160.0
Option "DPMS"
EndSection
Section "Device"
Identifier "ati-rage-128"
Driver "r128"
BoardName "Unknown video card"
Option "HWcursor"
Option "UseFBDev" "true"
BusID "PCI:0:16:0"
EndSection
Section "Screen"
Identifier "screen-0"
Device "ati-rage-128"
Monitor "pismo-lcd"
DefaultDepth 24
SubSection "Display"
Depth 8
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "screen-0"
InputDevice "pismo-keyboard"
InputDevice "trackpad-or-usb"
EndSection
Section "DRI"
Mode 0666
EndSection