Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info. |
IRIX Network Installation from FreeBSD to an Octane
Foreword
The purpose of this article is to help people (re)install the IRIX 6.5.16 operating system on an SGI Octane; the installation is made through a network (LAN), from a FreeBSD server.
Server configuration
As an installation server, I'm using FreeBSD:
# uname -r 5.3-RELEASE-p37 #
It appears that FreeBSD 6.2 supports exactly the same configuration.
The discs
A directory structure has to be created. The chosen directories' names can be different, but they have to be coherent with the next steps:
# su - Password: # mkdir -p /tftpboot/IRIX6.5.16 # cd /tftpboot/IRIX6.5.16 # mkdir Overlays_1of4 Overlays_2of4 Overlays_3of4 Overlays_4of4 Foundation_1 Foundation_2 Applications
At this point, you can fill the directories with the content of the CDs. Just take care of copying the correct directory structure, by using the -R option of the cp command:
# cp -R /cdrom /tftpboot/IRIX6.5.16/Overlays_1of4 # cp -R ...
The network
For the IP addresses, I have the following configuration:
Hostname | IP addr | Netmask | Purpose |
---|---|---|---|
<network> | 192.168.1.1 | 255.255.255.0 | |
desktop | 192.168.1.2 | 255.255.255.0 | The installation server (aka the FreeBSD box) |
octane | 192.168.1.3 | 255.255.255.0 | The installation client (aka the IRIX box) |
On the server, you'll have to get the three following programs run:
- tftp
- bootp:
- rsh
tftp
In /etc/inetd.conf, add the following line:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Here you see the importance of the creation of the /tftpboot directory...
bootp
In /etc/inetd.conf, add the following line:
bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab
rsh
In /etc/inetd.conf, add the following line:
shell stream tcp nowait root /usr/libexec/rshd rshd -L
As Sash will run installation commands through rsh, the shell that will be invoqued must be the Korn Shell. Letting bash, csh or another shell just won't allow you to perform the installation. Adding ksh to your system can be easily done with the ports:
# cd /usr/ports/shells/pdksh/ # make install
This has added /usr/local/bin/ksh to your server. The problem is that Sash will request a Korn Shell, called sh, located in /bin, and that there is already a /bin/sh, which is used by the system to run boot scripts! So you'll have to replace the current /bin/sh:
# cd /bin # mv sh _sh # cp /usr/local/bin/ksh sh
At this point, the server may not boot correctly anymore!!! Be sure to undo the replacement before you reboot or shutdown this box, which can be done simply like that:
# cd /bin # mv _sh sh
When Sash connects to your server to perform the installation, it will invoque the rshd daemon as root or as guest. As I think that letting a unprotected root account being accessed isn't really a good idea, you should create a guest user account, if you don't have one yet. It can be easily done that way (of course, as root):
# pw useradd guest -g staff -G staff -m -w none
Now connect to this account (starting from root), and give it the permission to accept rsh logins:
# su - guest \u@\h:\w> echo 'octane root' >> .rhosts \u@\h:\w> exit #
As the octane machine name has been used here, it has to be correctly resolved in /etc/hosts:
# echo -e "192.168.1.3\t\toctane" >> /etc/hosts
And finally, as the last server configuration action, restart inetd:
# killall -HUP inetd
You're done!
Client configuration
Boot octane, and click on the 'Stop for Maintenance' button. There, go to 'Enter Command Monitor'. The best thing to do is to reset your environment, to start from a clean base, and set some variables:
>> resetenv >> setenv -p notape 1 >> setenv -p netaddr 192.168.1.3 >> setenv -p srvaddr 192.168.1.2 >> setenv -p fxaddr bootp()$srvaddr:/IRIX6.5.16/Overlays_1of4/stand/fx.64 >> setenv -p tapedevice bootp()$srvaddr:/IRIX6.5.16/Overlays_1of4/dist/sa
Some short explanations:
- setenv -p makes the setting remain after a reset/reboot
- the name of the 'Overlays_1of4' and 'IRIX6.5.16' directories are to be coherent with the one you created when you copied the files from the CDROM to the server
- variables can be reused, using the $ (dollar) character
Start the installation:
>> boot -f $fxaddr --x Obtaining /IRIX6.5.16/Overlays_1of4/stand/fx.64 from server 192.168.1.2 2112+112208+27757+10872 entry: 0xa80000005fd3f0a0 SGI Version 6.5 ARCS BE64 Apr 10, 2002 fx: "device-name" = (dksc) fx: ctlr# = (0) fx: drive# = (1) ...Opening dksc(0,1,0) ...drive selftest...OK Scsi drive type == SEAGATE SX173404LC BD12 ----- please choose one (? for help, .. to quit this menu)----- [exi]t [d]ebug/ [l]abel/ [a]uto [b]adblock/ [exe]rcice/ [r]epartition/ fx>
Here, answer the questions: if the hard disk you're planning to install IRIX on is the first internal hard disk (which means that it is settled in the lower internal hard disk bay, just above the light bar), then the default propositions are OK. Otherwise adapt the parameters to your configuration: for example, the controller (ctlr) #1 is for the external scsi devices (the connector behind the octane), the drive number corresponds to the position it occupies on the scsi channel, ...
Now we can partition the drive with fx:
fx> r fx/repartition> ro ['xfs', and validate with 'y'] fx/repartition> re ['swap' partition, work in megabytes, size of '512', and validate with 'yes'] fx/repartition> .. fx> l fx/label> c fx/label/create> a fx/label/create> .. fx/label> sy fx/label> /exit
Some explanations:
- line 2: we're creating a root partition, which means that everything will be install on this single partition; the size of the swap partition a automatically choosen
- line 3: the size of the swap partition is increased to 512 MB; I've read somewhere that changing the partitions' geometry removed the risks that fx considers that there haven't been any changes made to the disk, and so that the final synchronization isn't correctly run [I don't know much about that subject]
- line 9: the changes to the partitions' geometry are written to the disk
At this point, the Octane must have rebooted. When arriving on the boot menu, click on Enter Command Monitor.
Start the proper installation from the client like that:
>> boot -f $tapedevice(sash64) Obtaining /IRIX6.5.16/Overlays_1of4/dist/sa(sash64) from server 192.168.1.2 896+111372+16725+3848 entry: 0xa80000005ffa6d5c Standalone Shell SGI Version 6.5 ARCS Apr 4, 2002 (64 Bit) sash:
The installation is really started only now:
sash: install
A graphical progress bar must now have shown up, saying Copying installation tools to disk. Some more bla-bla, and now you have to enter the IP address of the IRIX box:
What is the network addressof IRIS? 192.168.1.3 What is the netmask for 192.168.1.3? Press Enter for the IP class default [0xffffffff00]: Starting network with hostname: IRIS, at ip address: 192.168.1.3 TFTP failure: get: /IRIX6.5.16/overlays_1of4/dist/miniroot/unix.IP30 /unix (tapedevice=bootp()192.168.1.2:/IRIX6.5.16/Overlays_1of4/dist/sa(mr)) Default distribution to install from: ....... [...] Inst>
Do not care about the TFTP failure: it is normal, as the path of the installation data has to be changed. Now let's change the hostname:
Inst> 13 [...] Admin> 12 What is the hostname (system name) of your machine? octane Starting network with hostname: octane, at ip address: 192.168.1.2 Admin>
Now, let's format the newly created partition:
Admin> 11 [...] Are you sure you want to clean your disks ? { (y)es, (n)o, (sh)ell, (h)elp }: y WARNING: There appears to be a valid file system on /dev/dsk/realroot/ already. Making a new file system will destroy all existing data on it. Make new file system on /dev/dsk/realroot? yes [...] Reading product description .. 100% Done. Admin> .. [...] Inst>
To ensure that the connection between the installation client and its server is correct, you can follow the connections to the server, by tailing the right log file on the server:
# tail -f /var/log/auth.log
Now let's start reading the sources for the installation:
Inst> 1 Previous installation site: [...] Install software from: [192.168.1.2:/IRIX6.5.16/Overlays_1of4/dist] 192.168.1.2:/tftpboot/IRIX6.5.16/Overlays_1of4/dist Connecting to 192.168.1.2 ... Connecting to 192.168.1.2 ... [...] Select appropriate software stream to install. ------------------------------------------------- Before you install an intermediate release, you must select [...] new stream requires reinstalling portions of the IRIX operating system. ------------------------------------------------- 1. Place me on the maintenance stream. 2. Place me on the feature stream. 3. Cancel Please enter a choice [1]: 2 [...] Install software from: [192.168.1.2:/tftpboot/IRIX6.5.16/Overlays_1of4/dist]
Some explanations:
- When specifying the path of the files on the installation server, don't forget to give the full path, including the top /tftpboot directory
- The two connexions to 192.168.1.2 are explainable by looking in the /var/log/auth.log file on the server:
Jul 15 01:38:51 desktop rshd[946]: root@octane as root: permission denied (authentication error). cmd='exec /bin/sh' Jul 15 01:38:51 desktop rshd[948]: root@octane as guest: cmd='exec /bin/sh'
- The first connexion is made from a root account, which isn't allow in our configuration (remember, in /usr/home/guest/.rhosts, we mentioned that only root account on a box called octane could connect through rsh to the guest account)
The next step is to do with Overlays_2of4, Overlays_3of4, Overlays_4of4, Foundation_1, Foundation_2 and Application the same thing as we did with Overlays_1of4
Once that's done, finish reading the installation sources:
[...] 8 done (distribution information read, return to inst prompt) Install software from: [192.168.1.2:/tftpboot/IRIX6.5.16/Applications/dist] 8 Inst> keep * Inst> install standard Inst> install prereqs No matches for "prereqs" were found Inst> conflicts No conflicts Inst> go Reading fileset information .. [...]
Now, it's time for a coffee (aka long pause)...
After a few minutes, there should be an error:
[...] appletalk.sw.xinet_base: ( if test 'grep ksd $rbase/var/adm/appletalk/services | wc -l` -eq 0; then echo "# Start K-AShare Server\\n/usr/etc/appletalk/ksd -f -o -i X/usr/bas/hostnameX" | tr X \\140 >> $rbase/var7adm/appletalk/services; f i ) /bin/sh: tr: not found ERROR: An error occurred while: Installing new versions of selected appletalk.sw subsystems Command "( if test `grep ksd $rbase/var/adm/appletalk/services | wc -l` -eq 0; then echo "# Start K-AShare Server\\n/usr/etc/appletalk/ksd -f -o -i X/usr/bsd/ hostnameX" | tr X \\140 >> $rbase/var/adm/appletalk/services; fi )" failed (ret urn status 127, subsystem appletelk.sw.xinet_base 1430002000) Error/Interrupt Menu 1. retry 2. stop 3. continue [...] Interrupt> 3
Just continue... Time for another coffee !
When the installation is over, quit to launch requickstarting:
Inst> quit Requickstarting ELF file (see rqsall(1))[...] Automatically reconfiguring the operating system. Ready to restart the system. Restart? { (y)es, (n)o, (sh)ell, (h)elp }: y Preparing to restart system
Now the system should boot!