Tips & Tricks
IRIX
General
32bit vs. 64bit Version
Most SGI systems do indeed use 64bit CPUs, but that doesn't mean that the architecture allows them to run 64bit IRIX. The following list shows which machines do run IRIX64:
32bit CPU, 32bit IRIX: - Professional Iris - PowerSeries - Personal Iris 64bit CPU, 32bit IRIX: - Crimson - Indigo - Indigo 2 (R4x00) - Indy - O2 / O2+ 64bit CPU, 64bit IRIX: - Indigo 2 (R8000 and R10000) - Challenge/Onyx (IP19, R4x00) - Challenge/Onyx (R8000 and R10000) - Octane / Octane 2 - Origin 200 - Origin 2000 / Onyx 2 - Origin 300 - Origin 3000 / Onyx 3000 - Fuel
Use uname -s
to see which version of IRIX you are running.
(Re)scanning SCSI devices
Recommended Reading: man scsiha
, man ioconfig
Let's assume your CD-ROM (SCSI ID #2) is on the external SCSI adapter of an Indigo 2 (SCSI Bus #1) and it was not
switched on when the machine was booted. To rescan the SCSI Bus use scsiha -p 1
and then rebuild the
/hw graph ioconfig -f /hw
. After this the CD-ROM can be mounted using mount /dev/dsk/dksc1d2s0 /CDROM
-
if you want automatic mounting restart mediad
.
A word of warning: Unless the manuals say something else, do never plug/unplug SCSI drives while the system is operating! Doing so is likely to do harm to the drive and/or system.
Setting up the Timezone
German Setup
Setting /etc/TIMEZONE
is not well documented (in my opinion) for systems in Germany. A working setting
is:
TZ="MET-1MDT-2,M3.5.0/2:00,M10.5.0/3:00"
General
For the general setup of /etc/TIMEZONE
or the TZ
environment variable please refer to the
environ(5)
manpage.
Accessing Volume Headers
Simply duplicating the disk contents by xfsdump
or by using a tar
backup isn't enough
when trying to clone a rootdrive.
The following example assumes that the source disk is SCSI ID #1 on controller #0 and that the target disk is SCSI ID #2 on the same controller. Both disks are partitioned as root drives and the contents of the source disk have been transferred to the target drive.
Step One: Extracting sash
and ide
executables from the volume header.
dvhtool -v get sash /stand/sash /dev/rdsk/dks0d1vh dvhtool -v get ide /stand/ide /dev/rdsk/dks0d1vh
Step Two: Writing the files to the volume header of the target disk.
dvhtool -v create /stand/sash sash /dev/rdsk/dks0d2vh dvhtool -v create /stand/ide ide /dev/rdsk/dks0d2vh
Step Three: Verify that the files have been written.
dvhtool -v list /dev/rdsk/dks0d2vh
Deleting the Root Password
The basic idea is to boot from the installation CD-ROM and edit the user/password database on the system. So the first step is to find the appropriate boot media for the machine and attach a CD-ROM drive to the system.
Now when the system is powered on stop the boot process immediatly after the POST. Press ESC or click on the button to enter the maintenance menu. From there select "Install system software" and wait until the system presents you the inst menu. Switch into the "admin" section and use "shell" to invoke a subshell in which you will have root access to the system.
The existing root drive is now mounted as /root
. So the files you want to edit are /root/etc/passwd
and (if it exists) /root/etc/shadow
. The install tools may not come with a useable editor, so
you can try the one that is installed on the disk (e.g. /root/bin/vi
).
Distribution Tape
How to make a backup of a distribution tape.
For doing a backup of Silicon Graphics distribution tapes no fiddling around with dd
or tools like that is required. IRIX has distcp
which is written exactly for the purpose
of copying distribution sets from one media to another.
distcp -v /dev/tape /dist/tape
The command above copies the distribution data from /dev/tape
to the directory
/dist/tape
where you can keep it as backup or which can be used to export to other
machines for network installation.
How to write a distribution tape.
Writing a previously copied distribution to tape is also very easy. It is actually done just the other way around:
distcp -v /dist/tape /dev/tape
A Gotcha
Recent tests seem to indicate that distcp adds version specific headers to the files downloaded from tapes. This means that for example copying a tape from 4D1-4.0.x on an IRIX 6.2 machine renders the files useless for 4D1-4.0.0.
Base Installation
Doing a base installation for a different hardware platform.
Consider the following problem: You want to install IRIX from scratch on old/slow hardware or on machines where installation via network or from CD are not an option. This quick hint indicates where the solution lies.
By default the IRIX installer (inst
) does a software installation for the machine it is currently running on. You
can check this in the admin
by typing the hardware
command which will show you the selected
platform flags. The most relevant here are CPUBOARD, GFXBOARD and SUBGR.
Procedure.
To install IRIX for a different platform these settings need to be changed, which cannot be done from within inst
.
This guide assumes the fresh disk is the boot device and inst
has been invoked from a valid
installation source (not a running system).
Setting the parameters requires inst
to be restarted. This can be accomplished by quitting it
and going into a shell instead of rebooting when asked for it. From there it is possible to start a new
instance of inst
including the parameters on the command line. Here is an example for installing
IRIX 5.3 over network for use on a Crimson Reality Engine:
inst -r /root -m SUBGR=IP17 -m GFXBOARD=VENICE -m CPUBOARD=IP17 -f 192.168.1.1:/usr/local/boot/5.3xfs/OS/dist
Before proceeding check the hardware settings again, the selected choices should show up no matter of the
hardware inst
is really running on:
Admin> hardware Hardware: CPUBOARD=IP17 GFXBOARD=VENICE IP17 SUBGR=IP17
Further Reading.
As further reading man 1M inst
is suggested. This manpage also explains the variables and options
used.
Desktop
Custom Login Icons
Recommended Reading: man visuallogin
, man clogin
Use chkconfig
to make sure that visuallogin
is set to on
and noiconlogin
to off
.
The icons (SGI RGB format, at least 100x100 pixels) can be placed in the following locations:
/$HOME/.icons/login.icon /usr/lib/faces/$USER /usr/local/lib/faces/$USER
$USER is the loginname of the user, $HOME the home directory.
Color Depth
To change the color depth to 24 bit, /usr/lib/X11/xdm/Xservers
has to be modified. Typically
the line for the main display includes -pseudomap 4sight
, which has to be replaced with
-depth 24 -class TrueColor
. The following is an example:
:0 secure /usr/bin/X11/X -bs -nobitscale -c -solidroot sgilightblue -cursorFG red -cursorBG white \ -depth 24 -class TrueColor
For this change to take effect you either have to reboot the system or restart the X Server. A simple way of restarting the X server is issuing the following line as root:
/usr/gfx/stopgfx /usr/gfx/startgfx
Custom Toolchest
How to change Toolchest as a User
Recommended reading: man toolchest
Every user can add personal entries to the Toolchest by editing the .auxchestrc
file in his or her
homedirectory (create the file if it does not exist).
How to add entries to existing menus
Let's start with an example:
Menu System { no-label f.separator "Gmemusage" f.checkexec.sh.le "/usr/sbin/gmemusage" }
This adds two new items to the bottom of the existing "System" menu. The first is a separator line, the second is
a call to /usr/sbin/gmemusage
, that will appear with "Gmemusage" as a label.
How to add a new menu
Again we start with an example (plus we assume that you have read the part on expanding existing menus):
Menu Stats { no-label f.separator "Gmemusage" f.checkexec.sh.le "/usr/sbin/gmemusage" } Menu ToolChest { "Stats" f.menu Stats }
This will add a new menu labelled "Stats" to the Toolchest. Note that the name given to the menu is referenced
in the end of the "Stats" f.menu Stats
line. This is neccessary. What is not neccessary is that the
label matches this name.
Autostarting Applications
How to have one or more application started when logging in on the graphics console.
This is pretty easy. As a user edit (or create) the file .sgisession
in your home directory. Put
the call to your applications in that file like that:
/usr/sbin/gmemusage /usr/sbin/gr_osview
When you log in all commands given in that file are executed automatically.
Console Based Applications in Toolchest
How to call console applications from Toolchest or at login.
The straightforward approach would be to simply enter the path and the filename, but that will run
the application in the background - rather useless for a console based newsreader or mailclient.
The appropriate way of invoking such an application is to start an xterm
(personally
I prefer something else like winterm
) and have it start the desired application once
it is loaded. An example of winterm
calling slrn
:
winterm -e /usr/local/bin/slrn
This will leave you with a terminal window including the application. The window will close as
soon as the application is terminated. If you are also using winterm
you can add
descriptions that will appear as title in the window (-t name
) and when displayed
in the iconbox (-n name
).
winterm -n slrn -t slrn /usr/local/bin/slrn
Custom Background
How to load a custom background
Loading a custom background is easy if you are using a tool like xloadimage
, which is
available from the download section. This tool has tons of options
to convert an image file into something suitable for using as a background (can add border and such).
xloadimage -onroot your_image.jpg
This puts the image in the background and tiles it if it's resolution is smaller than the one you
have selected for your monitor. xloadimage
has an builtin interactive help feature which
is invoked by calling xloadimage -help
.
How to add the image to the background menu
This requires some steps in preparation. First -unless you have done it before- you have to copy
/usr/lib/X11/system.backgrounds
into your home directory where you have to name it
.backgrounds
(also chmod/chown it so you can edit it).
Open the file with your favourite editor but do not delete the existing entries unless you don't
want them to appear in your menu anymore. The following is an example entry from my .backgrounds
file. It adds an entry named "Sky" which loads the image file pict0580.jpg
using the xloadimage
program.
background "Sky" command "-execute /usr/local/bin/xloadimage -onroot -fork /usr/people/gerhard/.background-files/pict0580.jpg" default "-execute /usr/local/bin/xloadimage -onroot -fork /usr/people/gerhard/.background-files/pict0580.jpg" exeok "/usr/local/bin/xloadimage" readok "/usr/people/gerhard/.background-files/pict0580.jpg"
Doing the same with an application
Now imagine you want one of these shiny programs run on your background. In the example I'm going to
use powerflip to display a turning SGI logo on the background (hint: change -R
to -Rs
if you want a static image and have a look at man powerflip
for more options).
background "FlipLogo" command "-execute /usr/demos/bin/powerflip -R /usr/demos/data/yaodl/logo.ydl" default "-execute /usr/demos/bin/powerflip -R /usr/demos/data/yaodl/logo.ydl" exeok "/usr/demos/bin/powerflip" readok "/usr/demos/data/yaodl/logo.ydl"
Restart Desktop
In these rare cases (never happened to me) you can force the system to restart X by pressing
[Ctrl]
+ [Shift]
+ [F12]
+ [/]
at the same
time ([/]
on the numpad btw.). If you have a network connection to the machine
or have a serial terminal attached you could also log in from there and try to restart X. In
all these cases data loss (unsaved data) is going to happen.
Network
Additional Network Devices
Some SGI systems have more than one network interface. The relevant files for the
configuration of these are netif.options
and ifconfig-n.options
(n = number of device) located in /etc/config
as well as the /etc/hosts
file. In the example we assume that we are adding an FDDI interface to a system - it will be the
third network interface. The name of the interface is fddi0
(check with netstat
-i
) and it will be assigned 192.168.2.1 as IP address. The hostname is example
.
The first step is to add the required information to /etc/config/netif.options
. Note
that there are some means provided for automatic configuration - the comments have the details on
that. Adding the third interface of our example is as simple as modifying the lines related to that
interface:
if3name=fddi0 if3addr=fddi-$HOSTNAME
In this case you have to add a line to /etc/hosts
which assigns an IP address to
the name given in if3addr
(note that you cannot $HOSTNAME in /etc/hosts
).
The line we add in our example is:
192.168.2.1 fddi-exampleIf you don't want to specify any advanced settings like different subnets for your interfaces you are done and can reboot the systems. These advanced settings can be put into files named
ifconfig-n.options
in /etc/config
(n = number of interface). Usually there are some advanced settings to be
made to make real use of the additional networking interfaces.