SGI Indy and Debian Linux
This is an old page saved for posterity. It is no longer updated.
The Silicon Graphics Indy is a MIPS based machine designed to run SGI’s own Irix but it is also supported by Linux. Some people would call installing Linux on an SGI machine heresy and indeed Irix is an excellent OS and I do have another Indy and an Indigo2 running Irix but if a Linux box is what is required, it works.
There are a few caveats though, graphics are unaccelerated under Linux
and the vino (video in, no out) board and indycam are unsupported at the moment but as this machine is to be used as a headless server this doesn’t matter.
Installation can be done via the console or alternatively using a serial terminal or a computer running a terminal emulator such as minicom. In order to boot the installation a server running TFTP and DHCP is also required.
The terminal should be connected to the Indy’s first serial port and configured as 9600 8N1 with hardware flow control off and the serial cable is wired as follows:
|
8
Pin Mini DIN (SGI) |
25 DB25 |
Name
|
|
4
|
7
|
GND
|
|
5
|
2
|
TD
|
|
3
|
3
|
RD
|
|
1
|
8
|
CD
|
|
7
|
4
|
DTR
|
This procedure assumes a hostname of indy, an IP address of 192.168.0.22 and a mac address of 08:00:69:08:e2:0a. Change these to reflect your system.
- First in order to get your Indys mac address you should start the system and press ESC to get to the PROM. Select option 5 and type:printenvThe current environment variables will be listed including the mac address.
- Install tftp server on a computer on your network if you do not have it already
-
Edit /etc/xinetd.d/tftp so you have the following:
service tftp
{
socket_type = dgram
wait = yes
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
} -
Create a directory for the boot image
mkdir /tftpboot
-
Copy tftpboot.img to /tftpboot
-
Install a DHCP server if you do not have one already.
-
Add the following to your /etc/dhcpd.conf
host indy {
hardware ethernet 08:00:69:08:e2:0a;
fixed-address 192.168.0.22;
option host-name “indy”;
}
- With Kernel 2.4 there’s a problem with a bug in the Indy’s PROM where tftp doesn’t work if the port is above 32768, which is default with 2.4 but not 2.2. This can be changed with:echo 2048 32767 > /proc/sys/net/ipv4/ip_local_port_range
- Also with 2.4 ip_no_pmtu_disc needs to be set with: echo 1> /proc/sys/net/ipv4/ip_no_pmtu_disc
- Back to the Indy, in the PROM clear the current stored ip address:unsetenv netaddr
- If you are using a serial console set the console to always be Serial 1: setenv console d1
- Now you can boot the debian-installer, debootstrap with:bootp()tftpboot.img
- Partitioning
SGI machines have two special partitions, Partition 9 is the “SGI volhdr” and is where the kernel goes, Partition 11 is the “SGI volume” and covers the whole disk.As the SGI volhdr or volume header is where the kernel will go so we need to make sure it is big enough, the standard Irix volume header is only 2Mb which is not enough. I made this partition
74 sectors to err on the side of caution and allow room for the future.fdisk will automatically create partitions 9 and 11 for you but for some reason I had to create the swap partition first as it would not let me add another partition after the root even though there was room. I then deleted automatically generated partitions 9 & 11 and created my root partition. The volhdr partition was again recreated automatically but at too small a size so I deleted it and manually created it to fill up the first 74 sectors.My partition table ended up looking like this:
Disk /dev/sda (SGI disk label): 4 heads, 108 sectors, 4792 cylinders Units = cylinders of 432 * 512 bytes ----- partitions ----- Pt# Device Info Start End Sectors Id System 1: /dev/sda1 boot 75 4602 1956096 83 Linux native 2: /dev/sda2 swap 4603 4791 81648 82 Linux swap 9: /dev/sda3 0 74 32400 0 SGI volhdr 11: /dev/sda4 0 4791 2070144 6 SGI volume ----- Bootinfo ----- Bootfile: /unix ----- Directory Entries ----- 0: sgilabel sector 4 size 512 1: sash sector 5 size 140800 2: linux sector 280 size 2031824
- Once you have written the new partition table to disk you can install the base system over the network by following the Debian installer prompts.
- Once the base system has been installed you will be given instructions to set the PROM so Linux will load automatically, these are:setenv OSLoader linux
setenv SystemPartition scsi(0)disk(X)rdisk(0)partition(8)where X is the scsi id of the disk you installed to
You should then set your root partition with:
setenv OSLoadPartition /dev/sda1
where /dev/sda1 is the disk you installed to
- Once the system has rebooted you will be asked to a few questions and the installation will complete.
- That’s it, have fun!

