This page contains all I've found out about getting Linux and FreeBSD operational on my Micron XPE laptop. I also have Windows 2000 on the machine (which installed and worked without any special configuration or driver downloads for the functionality mentioned on this page, except for the external mouse on the docking station which doesn't work).
The XPE uses a Cirrus Logic GD-7555 video card. The best display is 800x600 with 16 bit color.
I'm currently running Red Hat 8.0 on my laptop, which using XFree86 4.2.x. The X configurator during the install configured the video card using the generic VESA driver, and I selected "Generic 800x600 LCD panel" for the monitor. It seems to be working fine. Here's the auto-generated config file.
The Cirrus 7555 is supported by the XFree86 3.x SVGA server. Here's my XF86Config for XFree86 3.x. It works fine in Linux and FreeBSD (although FreeBSD doesn't run the X Font Server (xfs) by default, so you'll either need to start it or comment out the second FontPath entry.) My first working configuration and the setfont command below came from this post to the redhat-devel-list.
The only real problem I've encountered with Linux and XFree86 3.x is that the first time you switch back to a text console after starting the X server the font is all messed up. FreeBSD doesn't seem to have this problem. The can be fixed by running "setfont /usr/lib/kbd/consolefonts/iso01.f16". You'll have to type this blind, so you'll probably want to setup an alias or a script. Ernest Simpson sent me a good suggestion if you are using startx to start the X server:
The way that I've solved the disappearing fonts after exiting X is by editing the "startx" file in /usr/X11R6/bin. After you open the file to edit it, go to the very bottom of the file, and type in your SETFONT line. After that, your fonts will appear the way they're supposed to when you exit the GUI.
I tried a couple of external monitors, one worked fine and the other had a big blue border around the screen and the color wasn't quite right. (That same monitor works fine with Windows 2000 on the same laptop.) I have not tried the NTSC or S-Video outputs yet.
The XPE uses a Sound Blaster Vibra 16 CL sound card. It is an ISA PnP card and thus needs to be initialized by something that understands ISA PnP (kernel, driver, user-space tools, etc.) On my laptop it uses the following resources:
|DMA 8 bit||1|
|DMA 16 bit||5|
|MIDI (MPU-401) I/O port||0x330|
|OPL3 FM synthesizer I/O port||0x388|
OSS/Free is the standard Linux sound driver. Prior to Red Hat 7.3 I couldn't get OSS/Free to work with the sound card, but with Red Hat 7.3 I was able to run the Red Hat sndconfig program, feed it the values above and things seem to work find. Here are the values from /etc/modules.conf:
alias sound-slot-0 sb options sound dmabuf=1 alias synth0 opl3 options opl3 io=0x388 options sb io=0x220 irq=10 dma=1 dma16=5 mpu_io=0x330
OSS/Linux is a commercial sound driver from 4Front Technologies. I used this with previous versions of Red Hat where I couldn't get the OSS/Free driver to work. They have a demo version available to download so that you can make sure it works for you before you buy it. Their driver understands ISA PnP and sets the card up properly (with a little tweaking).
Here are the steps I used to get it working (with some help from the nice guys in 4Front's tech support group). First, make sure nothing is using IRQ 5. (Yes, I know that the sound card isn't on IRQ 5 but that's where OSS/Linux wants to probe for it.) In my case I had to eject my PCMCIA Ethernet card. You can get a list of interrupts and what is using them on Linux by doing "cat /proc/interrupts". Then install the OSS/Linux software using the instructions found here. When you run oss-install it will start a program called soundconf. soundconf should autodetect a Sound Blaster 16 card. You'll then need to go into the manual configuration section and change the IRQ from 5 to 10. That should be it. After you exit soundconf then oss-install will automatically run soundon to load the OSS/Linux drivers. You should be able to play sounds at this point. If that works then you can manually run soundconf and tell it to enable the drivers at boot time. You can also re-add whatever what using IRQ 5 at this point, it just needs to be disabled for the recognition step.
The major OpenSource alternative to OSS/Free is ALSA. ALSA is promising because it (supposedly) has ISA PnP support built in. However, documention for the PnP support seems to be lacking and I wasn't able to figure it out.
No success so far with sound in FreeBSD.
I replaced the original 2 GB drive with a 20 GB IBM Travelstar 20GN. The XPE BIOS doesn't recognize drives bigger than 8 GB, but this doesn't present a problem for Linux or FreeBSD as they both recognize this problem and work around it (by ignoring the BIOS). (See the Large Disk HOWTO for more info about this and other PC hardware/large hard drive problems.)
GRUB, the Windows 2000 boot loader and Boot Easy (the FreeBSD boot loader) seem to both work fine in the Master Boot Record (MBR). LILO and earlier versions of Boot Easy did not work. LILO croaks at the first L and Boot Easy just served up a blank screen. I'm currently using GRUB to boot Linux and Windows 2000.
In case you're interested, here's how I have the disk partitioned. (The big FAT32 partition is for MP3s.)
Disk /dev/hda: 64 heads, 63 sectors, 9690 cylinders Units = cylinders of 4032 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 1272 2564320+ 83 Linux /dev/hda3 * 1273 2540 2556288 7 HPFS/NTFS /dev/hda4 2541 9690 14414400 5 Extended /dev/hda5 2541 2644 209128+ 82 Linux swap /dev/hda6 2645 9688 14200672+ c Win95 FAT32 (LBA)
My Intel EtherExpress PRO/100 (16 bit non-CardBus) NIC works fine with Linux. My 3Com 3C575-TX (32 bit CardBus) NIC does not work. The driver loads but no traffic goes in and out. (The 3Com card works fine in Windows 2000.)
The port replicator has a AMD 79C974KD LAN controller. Red Hat added the following entry to /etc/modules.conf and the card seems to work. The only problem is that this Ethernet controller is initialized before the PCMCIA one and thus becomes eth0 (despite what modules.conf says) and the PCMCIA card becomes eth1. I'd prefer that the PCMCIA card stayed at eth0 and the AMD one became eth1.
alias eth1 pcnet32
The external keyboard works fine. Video works fine in text mode, the same monitor that had problems directly connected to the external video connector (see the Video section above) also has a big blue border in X Windows. However, the colors are fine. (The refresh rate isn't very good (56 Hz) so I have a hard time using this for long periods of time.) The external mouse also works fine (this is the one thing that doesn't work in Windows 2000).
OSS/Linux occasionally complains that it failed to load properly when the laptop is connected to the port replicator and sound doesn't work. However, at the moment everything seems to be fine. :)
The AMD LAN chip mentioned above is also the SCSI controller in the port replicator. Red Hat added the following entry to /etc/modules.conf and the driver seems to have loaded ok. I haven't bother to yank a SCSI device off another machine to see if it actually works.
alias scsi_hostadapter AM53C974
Not tried yet.