Remotely installing SGI IRIX 6.5 from a GNU/Linux server

Davor Ocelic, docelic@spinlocksolutions.com // Apr 2007. // Last review Feb 2008.
http://techpubs.spinlocksolutions.com/irix/remote-irix-6.5-installation-from-linux.html

An up-to-date, works-the-first-time guide to adjusting a Linux server to the purpose of remotely installing Silicon Graphics IRIX 6.5 operating system.

Introduction

To perform the installation, you will need Silicon Graphics IRIX 6.5 Foundation CDs (2-set) and the IRIX 6.5 "Installation tools and overlays" (3- or 4-set).

Installation tools and overlays for version 6.5.22 can be downloaded with free registration from SGI Supportfolio.

Foundation CDs are not freely downloadable, they need to be obtained by either:

  1. paying for Supportfolio software subscription
  2. searching for original box packages on Ebay
  3. buying used hardware with software included
There are no software packages containing only the Foundation CDs, so if buying from Ebay, the sale will inevitably contain overlays. However, make sure that the package on sale is *a full CD set* and not just upgrade (upgrade boxes contain only the overlays and NO Foundation CDs). As a general rule of thumb, if the CD set has less than 5 CDs, it is surely not a full package. (Full package sets usually contain extra software and demos, and can have 10 or 14 CDs altogether).

For older SGI Irix workstations, such as Indy, Indigo, Indigo 2 and O2, Irix releases 6.5.21 or 6.5.22 are best. IRIX 6.5.22 is the last version that supports these older systems. Irix releases after 6.5.22 only work on newer workstations, Octane, Octane 2, Fuel and Tezro.

For buying SGI Irix workstations, browse regional Ebay stores, Reputable Systems sales and SGI Warehouse Clearances. Ebay offerings are cheaper, often multiple times in comparison to "commercial" offerings.

For basic desktop play, all workstations, including old Indys, Indigos and O2 are, surprisingly or not, enough for normal work. Octane and newer machines are perfectly fine for all computer use. More on SGI hardware purchase advice from the irreplaceable Ian Mapleson's site (look for specific purchase advice pages).

Placing IRIX 6.5 software into a common directory on the Linux server:

Software from tarballs or CD Roms needs to be placed in a single directory on the Linux server (in this guide, /mnt/6/irix/ will be used as the location).

