How to boot Linux on an SGI IP22 system

You don't actually want to do this. But if you insist. Here you go.

These instructions are valid for booting Linux on an SGI IP22 class system. These include the SGI Indy (Indigo without the go) and the SGI Challenge S.

A few warnings:

  • Do not attempt this on a Little Endian system (i.e. DEC MIPS). It does not work the same way, I guarantee you.
  • This works for IP22. That does not mean it will work for IP27 (Octane 200, Origin 2000) or IP32 (Oxygen 2) type systems. This however might give you insight into how to get it working.
The step-by-step:

This assumes that you have any idea of setting up remote boot systems, I will address troubleshooting at the end.

  1. Set up a BOOTP/DHCP server. This should include lines to specify the file it should pull from the tftpboot server. Here is an excerpt from mine:
  2.        host sgi-test2 {
               hardware ethernet 08:00:69:00:00:00;
               fixed-address 192.168.251.227;
               filename "/tftpboot/sa";
               option root-path "/export/sgi-linux";
           }
    
  3. Pull down a set of kernels that will work on this system. Here are the ones I used.
  4. Put the kernels into your /tftpboot directory (yours may vary) and copy (do not symlink) one of them (probably the ecoff one) to the file sa (if you're following the example that I gave).

  5. Some might say I'm jumping the gun here, but try to boot it first. If it doesn't boot, who cares about the root partition being there.
  6. Hook up a serial cable (it is my understanding that the kernels I used won't display to the framebuffer) and power on the system.
  7. Right before it starts to boot, it will tell you press to enter maintainance mode. Once you do that, enter the PROM command monitor (option 5).
  8. Now type the following commands to get it to boot:
  9.        unsetenv netaddr
           boot -f bootp()/tftpboot/sa init=/bin/sh
    
    This should retrieve the kernel via tftp and start to boot it. There is SOOO much that can go wrong here. Check below to see potenial problems and how to fix them.

    Now that thats working (you've gotten further than most) set up the root filesystem.
  10. Grab a copy of each of the following:

  11. Set up an nfs server to export (get this) /tftpboot/<system name>. Apparently, the boot options on this kernel are maximally braindead so it needs to be set up as such. In my example it would be
    /tftpboot/sgi-test2
    Note: The options you specified on the dhcp server mean precisely dick.

  12. Unpack all 4 tarballs into that directory:
  13.    cd /tftpboot/sgi-test2
       tar -zxvf ~/base.tar.gz
       tar -zxvf ~/devel.tar.gz
       tar -zxvf ~/extras.tar.gz
       tar -zxvf ~/util-linux-2.10m-glibc20.tar.gz
    
  14. Cross your fingers and repeat step 6.
At this point you should have a booted SGI Linux system on your Indy or Challenge S. You want to do some more? Wait for my second write up, or check out the following sources (in no particular order):

Copyright ©1997 - 2011, Bulent Yilmaz