Installing IRIX via Network
with a Linux Server

 General Information

Introduction

I decided that I want to put up an installation server for IRIX, and I decided to use a Linux box for some reasons for this job. Unfortunately I found out that configuartion of this server as an installation server was not so simple, plus there is a really nasty trick to get it work.

Server Prerequisites

Your Linux server at least needs a BOOTP or a combined DHCP/BOOTP server, an rsh server and a tftp server. I use a DHCP server that does its job as a BOOTP server fine. This documentation will explain how to setup the DHCP server, as most Linux-systems do have a combined DHCP/BOOTP server.

Configuring BOOTP/DHCP

Our Linux-server is called "ennyah" and our SGI box is called "michelangelo". Again we need the hardware MAC adress of the SGI, in our case its 08:00:69:0b:29:8c. We then need to edit the file /etc/dhcpd.conf on the Linux server in order to fill in the adress of our host. The following example shows the entry for the SGI machine, you probably also need to enter

host michelangelo {
    hardware ethernet 08:00:69:0b:29:8c;
    fixed-address michelangelo;
    server-name "ennyah";
}

Note that in this example, the Linux server is able to resolve the machine name michelangelo to its IP adress. If this is not the case, your DHCP configuration might look like this:

host 192.168.1.24 {
    hardware ethernet 08:00:69:0b:29:8c;
    fixed-address 192.168.1.24;
    server-name "ennyah";
}

After adding these lines to your /etc/dhcpd.conf file, you need to restart the DHCP server, probably by typing

>> /etc/init.d/dhcpd stop && /etc/init.d/dhcpd start

Refer to your Linux documentation, the starting/stopping of daemons is quite different from one Linux distribution to another.

Configuring the rsh-Server

First you have to add the IP address of the SGI workstation in thefile /etc/hosts.equiv

# /etc/hosts.equiv: list of hosts and users that are granted "trusted"
# r-command access to your system.
michelangelo
ennyah

In our case the SGI boxs name is "michelangelo" and I also added the servers name "ennyah" itself for testing purpose.

Second you have to (or at least you should) create a new user, I named him instsrv. This is usually done with the adduser command.

>> adduser instsrv

It is wise to lock this account, then no direct login is possible, but rsh will still do its job fine. But it is important that this user uses /bin/sh as his login-shell, or the installation might fail!

Third you have to create a .rhosts file in the home directory of the newly added user instsrv and grant access from the SGI box as user root to this account. This is done by adding the following lines to the file .rhosts

# ~/.rhosts: list of hosts and users that are granted "trusted"
# r-command access to your system as this user.
michelangelo root
ennyah root

Again I also added the installation server itself for testing purpose. Now you can test the setup on the server by typing

>> rsh -l instsrv

This should give you a shell as user instsrv, you can check this by typing whoami, which should return "instsrv".

Chosing the right Shell

As I already mentioned, it is important that the new user instsrv has the login shell /bin/sh and not for example /bin/bash or /bin/csh. Unfortunately inmany modern Linux distributions /bin/sh simply is a link to /bin/bash. You have to correct this, and point the link to a korn shell, for example by typing

>> cd /bin
>> ln -s ksh sh

WARNING!

Actually I found out that changing the target of the link /bin/sh from /bin/bash to /bin/ksh may break some system scripts, inlcuding some boot-up scripts! So it might be wise to relink the file with its original target after the installation has finished.

Starting the Installation

Now you finally can start the installation on your SGI. Simply go into the PROM and chosie "Install Software", then chose "From Network". Enter the IP adress, then the directory where the file sa can be found (this file is included with the first disc of any overlays, it is not included with the base installation CDs of IRIX 6.5). The installation process should start now, if you experience any problems see below.

From inst, you can access the server via

inst> open instsrv@192.168.1.6:/majix/install/IRIX-base-6.5

where instsrv is the name of the new user account created for remote installation, 192.168.1.6 is the adress of the server and /majix/install/IRIX-base-6.5 is the path of the installation directory. Probably you have more than one.

The Trick to get it work

It seems that the tftp-Implementation in the PROM of SGIs or the TCP/IP-stack in the PROM has some problems with an automatic PMTU (Path Maximum Transfer Unit) discovery algorithm used by many Linux systems. This has to be disabled in order to get tftp work by typing (as root)

>> echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

After the installation is finished, you can reset this flag by typing

>> echo 0 > /proc/sys/net/ipv4/ip_no_pmtu_disc

If you still have some problems, it might be the case that the TFTP server is using a local port number of 32768 or higher - this may also cause some problems, but this can also be handeled by typing

>> echo 2048 32767 > /proc/sys/net/ipv4/ip_local_port_range

and the default value can be restored by typing

>> echo 32768 61000 > /proc/sys/net/ipv4/ip_local_port_range

Good luck, at least these tricks worked for me!

 Links
  • none