Last update: Mar 2019 // Previous updates: Dec 2018, Mar 2018, Jul 2016, Mar 2016, May 2014, Dec 2011, Apr 2009, Feb 2008 // First created: Apr 2007 Davor Ocelic, firstname.lastname@example.org, http://techpubs.spinlocksolutions.com/ http://techpubs.spinlocksolutions.com/irix/remote-irix-6.5-installation-from-linux.html
This is a working, up-to-date guide for
performing a network install of
the Silicon Graphics IRIX 6.5 operating system onto a SGI MIPS workstation.
A GNU/Linux machine will be used and configured as the remote install server.
So, let's go!
For obtaining SGI MIPS workstations, check out the following resources:
For basic desktop play, all workstations, including old Indys, Indigos, and O2 are fine.
400MHz Octane and newer machines are even usable for normal computer use, except that there is no "modern" web browser on them.
The latest/last workstation from SGI was SGI Tezro, sold between 2003 and 2006, with CPU configurations ranging from 1x700MHz to 4x1GHz.
You can see various modern SGI/MIPS performance videos on Irinikus' video channel.
IRIX release 6.5.30 is the last/newest version and is recommended for SGI O2, Octane, and newer workstations (IP27, IP30, IP32, IP35).
IRIX release 6.5.22 is the last version working on older workstations (Indy, Indigo2 and others earlier than IP27).
It is recommended to use the highest IRIX release supported by your machine to get all the important software patches etc.
On the GNU/Linux server machine, we will need to prepare the toplevel directory in which we will place all IRIX files.
This is true regardless of whether you have the IRIX 6.5 CDs or you want to download the install files from the Internet.
We will create a user named irix and use its home directory /home/irix/ as the toplevel directory for everything.
There are actually a couple steps that will be done here as part of the whole procedure. We will:
The following commands will set up the whole thing (don't skip or change anything, everything shown here is required):
apt-get install mksh adduser --home /home/irix --shell /bin/mksh --system --group --disabled-password --gecos 'SGI IRIX' irix echo '+ root' > /home/irix/.rhosts mkdir /home/irix/i chown -R root:root /home/irix mkdir -p /srv/tftp ln -sf /home/irix/i /srv/tftp/iPlease note the line '+ root' above, which we add to /home/irix/.rhosts.
IRIX 6.5 software can be found in the form of physical installation media (CDs), CD images (.iso files), or tarballs (.tar.gz files). The form varies, but the files they contain should be identical.
If you do not have the installation files, you can download IRIX 6.5.30 from Archive.org's IRIX collection:
Regardless of the method, I suggest using the directory /home/irix/i/ for all common IRIX 6.5 files, and then using subdirectories 30/ and 22/ for IRIX 6.5.30- and 6.5.22-specific files respectively.
(Please note that this directory structure is free-form; you can use any more developed hierarchy that will suit your needs. For example, if you also want to use this for IRIX 5.3 and IRIX 6.2 installations, then inside /home/irix/i/ you would probably want to insert another level of directories for 5.3, 6.2, and 6.5.
In our case we will be dealing just with IRIX 6.5 (releases 6.5.30 and 6.5.22), so we will place the common IRIX 6.5 files directly under /home/irix/i/, and its further version-specific files under 30/ and 22/.)
Here's the brief list of commands to configure that directory structure:
mkdir -p /home/irix/i cd /home/irix/i # Then, for IRIX 6.5.30: mkdir 30 # And/or for IRIX 6.5.22: mkdir 22
cd /home/irix/i # Place the following tarballs in this directory: # Foundation 1 # Foundation 2 # Development Foundation # Development Libraries # ONC3NFS # Then, for IRIX 6.5.30: cd /home/irix/i/30 # Place the following tarballs in this directory: # Overlays 1 of 3 # Overlays 2 of 3 # Overlays 3 of 3 # Applications # Complementary Applications # And/or for IRIX 6.5.22: cd /home/irix/i/22 # Place the following tarballs in this directory: # Overlays 1 of 3 # Overlays 2 of 3 # Overlays 3 of 3 # Applications
Once you have the tarballs in place, simply execute the unpack command in each directory where tarballs exist.
In our example those were directories /home/irix/i/, /home/irix/i/30/, and /home/irix/i/22/:
cd /home/irix/i for p in *.tar.gz; do tar zvxf $p; done cd /home/irix/i/30 for p in *.tar.gz; do tar zvxf $p; done cd /home/irix/i/22 for p in *.tar.gz; do tar zvxf $p; done
If you have IRIX software on CDs, the procedure is just a little bit more involved.
Namely, SGI CD-Roms have an EFS filesystem on them and a 512-byte block size.
GNU/Linux of course supports EFS, but typical PC CD-Rom drives usually cannot mount SGI CD-Roms because they do not support the 512-byte block size.
The solution is to dd CD images to disk. That will create .efs image files, which can then be mounted locally
from the hard disk using mount -o loop -t efs, avoiding the block size issue.
Once mounted, one can access the files in the images and copy them over.
Here's the procedure that should be done for each CD you have (if you have ISO images, you skip the dd step and use your existing filenames instead of efs.img):
cd /home/irix/i/ # Make a raw copy (image) of the CD: dd if=/dev/cdrom of=efs.img # (Don't worry about any read errors reported at the end) # Mount the image from disk: mkdir -p tmp mount -o loop -t efs efs.img tmp # Copy files found in the image to the filesystem: # NOTE: See explanation below for what to put instead of "IMAGE_NAME" cp -a tmp IMAGE_NAME # Done with this CD, clean up: umount tmp rm efs.imgNote about IMAGE_NAME: For each CD, this should be replaced with the actual "name" of that CD. We suggest that you use the same directory names which would be used with the tarball method, which are: apps, capps, devl, devf, ovl1, ovl2, ovl3, f1, f2, and nfs. (You can read the previous section about tarballs if you need additional guidance.)
Note on development CDs: if you have Development Foundation and Development Libraries CDs, make sure they are version 1.3 as only that version will match the 7.4.x compiler series which you may want to install later. The tarball links above do contain version 1.3.
After following the procedure above and copying the files, you should end up having /home/irix/i/ with a couple subdirectories in it.
The output of ls -al should look like this (if you didn't use tarballs ignore the .tar.gz files):
cd /home/irix/i ls -al . 30 22 /home/irix/i: drwxr-xr-x 9 root root 49152 May 29 02:55 . drwxr-xr-x 3 root root 49152 May 29 01:12 .. drwxr-xr-x 3 root sys 4096 Feb 18 2009 devl drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5-Development-Libraries.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 devf drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5-Development-Foundation-1.3.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 f1 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5-Foundation-1.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 f2 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5-Foundation-2.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 nfs drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5-ONC3NFS.tar.gz /home/irix/i/30: drwxr-xr-x 9 root root 49152 May 29 02:55 . drwxr-xr-x 3 root root 49152 May 29 01:12 .. drwxr-xr-x 3 root sys 4096 Feb 18 2009 apps drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.30-Applications.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 capps drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.30-Complementary-Applications.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 ovl1 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.30-Overlays-1.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 ovl2 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.30-Overlays-2.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 ovl3 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.30-Overlays-3.tar.gz /home/irix/i/22: drwxr-xr-x 9 root root 49152 May 29 02:55 . drwxr-xr-x 3 root root 49152 May 29 01:12 .. drwxr-xr-x 3 root sys 4096 Feb 18 2009 apps drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5-Applications.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 ovl1 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.22-Overlays-1.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 ovl2 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.22-Overlays-2.tar.gz drwxr-xr-x 3 root sys 4096 Feb 18 2009 ovl3 drwxr-xr-x 3 root sys 4096 Feb 18 2009 SGI-IRIX-6.5.22-Overlays-3.tar.gz
The first files that will be booted remotely from the SGI workstation are the files from the "Installation Tools and Overlays 1" CD. That means files from ovl1/stand/, file ovl1/dist/sa, and files from ovl1/dist/miniroot/.
To further confirm that your directory structure is correct and that you have these files, your output when listing them with ls -al should look like this:
cd /home/irix/i ls -al 30/ovl1/dist/sa 30/ovl1/dist/miniroot 30/ovl1/stand -rwxr-xr-x 1 root root 20067840 Feb 21 2011 30/ovl1/dist/sa 30/ovl1/dist/miniroot/: -rwxr-xr-x 1 root root 11753200 Feb 21 2011 unix.IP27 -rwxr-xr-x 1 root root 10804368 Feb 21 2011 unix.IP30 -rwxr-xr-x 1 root root 8330648 Feb 21 2011 unix.IP32 -rwxr-xr-x 1 root root 12819040 Feb 21 2011 unix.IP35 30/ovl1/stand/: -rwxr-xr-x 1 root root 516752 Feb 21 2011 fx.64 -rwxr-xr-x 1 root root 274940 Feb 21 2011 fx.ARCS -rwxr-xr-x 1 root root 1598624 Feb 21 2011 ide.IP30 -rwxr-xr-x 1 root root 750032 Feb 21 2011 ide.IP32 -rwxr-xr-x 1 root root 266768 Feb 21 2011 sash64 -rwxr-xr-x 1 root root 343604 Feb 21 2011 sashARCS(The fx.64 and fx.ARCS are the disk partitioning programs that you will use before starting the actual installation.
So, how will the whole procedure look like?
The first contact that the SGI workstation will make with the GNU/Linux install server will be using the bootp protocol ("Internet Bootstrap Protocol").
This service will allow the client to configure its own basic settings like name, server name, IP addresses, and the initial boot file.
So on the Linux server we will install and configure the bootp daemon.
Then, the SGI client will use the TFTP protocol to download the basic files needed to start the installation program. This will include files such as i/30/ovl1/stand/sash*, i/30/ovl1/stand/fx*, i/30/ovl1/dist/sa, and i/30/ovl1/dist/miniroot/unix.IPXX.
For that, on the Linux server we will install and configure the tftpd daemon.
And finally, once the installation program ('inst') starts, it will no longer use bootp or tftp, but it will use rsh to connect to the install server and transfer files.
For that, on the Linux server we will install and configure the rsh daemon.
At this point we need to configure the described server software on the GNU/Linux machine to act as an IRIX install server.
Your choice of GNU/Linux distribution is not particularly important, although this guide shows examples for Debian-based distributions like Debian GNU, Ubuntu, and Devuan GNU+Linux.
If using a different distribution, make sure that you use the exact software packages as listed here, because other seemingly equivalent packages have various subtle differences in behavior, and SGI clients will not work with them.
Also, before we begin with the configuration, our example network will look like this:
|Hostname||IP Address||Purpose / Function|
|srv1||10.0.0.1||GNU/Linux install server|
|boyd||10.0.0.2||SGI IRIX workstation (being installed)|
For installing older machines like Indy or Indigo, you might need to run the following to solve any network problems that a MIPS PROM might have when talking to a GNU/Linux server:
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_rangeNote that the above settings are not retained over a server reboot, so if you want to make them permanent, do so by adding them to the system startup files such as /etc/sysctl.conf, /etc/sysctl.d/local.conf, /etc/bootmisc.sh, /etc/rc.local or similar file.
Now, we will install some specific versions of software, which all exist in Debian so you won't need to download them manually, but they are listed here for completeness or help if you are not using Debian:
apt-get install openbsd-inetd bootp tftpd rsh-redone-server rsh-redone-client # Then edit /etc/inetd.conf and: # 1. Enable 'shell' if not already enabled # 2. Remove '#' at the beginning of 'bootps' line and add "-d 4" to the end # 3. Enable 'tftp' if not already enabled and add option -s to it shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120 -d 4 tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd -s /srv/tftp # Then edit /etc/bootptab to add an entry for the SGI client machine: # Only two fields are needed: # 1) Intended client machine hostname (must be hostname, not IP). It doesn't matter if the hostname resolves or not. # 2) IP address the client will connect from (and later have) boyd:ip=10.0.0.2 # And reload all services pkill bootpd pkill in.tftpd pkill in.rshd invoke-rc.d openbsd-inetd reload
It is absolutely necessary to be monitoring the logs while trying to connect to the Linux server from SGI clients.
So, make sure you have the following running on Linux:
tail -f /var/log/*log -n0Make absolutely sure that you are watching the logs because we will now test bootp, tftp, and rsh.
Before continuing any further, it is crucial to confirm that the bootp and tftp server we have configured above now indeed work, and are usable from the SGI client.
Historically, the intricacies of the Netkit "bootpd" daemon and incorrect flavors of tftpd daemon were causing various problems in this step.
However, my configuration given above was thoroughly tested to provide the simplest, fully complete, and widest-working configuration, so you generally shouldn't run into obstacles.
The best way to test the whole thing consists of just two steps:
So, if bootp() of sash didn't work, there could be only 7 causes (and solutions!) to this:
Testing RSH is easy. Since our user's .rhosts file includes a "+ root", this means passwordless logins to this account are available from user root on all machines, including localhost.
(Ideally we would want to check the connection from the SGI client, but since we have already confirmed the network connectivity with the bootp/tftp test, we can simplify here and just try a local passwordless login into the account.)
As root, run the following:
rsh irix@0If it works, press Ctrl+d of course to log out and get back to your prompt.
Before you start the installation, check if your SGI machine has multiple monitor outputs. If so, make sure that the monitor cable is plugged into the first monitor.
E.g. in the case of a DCD (Dual Channel Display) option for Tezro, this would be the bottom-right DVI port when looking from the back.
Things will work just fine even if you connect the monitor to the other port, but when the installation completes and the system reboots into a graphical login, you will be looking into a secondary/empty screen instead of the login prompt.
So, let's begin:
Always first run fx to set up or verify partitions, but particularly if you are
installing over an old
IRIX version that used the EFS filesystem (i.e. IRIX 5.x).
If you do not change the old EFS partition type, IRIX 6.5 will honor the EFS setting and require the EFS packages.
EFS packages might not exist in your IRIX 6.5 distribution, and will prevent you from starting the installation.
In the Command Monitor / PROM shell, run:
bootp():i/30/ovl1/stand/fx.64 -x(Remember, .64 for 64-bit, .ARCS for 32-bit)
If invoking the partitioner does not work, refer back to the section "Testing bootp and tftp".
We have tested the install server there by trying to run "sash". This here isn't any different, except that we are booting "fx.64 -x" instead of "sash64".
When fx starts up, it will ask three questions to determine which drive you want to partition:
fx: "device-name" = (dksc) fx: ctlr# = (0) fx: drive# = (1) ...opening dksc(0,1,0)Just press ENTER three times. If you've got multiple disks, the second disk will be drive# 2 and so on.
fx supports hierarchical menus. To display the current partitioning layout on the disk, you can type "label", "show" and then "partitions".
A shorthand notation for this is "l", "sh", "part". Or even for all at once, you can type "l/sh/part".
If you type "l", "sh", etc. and get deeper into the menu hierarchy, you can go back a level by typing ".." or multiple levels by typing "../.." etc.
If you want to partition another disk, you can type "/.." and 'fx' will exit all menus and present you with the new disk chooser prompt.
If you want to interrupt any current command or prompt, press Ctrl+c.
To partition your main/root disk, choose "[r]epartition/" and "[ro]otdrive", accept "xfs", and type "yes". An alternative way for the same thing is to run "[l]abel", "[c]reate", "[a]ll".
To partition an additional disk (if you have one), go back to the disk chooser prompt, choose the other disk, and then partition it using "[r]epartition/" and "[o]ptiondrive", accept "xfs", and type "yes".
If you are done partitioning, type "/exi" to exit fx and return to the PROM monitor.
After you are done with fx, there are two ways to start the installation:
NOTE FOR OPTION 2: For this method to work, your Linux server must satisfy all 3 requirements listed above in the section "Testing bootp and tftp" under its troubleshooting item #6.
After starting the installation on the SGI, it will create a "miniroot" on the local disk by transferring the installation data from the remote server to it.
If working with a new disk, the installer will ask to format partitions and the block size to use. Use 4096kB block size for disks larger than 4GB, or 512B otherwise.
The installer might then ask you:
What is the hostname (system name) of your machine? What is the network address of ____?Answer with the same hostname and IP address you have dedicated to this machine in /etc/bootptab on the Linux install server.
At this point you should be in the 'inst' prompt.
If you are working with a non-clean disk, you must erase the disk by choosing "13", "11", "y", and "yes" in inst menus.
Also, inside Admin menu ("13"), you can choose options "12" and "13" to re-set the machine hostname and IP, just to be sure that they have the values you want. (Set these fields to the values you have intended for this system in /etc/bootptab on the Linux server.)
Then type ".." to exit Admin mode and go back to regular inst.
Now you need to load the available packages for installation by "opening" the first software distribution.
This is done using command "from" for the first image ("Installation Tools and Overlays 1"), and command "open" for all subsequent/additional images.
Inst might also keep you in a repeating prompt that allows you to easily open previously-used distributions and reduce the amount of typing.
Note that, as we mentioned earlier, the access to the Linux server at this stage is no longer being done via bootp/tftpd. Inst uses rsh.
Therefore, when you specify distributions to open, you need to include both the username and the Linux server's IP.
Also, please note that since TFTP is no longer involved and we are working with RSH, the file paths are no longer automatically prefixed with "/home/irix"; theoretically meaning we should be including /home/irix/ ourselves now.
However, since we have set the irix user's home directory to "/home/irix", we can continue using "i/30/ovl1" and other relative paths without prefixing them with /home/irix/.
Here's how the session would look like from "from" onwards:
from email@example.com:i/30/ovl1/dist # The installation will then ask whether you want to install the "Maintenance" (compatibility) or "Feature" (features) stream. # Choose "Feature" unless you know why you want "Maintenance". Then open the following additional distributions: firstname.lastname@example.org:i/30/ovl2/dist email@example.com:i/30/ovl3/dist firstname.lastname@example.org:i/f1/dist email@example.com:i/f2/dist firstname.lastname@example.org:i/devf/dist email@example.com:i/devl/dist firstname.lastname@example.org:i/nfs/dist email@example.com:i/30/apps/dist firstname.lastname@example.org:i/30/capps/dist(Some distributions come with additional notes which show on the screen page by page. If you wish to exit the pager and continue with loading, press "q".)
After you have loaded all the distributions, run the following:
keep * install standard install prereqs rem java_dev.*(It is OK if "install prereqs" reports that no prereqs were found.)
At this point, you should run conflicts to check if there are any important unresolved dependencies.
If everything went as planned, there should be only one, for java2_plugin.sw.mozilla_freeware, which you remove from installation by typing conflicts 1a
The response from the above should finally be "no conflicts", and then you can type go to start the software installations and quit when they are done.
After the procedure is done and you reboot, you should find yourself in your shiny new IRIX 6.5 installation!
There are a couple things you could/should do at this point:
Download and install IRIX patches.
Familiarize yourself with Nekoware, a collection of user-contributed and maintained open source packages for IRIX, created by the Nekochan community members.
Nekochan was abruptly and without notice shut down by its founder Peter Plank (Nekonoko) some time in 2018, bringing down with it tens of thousands of forum posts, wiki articles, media, and other content that was not mirrored or archived anywhere else, but some Nekoware mirrors remained active.
For installing Nekoware, you can either mirror the complete contents to your disk and run inst or swmgr on them, or you can use the script at http://techpubs.spinlocksolutions.com/irix/nekoware-installer/ to automatically list, select, download, and install Nekoware programs and their dependencies. The script will require a mirror to use (option -m) from which it would download the packages.
Check out resources at Modern_IRIX. This page contained links to ALL relevant resources that existed on the Nekochan wiki. Unfortunately, those links weren't all archived so a lot of links pointing to Nekochan on that page are no longer accessible, but at least it shows you what the topics/things were (so you can try to find a copy), and some other links are working.
There is a number of useful or necessary things that should be done on the IRIX system after installation. Instead of listing those steps manually, they were all converted into shell scripts, ready to be downloaded and executed. See: (link to come at some later point, I misplaced the directory with all the scripts and can't find it).