After getting more involved with SGI stuff as of lately I must admit it is a real bear to get IRIX loaded onto these puppies. This is for several reasons, one of which being I don’t have an external SCSI CD-Rom drive always laying around. Maybe I do now, but changing CDs and hoping that they’ll be continually reliable is a farce.
People in the past have suggested and discussed using an external hard drive loaded with the IRIX installation media, and whilst there is a nekochan page that gives a general overview the list of steps is very much so incomplete leaving people that attempt this with many missing gaps on what the hell they’re supposed to do. There are certain errors that pop up, and there is most certainly a lack of information on how to do this.. Well in a straight forward manner anyways. Many people have setup an install server on their PC or a dedicated box, but for me adding networking into the equation doesn’t allow me to just load something on the spot. This guide is a result of my Trials and Tribulations with getting IRIX loaded onto a fresh disk using a shit selection of software. This guide covers the process using a pair of Octanes, and was tested on a Fuel. Once your “installation hard drive” is complete it is ready to go forever. You can always just pop the disk in or attach to external SCSI and jump back to “Installing IRIX” section below to start preparing and loading the machine. If you follow my guide to the letter it might be wise to copy the whole thing to a text file on the root of your installer disk so you have an offline copy to reference when preparing other disks. There is also a YouTube video that compliments this writeup, which can be found here:
What’s required to install IRIX?
The IRIX media was distributed in a manner different from most other versions of UNIX and Linux of the day. The base IRIX 6.5 OS was released in June of 1998, this included the CD’s “Installation Tools”, “Foundations 1”, “Foundations 2”, “Applications”, “Development Libraries”, and “Development Foundations.” People will tell you time and time again that without at least foundations 1 and 2 from this very set that you will not be able to load a later version of IRIX. Later versions of IRIX will only include “overlay” CDs, which are pretty self explanatory. In my attempts to get an Octane working again I discovered that the 6.5.0 1998 CD set contains a flaw with the inst program that will throw an error when used on the Octanes. Later on, I also discovered that the 6.5.30 overlays do not work with the 6.5.0 1998 Release and will give an error in inst about having the incorrect version of base software. As a result you will need the following to accomplish this task:
- 6.5.x CD Set W/ Foundations
- 6.5.30 Overlays
- Spare SCSI Hard Disk (Internal or External, doesn’t matter)
- An already working SGI octane with IRIX installed
The first portion of this guide will cover installing IRIX without actually using the 6.5.30 set, only your main 6.5.x disk set. When I wrote this I used 6.5.19 which I finally was able to borrow after years of fighting with incomplete distributions. The last part of this guide will be how to implement the 6.5.30 overlays, and my experience with it.
Prepping your “IRIX Source” drive:
1.) The very first task is to use fx to partition the hard drive that you’ll be using as the IRIX repository. You’ll need to use an already working Octane for this task, or an O2 as long as it’s IRIX 6.5+. Use fx -x and make sure the drive is completely blank. (Make sure you pick the right drive in fx!) You can actually “format” it using fx by selecting “Exercise” >> “Sequential” >> Then type in “wr-c” and start at cylinder 0. This writes data and then reads it back to verify the disk is in good shape. Since it’s a destructive test it erases the entire drive along with it.
After your drive is erased, use .. to go back to the top level menu and then pick (R)epartition, >> then pick (RO)ot drive >> enter for for the default XFS >> and then yes to confirm. Finally you’ll need to use .. again to go back to the top, then pick (L)abel >> then pick [SY]nc. After that type “/exit” and you’re done.
In my octane, my drive that I am prepping is on SCSI channel 1, ID 4. This would show up as dksc(1,4,x) in the PROM, and will show up as /dev/dsk/dks1d4sX in the prom. Where X is the variable for the partition number. From here out remember to correct that as needed for your specific system in these instructions.
2.) I next used “mkfs_xfs /dev/dsk/dks1d4s0” (minus quotations) to create a new xfs file system on the disk. This is where our files go. I created a folder on my running irix install /external, and mounted dks1d4s0 to /external.
3.) Now you need to make the install folders from your installation media on the hard drive. Grab the IRIX disk set. In my case I had 6.5.19, so I I did it this way. using Foundations 1 & 2, as well as overlays 1,2,3,4. (Install tools and overlays is the same CD)
mkdir /external/base
cd /external/base
(insert foundations1 into the disk drive)
cp /CDROM/dist/* .
eject /CDROM
(insert foundations2 into the disk drive)
cp -r /CDROM/dist/* .
eject /CDROM
(repeat the last two commands for the rest of the required CDs)
I made a /external/dev folder and copied the contents of the development foundations, and development libraries CDs into there. I did the same with the Applications CD in /external/apps, as well as the NFS CD in /external/nfs, all 4 freeware CDs in /external/freeware and ..
4.) It’s time to extract the miniroot image from the inst tools / overlays disc we copied to the HD. If you did everything exactly right you should have the sa file on your new hard drive that we’ll need to extract with the mkboottape command.
cd /external
mkdir bootstuff
cp base/sa ./bootstuff/
cd bootstuff
mkboottape -x -f sa
(this will extract all the files in sa, one of them will be mr)
Alternatively, you can snag the miniroot itself from the CD using dvhtool if the above doesn’t work for you: dvhtool -v get mr /path/to/folder/mr /dev/rdsk/dks1d1vh
Now we write the miniroot image directly to the swap partition of our hard disk we are using to install from:
dd if=./mr of=/dev/dsk/dks1d4s1
(remember that /dev/dsk/dks1d1s1 might vary on your system here, the important part is you get the s1 on the end the same, for partition 1.)
5.) Next we need to “Copy the contents of the volume header from the working system’s drive to the new HDD’s volume header using dvhtool” as one very high level suggested guide on how to do this put it. How we actually do that is copying stuff from the volume header of the installation tools / overlays 1 CD. This gives us our sash, sash64, and anything else we might need. You can also grab this from your existing OS drive if you’re just going to install back to a system of similar architecture. This is what your working root disk volume header might look like:
[dvhtool image]
Since my IRIX installer drive will be targeted for many different systems, I’m just going to grab both sash’s and the mr direct from the CD. here is the contents of my CDs volume header:
[dvhtool image3]
Now we create a folder called volheader on the root of the running OS disk and copy the volume header stuff there. Remember that if you have issues finding the dksXdXvh file you must specify /dev/rdsk ,, r for Raw.
dvhtool -v get sash64 /disk2/irix6.5.19/volheader/sash64 /dev/rdsk/dks1d1vh
dvhtool -v get sashARCS /disk2/irix6.5.19/volheader/sashARCS /dev/rdsk/dks1d1vh
dvhtool -v create /disk2/irix6.5.19/volheader/sashARCS sashARCS /dev/rdsk/dks1d4vh
dvhtool -v create /disk2/irix6.5.19/volheader/sash64 sash64 /dev/rdsk/dks1d4vh
Alternatively this way I pulled the stuff from the partition of the running system, not recommended compared to the above, but here for reference just incase someone else needs it.
dvhtool -v get sash /stand/sash dvhtool -v get ide /stand/ide
dvhtool -v create /stand/sash sash /dev/rdsk/dks1d4vh
dvhtool -v create /stand/ide ide /dev/rdsk/dks1d4vh
dvhtool -v list /dev/rdsk/dks1d4vh
Now you should see a list similar to the one that I got:
[dvhtool2 image]
Time for the next step. We’re almost done I promise 😀
6.) It’s time to copy the kernels we’ll be using into the root folder of the root partition of our installer drive. In our case, we’re going to copy all the kernels so this drive can be used to install on many different systems. One guide I looked at said that you needed to copy them to the swap parition of your install source disk. I found that you can just copy them all to the root and everything works just fine. “cp dist/miniroot/* /external/” where /external is my mounted root partition of my install source disk.
Pat yourself on the back but don’t let out your breath yet, you have reached a major milestone. If the package dependencies work out right when you go to install everything should work out great.
Installing IRIX from your prepared hard drive onto your octane, fuel, or anything else.
Plug in your external, or add your drive to the internal SCSI chain. If you are using SCA drives, the addressing is automatic so make sure to carefully note where the disk is inserted if you can. For external disk drives and 68 pin internal SCSI drives please make sure that your drive jumpers and termination are setup appropriately. I recommend the older SUN Ultra Wide enclosures because of the built in auto termination, no fussing about with terminator ends.
Boot the system to the prom home screen (click “stop for maintenance” if necessary to prevent the current IRIX from loading). Open the command monitor and use hinv to verify your disk is connected and functioning correctly. For the sake of our exercise, I set my external disk to address 4, the wide scsi port on the system board of an octane is controller 1, the 3 disk trays on the front are controller 0. So my disk box is address dksc(1,4,X) and X will be the partition.
IF everything is correctly done above you should be able to do an ls of the volume header partition (which is partition 8) from the prom monitor by typing in our example:
ls dksc(1,4,8)
… and you’ll see the kernels we coped over there from earlier!
Disk Preparation:
Now at this point you’ll need to prepare your root disk, we’re assuming you’re either wanting to wipe your disk and restart fresh, or you have a new / used disk that has never been prepared by an SGI before. In my example I am using an SGI Fuel, that has the external disc attached via a SCSI Card. It is seen as controller 3, disk 4. (These will be different for your system)
So let’s boot into fx and get that disk setup. You can do this by going prom command monitor and issuing the commands to boot from your new disk. Don’t forget to use sashARCS instead if that’s more appropriate for your system architecture ( This page HERE is a great reference for figuring out which kernel and fx to use.), luckily we copied them both in the instructions above. 😀
boot -f dksc(3,4,8)sash64
Now we boot into fx. Substitute fx.64 for fx.ARCS on 32 bit machines such as the o2.
boot -f dksc(3,4,0)stand/fx.64 –x
Quickie note: if you forget the –x you will be asked if you need to have full write access to the disk so as long as you answer appropriately you will still be fine.
Erasing a disk that is not blank:
If your drive is not blank and you wish to erase it, just like above: You can actually “format” it using fx by selecting “Exercise” >> “Sequential” >> Then type in “wr-c” and start at cylinder 0. This writes data and then reads it back to verify the disk is in good shape. Since it’s a destructive test it erases the entire drive along with it.
Partitioning your new root drive:
After your drive is erased, use .. to go back to the top level menu and then pick (R)epartition, >> then pick (RO)ot drive >> enter for for the default XFS >> and then yes to confirm. Finally you’ll need to use .. again to go back to the top, then pick (L)abel >> then pick [SY]nc. After that type “/exit” and you’re done.
Copying the miniroot, and then booting into the installer:
After the disk is ready for installation, normally one would just click “install system software” from the main startup screen, the miniroot is automagically copied and you are whisked away to the inst program. Since we are installing from a hard drive, there is one extra command where we actually copy the miniroot over by hand. I’m almost positive there is a way I can pass arguments to boot the miniroot from our prepared disk directly, but am not sure at this time what they are. (If you know, or figure it out, please let me know!)
boot -f dksc(3,4,8)sash64
Now we copy the miniroot over:
cp -b 32k dksc(3,4,0)/mr dksc(0,1,1) ###### (need to try cp -b 32k dksc(3,4,1) dksc(0,1,1) ) #######
After the miniroot load completes, we can load the kernel and proceed as we would normally:
boot -f dksc(3,4,0)unix.IP35
Irix Installation from our prepared disk:
Once you get to the inst> prompt, you need to drop to a shell by typing sh and hitting enter. All we need to do is mount the main partition on our external hard disk so we can use it for our installation sources. We first create a directory to mount to, and then perform the mount operation itself.
mkdir /external
mount /dev/dsk/dks3d4s0 /external
(at this point ‘ls /external’ would list the contents of your disk)
exit (return back to inst)
You should be back to inst and now we are ready to load our sources. For my base IRIX install, I only need the base, dev, and nfs folders off my drive. I start by opening the base.
from /external/base
After the distribution is open I can go back as needed and open the rest:
open /external/dev/dist/dist
open /external/nfs
Time to resolve your conflicts. As long as you stuck to the base, dev, and nfs folders it should only complain about not having java. I always tell it to not install java and anything else along with it. This only amounts to 3 dependency issues which is not bad considering my past experiences. After that it’s the typical install stuff,
keep *
install prereqs
install standard
go
…. If your system installs, and reboots, and then boots into IRIX pat yourself on the back, you’re done. 😀 Install the rest of the packages from your source drive as needed and enjoy your fresh SGI box!
Merging in the IRIX 6.5.30 Overlays:
So now that we have a working installation disk from a irix 6.5.19 CD set, I decided to merge the 6.5.30 overlays in and make it work. I am going to cover the process on how I merged after making the above work, and make the appropriate notes so if you wanted to go for 6.5.30 initially you can save time and do some of the upcoming steps in place of some steps above.
The first thing I did was copy all the overlays into a “base” directory. In my case with the video I created a folder on the root of my install disk called “6-5-30” and then created a folder called “base” within that. I used “cp -r” to copy everything from the /CDROM/dist directory. You need to ensure included the stand and mini root folders. I coped the dist folder of the Applications CD into “apps” and then created a separate”compapps” folder for the complimentary applications CD. I was not able to merge the apps and compapps disks into the same folder as there was some duplicate files.
Once the files are copied, you need to copy the kernels and miniroot to the appropriate places. What you are doing here is steps 4 and 5 in the disk preparation section above, but instead of using the mr, sa, and unix.IP** files from the 6-5-19 install, you need to use the ones from the 6-5-30 folder you created on your disk. I had the old unix.IP** files left over, so I moved them to a folder and copied the new ones into their place. Pro tip: placing the mr, unix.IP**, and fx files on the root of your installer drive will allow you less typing when you are at the console booting and installing irix. You wont have to remember, or type full path names.
After performing those steps, my disk was ready. All I needed to do at that point was remember to load the 6-5-30 overlays first when opening the install sources on inst. The install went smoothly, there were minimal dependency problems.
Common Fudgeups:
- When the installer loads the packages from the “upgrade” dir or the 6-5-30 disk there are many script errors, unknown command, unknown file, etc. This is usually because the wrong version of the miniroot was used. You MUST extract the miniroot from the installation tools CD / overlays CD1 (as its sometimes called) using the outlined process above.
- When inst has finished and tries to install a kernel you receive “unknown machine type”. Sometimes you may not catch the message and if the system attempts to boot you’ll receive an error message for “unix not found” or something along those lines.This is the same issue as above, the ’98 base CD collection does not have any support for the Fuel, Tezro, and later Octane stuff. You must use the 6-5-30 kernels and miniroot to ensure full compatibility for any SGI you’ll encounter.
- xpdf.sw package is corrupt error message: For some reason on some 6-5-30 releases available this package will error out during installation. The simple solution around this rather annoying error message is to do an “ls | grep xpdf” from within 6-5-30 directory on your installation repository hard drive and then remove all associated files with xpdf. There will be a few. Because in our example we used the ’98 foundation CDs, xpdf is included and will install from there without worry of a dependency issue.
- Old versions of certain packages are installed and not the latest versions from the overlays disks. This can occur when you do not load the latest overlays FIRST when opening installation sources in inst. In my case with 6-5-30, I would need to open all those sources FIRST, and then open all the 6-5-19 sources and foundations to provide the rest of the operating system and dependencies.
- Remember that you can install software later on after the base OS is installed. I avoid adding things in beyond the foundations, overlays, dev utils, dev libs, apps, comp apps, and NFS. For example if you open the freeware disks as a source in inst, or the demo disks you may end up with pages of dependency errors to sort out. Using just the disks I have outlined in the procedures above should yield well under a dozen conflicts that need to be cleared up.
I hope you enjoyed the writeup, it has been a long time coming. If you read this and you know how to boot to the miniroot of the installation disk, instead of having to copy it every time let me know. Maybe, that step was completely irrelevant since it’s just better to copy it to the root disk’s swap partition of the system you are installing anyways. Dont know, don’t hesitate to leave feedback. Thanks for stopping by 🙂