Ubuntu Dapper on IBM 300PL

(This probably belongs on some Ubuntu wiki page rather than here on my blog - if you're not currently trying to get Ubuntu to install, this will probably not be of much interest to you).

I picked up a 500Mz P3 box on eBay yesterday, and had a bit of trouble installing Ubuntu on it. I solved the problem in the end, so here's the solution for those with similar troubles.

The machine is an IBM 300PL model 6862-U60

It would boot off the Ubuntu "Dapper Drake" 6.06-1 disk, but would hang at various points through the boot process.

Pressing F6 at the first ubuntu boot screen lets you see and edit the kernel boot line. I deleted "splash" and "quiet" from the boot line to see more output. That showed that the problem was I/O errors on the CD-ROM drive (hdc).
hdc: media error (bad sector) status=0x51 { DriveReady SeekComplete Error }
hdc: media error (bad sector) error=0x34 { AbortedCommand LastFailSense=0x03 }
ide: failed opcode was: unknown
end_request: I/O error, dev hdc, sector 0
Buffer I/O error on device hdc, logical block 1

I tried different discs, a different CD-ROM drive, and connecting the CD-ROM as slave on the primary controller instead of master on the secondary. No change (except for it being "hdb" instead of hdc in the last case, as expected.)

I tried an old Ubuntu disc (Breezy Badger, in fact). It ran perfectly. I noted that doing "hdparm /dev/hdc" from a shell under the Breezy CD showed that dma was not enabled. It looked like dma wasn't working properly on the CD-ROM. (the chipset is an Intel PIIX4)

I added the kernel option "ide=nodma" before the " -- " on the boot line to see if the Dapper CD would work. It got further, but still failed once it came to trying to unpack the package files.

The problem is that while the kernel wasn't automatically enabling dma on the CD-ROM, the Ubuntu system was enabling it itself in the installer.

There is a separate option "nohdparm" which prevents that. Because it's a Ubuntu option not a kernel option, it goes after the " -- " on the boot line.

My full boot line was therefore:

boot=casper initrd=/casper/initrd.gz ramdisk_size=1048576 root=/dev/ram rw ide=nodma -- nohdparm

(I hadn't touched anything before "rw")

And with that, the installer worked perfectly.

Quick summary: Press "F6" when the Ubuntu screen comes up, remove "quiet" and "splash", add "ide=nodma" before the " -- " and "nohdparm" after.

Once the system is installed onto the hard disk, edit /etc/hdparm.conf, and add the following
/dev/hdc {
dma = off
so that the CD-ROM drive will work correctly in the installed system.
The onboard sound isn't automatically detected; it's a Crystal 4236B; I added the following line to /etc/modules:


(There might be a neater way of doing that, I don't know).