Carnegie Mellon
SCS logo
Computer Science Department
home
syllabus
staff
schedule
lecture
projects
homeworks
 
 

15-410 Crash Machine


The Crash Machine

On an experimental basis Cluster Services is hosting 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 GHC 5205. Support for the machine will be provided by staff-410 at the CS domain.

Running Your Kernel

Since this machine is too old to boot from USB media, you have two options for running your kernel.

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 this, you probably want to remember to disable it again later.

Booting from a floppy disc

  1. Obtain a floppy disc. The machine will be deployed with some; please try not to walk off with them.
  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.

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 will probably wish to take advantage of.


[Last modified Thursday September 09, 2010]