All dist/* files from each tarball or CD need to be copied into the installation directory. In the end, the directory should be full of *.sw, *.sw64, *.src, *.man, *.idb and similarly-named files. If your CDs or packages do not have the dist/ subdirectory, then the files are probably just in the parent directory, so copy them.

PC CD drives usually cannot read SGI CD-Roms which are saved in EFS filesystem and 512-byte block. (Filesystem itself is not the problem, the block size is). The solution is to dd CD-Roms verbatim to the disk - that will give you the .efs files, then mount them using mount -o loop and copy files out of them to a normal Unix directory.
Something like this for every CD:
dd if=/dev/cdrom of=img   # (Don't worry about read errors at the end)
mkdir -p mnt
mount -o loop -t efs img mnt
cp -a mnt/dist/* /mnt/6/irix/
umount mnt
rm img

In the Linux installation directory, you should also have the files sa and mr, and subdirectory miniroot/ with files named unix.IP<XX>. Those are not found on Foundation CDs; they normally come on the first CD of the overlays - which is also correspondingly named "Installation tools and overlays".
The name of the SASH shell from above ("sa") might vary, depending on how old your system or Irix release is; Extension .64 or no extension indicate 64-bit variant; ARCS indicates 32-bit.

If you will want to re-partition the disk(s) before installation, copy file stand/fx.64 to the toplevel directory (/mnt/6/irix/). The stand/ directory and its files are also found on the first overlay CD.

You will surely want to repartition and change partition types if you are installing over an old Irix version that used the EFS filesystem (i.e. Irix 5.x). Otherwise, Irix 6.5 will honor the EFS setting, and then, during installation, it will require EFS packages which won't be present on any of your CDs -- preventing you from starting the installation.

Understanding the examples

In the config files, here's what the IP addresses and hostnames mean:

cyberstation (IP address 192.168.7.2) == Gnu/Linux install server
boyd (IP address 192.168.7.9, Hardware address 08 00 98 13 ad f7) == Irix client

GNU/Linux network configuration

To solve network problems that PROM has when talking to a Linux server, simply run the following on the server machine:

echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

Note that the above settings are not retained over a server reboot, so you'll want to add them to files such as /etc/sysctl.conf, /etc/bootmisc.sh or /etc/rc.local.

What GNU/Linux software will you need on the server and how to configure it properly?

Chances are that your GNU/Linux distribution already contains the appropriate versions of packages. Here, Debian GNU will be used for actual examples.

  1. MaraDNS - DNS server (Homepage: http://www.maradns.org/, package maradns)
    You need a local DNS server running to solve a ton of possible quirky problems. Basically, you will have a way to tell the Irix client which DNS server to use, and that server must be able to resolve the hostname of the Linux install server to an IP. MaraDNS is a quick, file-based DNS server that you can install & configure in 2 minutes. Make sure the version you install is 1.2 or higher if you want to use my example configs!


    Configuration:
    - See working example /etc/maradns/mararc
    - See working example /etc/maradns/db.spinlock.hr
    - As seen, make sure DNS server binds to network IP, and test with shell command:
     
           askmara Acyberstation.spinlock.hr. 192.168.7.2

    - If you want to be ultra-fast with configuration, wget and run http://hcoop.net/~docelic/vice-setup-maradns . This script tries to auto-detect values and create config in /etc/maradns/ . The script was created earlier for a different purpose but you see, MaraDNS is quick solution to every ad-hoc DNS problem.

  2. Bootp server (Homepage: ftp://ftp.ntplx.net/pub/networking/bootp/, package bootp)

    Configuration:
    - /etc/inetd./conf: bootps  dgram udp wait  root  /usr/sbin/bootpd  bootpd -i -d 4 -t 120
    - /etc/bootptab: boyd:ha=08009813ADF7:dn=spinlock.hr:ds=192.168.7.2:hd=/mnt/6/irix:td=/


    ("boyd" is Irix client name, ha= is its hardware address (use "printenv" in PROM and see "eaddr"), then there is the domain the machine belongs to, and the name server to use (just to resolve Linux server name, nothing else). Then hd= path to all Irix files).

    IMPORTANT: You must use client hostname and not an IP in /etc/bootptab, and you must have the entry for that hostname in server's /etc/hosts . (You also must use hostname and not an IP when the client installation asks for "Remote server").

    If you later get log reports like "ignoring request for server... ", it means you did not use hostnames in /etc/bootptab , and in Irix's "remote server: " prompt during installation.

  3. Tftp server (Homepage: ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/, package tftpd)


    Configuration:
    - /etc/inetd.conf: tftp                       dgram     udp         wait       nobody   /usr/sbin/tcpd   /usr/sbin/in.tftpd /

  4. Rsh server (Homepage: ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/, package rsh-server)


    Configuration:
    - /etc/inetd.conf: shell     stream   tcp    nowait   root    /usr/sbin/tcpd   /usr/sbin/in.rshd
    - /etc/hosts.equiv: cyberstation boyd (these are two hostnames, and each hostname needs to go in its own line, not in one line like shown)
    - Add user "guest" to the system, and create ~guest/.rhosts with 1-line content: boyd.spinlock.hr root
    - Set guest user's shell to /usr/local/bin/kshwrap, and create that file to contain:
           #!/bin/sh
         exec /bin/mksh
    - Chmod the kshwrap script to 755

    This is much better solution than having to replace system's /bin/sh shell with Korn shell, like some other folks have advised. Replacing /bin/sh with Korn shell makes your system unbootable and causes enough problems that it's not possible to permanently have it that way.

  5. Enhanced version of the Korn Shell (Homepage: http://mirbsd.de/mksh/, mksh)


    Configuration:
    - Nothing, just install it, make sure /bin/mksh is there. (Location isn't fixed, but if you change it, make sure you adjust my example configs which use it).

Monitoring log files on GNU/Linux install server

tail -f /var/log/{syslog,messages,auth.log}

Starting installation from IRIX client


I hope this is all. Comments welcome.

docelic-AT-spinlocksolutions.com
http://www.spinlocksolutions.com/ - Advanced Unix-based networks for commercial and education sectors.

http://techpubs.spinlocksolutions.com/