Basic installationFirst of all, run Debian. It's nice. :) (There's also a package, called 'picturebook', which includes support for the camera, as well as brightness and battery control.) Secondly, use its make-kpkg facility to build your own 2.4 kernel (it has some Crusoe optimizations and such, and devfs is very nice). My kernel configuration (available from the files page) is probably a good start, though I don't know if the APM stuff is setup right, and I'm a bit liberal with the USB device modules. I also have it compiled with devfs support, though I don't have it mount by default, so you can choose whether you want devfs or not (I don't, since getting ALSA to work with it is difficult).
GraphicsYou probably want to run X. Here is an /etc/X11/XF86Config-4 file for XFree86 4.0. It's based on the one at Jay's Picturebook Page, except it adds a few video modes for different zoom levels. I can't seem to disable DDC, and so the server keeps on overriding my (correct) sync ranges with incorrect ones, so if anyone can give me any help there, it'd be greatly appreciated. Note that this configuration does allow the use of both the internal nipple pointer and an external USB mouse simultaneously. However, by default this will require that you plug the mouse in before starting X; if you want to remove this restriction, add the following line to your /etc/modules file, and then run update-modules:
AudioYou probably also want sound. You need to run ALSA. After struggling with getting it configured for a while (in a way that devfs and OSS programs didn't complain about) I got a working /etc/modutils/alsa for that (after you put it into /etc/modutils, run update-modules).
Note that the /etc/init.d/alsa script mucks with the permissions of the /dev/snd nodes on shutdown, so to avoid various permission-related difficulties, don't have devfsd preserve the permissions; rather, just add this line into your /etc/devfs/perms (assuming you're using devfs):
This will fix all of the /dev/sound and /dev/snd device nodes when devfsd builds them. You'll want to add your user account to the 'audio' group, obviously.
REGISTER ^s*nd[^/]* PERMISSIONS root.audio 0660
Floppy/memory stickThe floppy and memory stick can be rather tricky. The enumeration of the devices depends on which one the system sees first; thus, if you boot without a USB floppy plugged in, the memory stick will be /dev/sda (and then the floppy will be /dev/sdb when you plug it in), but if you boot with the floppy plugged in, the USB subsystem usually sees the floppy before the memory stick, so the floppy will be /dev/sda (and the memory stick will be /dev/sdb). Unfortunately, since the memory stick is implemented like a floppy drive, there is no way to selectively disable it from the Linux kernel, and as far as I've seen, the BIOS has no options regarding the memory stick being active or not. A reasonable solution would be to just make two mount points, /floppy and /floppy2, mapped to /dev/sda and /dev/sdb, and then just doing whichever one works. Unfortunately, if you attempt to mount the memory stick when there's nothing inserted, the kernel gets a bit confused, the process which initiated the mount freezes badly, and your system load goes up by 1.0. The only solution I've seen to this is a reboot. As a result, you should probably just check the devices in /proc/scsi before trying to mount anything, and just don't have either device in the fstab. Unfortunately, that solution requires becoming root to mount or unmount.
A different solution would be to just not use the floppy drive or memory stick. So far, the only time I've needed the floppy drive was to install my network card's driver under Windows, and it was bad and it turned out to be easier to just download the Windows driver from Linux then install it from the hard drive anyway. Floppy drives are kinda useless these days, what with near-pervasive Ethernet and all that.
I also don't know if the memory stick adaptor actually works, since I don't have (or want) a memory stick.
ModemI don't know if the RJ-11 adaptor works or not. Honestly, I don't care, since everywhere I go I have an Ethernet connection available.
- Either get APM suspend working, or patch the kernel with the system hibernate patch
- Figure out why APM's battery info is inflated by a fator of 4 and fix it accordingly
- Pester X server developers to add "NoDDC" option to Rage driver so that I can get my custom modelines working
- Figure out how to make the Fn-F# keys work (so that one can bring up a mixer, setbrightness control, etc. from the keyboard)
- Write a simple X-based setbrightness frontend thingy
- Get around to finishing XF86Config file with support for external monitor