Carnegie Mellon
SCS logo
Computer Science Department

15-410 Crash Machine

The Crash Machine

The "crash box" is a PC designed for 15-410 kernel testing. The machine (CMU asset #101038) contains two 400 MHz Pentium-II Xeon processors, 512 megabytes of RAM, a floppy drive, and a CD-ROM (no disk or network). The boot process runs on only one processor and the second processor remains inactive unless explicitly enabled (see Wikipedia: Intel APIC Architecture).

The machine also contains a "POST card", a device which can be (ab)used for low-level kernel debugging (see Wikipedia: POST card). Basically, outb()'s directed to port 0x80 will be displayed in hexadecimal on the front of the machine. This particular card has the following features:

  1. The most recent two bytes of status are displayed. The most recent byte is on the left, and the byte before that is on the right. So if you outb(0x80,0xce) and then later outb(0x80,0xfa) the display will read face.
  2. The card can't accept multiple status bytes in rapid succession; if you send values too quickly the card will "catch" only the last. Empirically it seems to work if 512 inb(0x80)'s appear between two outb()'s.
  3. The two buttons on the display allow you to scroll forward and back through the outb() stream. If you hold both of them down for a while odd things which aren't very useful will happen.

The crash machine is located in the hallway outside Professor Eckhardt's office, GHC 4001. Support for the machine will be provided by staff-410 at the CS domain.

Running Your Kernel

This machine is too old to boot from USB media. In theory it will boot a floppy disk, and it will boot a CD-ROM / CD-R / CD-RW containing an "El Torito" floppy-disk image.

Note that your kernel won't work on machines with USB keyboards... except that some such machines have a "Legacy USB" option you can enable in the BIOS. If you enable "Legacy USB" on some machine you have so you can boot Pebbles kernels, you probably want to remember to disable it again later.

Booting from a floppy disc

  1. Obtain a floppy disc.
  2. Run: dd if=bootfd.img of=/dev/fd0 bs=1440k (if for some reason you need to use a Windows machine to write a floppy, try RaWrite).

Booting from an optical (CD-R/CD-RW) disc

  1. Obtain a CD-R or a CD-RW. The machine will be deployed with a CD-RW; please try not to walk off with it. If somebody else has walked off with (or scratched to death) the CD-RW deployed with the machine, send mail to the staff mailing list.
  2. mkdir burn
  3. cp bootfd.img burn
  4. mkisofs -r -b bootfd.img -o bootcd.iso burn
  5. cdrecord blank=fast dev=/dev/cdwriter bootcd.iso (if you are using a CD-R instead of a CD-RW, skip the blank=fast parameter).

If you run into trouble burning your CD, try adding speed=0 and/or driveropts=burnfree.

Boot acceleration

A couple of tricks can slightly improve boot speed.

  1. First, use the reset button (on the left side of the front panel) instead of the power button.
  2. Second, once the BIOS splash screen is drawn, watch the row of lights on the upper right of the keyboard: they will all blink on and then off, which means that the BIOS has initialized the keyboard. When that happens, press the spacebar (once is enough). This will cause the BIOS to switch to "hurry-up" mode, in which it skips some tests and degrades the quality of others.

How Mandatory Is This?

We will grade your kernel based on its performance in Simics. However, the crash box is a useful diagnostic tool you may well wish to take advantage of.

[Last modified Thursday September 14, 2017]