From: Steve Smoot (smoot@elmer-fudd.cs.berkeley.edu)
Date: 09/20/93


From: smoot@elmer-fudd.cs.berkeley.edu (Steve Smoot)
Subject: SLS 1.3 with Ultrastore 34 Image
Date: 21 Sep 1993 01:11:55 GMT

Hi,
  I;m trying to bring up SLS (hot off of tsx-11) on a machine with
a Ultrastore 34f. I got Image.Ultrastor, and am having a problem.
  It dies, unable to mount root device.
  I modified Image.Ultrastor as per SCSI-howto: Subection B4,
(hack a couple of bytes.) But it did no good.
  Has anyone gotten this to work?

-s

Here is the suggestion in the HOWTO:

4. The bootable kernel for an ALPHA driver does not work,
        resulting in a "kernel panic : cannot mount root device"
        message, or it does not work with your Linux distribution.

        You'll need to edit the binary image of the kernel (before
        or after writing it out to disk), and modify a few two byte
        fields (little endian) to gurantee that it will work on your
        system.

        1. default swap device at offset 502, this should be set to 0

        2. ram disk size at offset 504, this should be set to the size
                of the boot floppy in K - ie, 5.25" = 1200, 3.5" = 1440.

                This means the bytes are

                3.5" : 0xA0 0x05
                5.25" : 0xB0 0x04

        3. root device offset at 508, this should be 0, ie the boot
                device.
Here is the code I used to do this:
main(){
  FILE *fp,*out;
  unsigned char c,c2; int i;

  fp=fopen("Image.UltraStor","r");
  out=fopen("NewImage","w");
  c=getc(fp);c2=getc(fp);
  for(i=0; !feof(fp); i++) {
    if (i>509) {
      putc(c,out);putc(c2,out);
    } else if (i==502) {
      putc(0,out);putc(0,out);
    } else if (i==504) {
      putc(160,out);putc(5,out);
    } else if (i==508) {
      putc(0,out);putc(0,out);
    } else {
      putc(c,out);putc(c2,out);
    }
    c=getc(fp); c2=getc(fp);
  }
  fclose(fp);
  fclose(out);
}

Seems like it should have worked...