Chapter 4. Configuring the IRIX Operating System

This chapter provides information on the settings and files that need to be set and edited to customize your system for use. It is not necessary to change all listed settings and names on all systems. You are free to customize your systems as much or as little as necessary to suit your purposes. The following topics are covered in this chapter.

System Configuration Check

The IRIX system provides two commands that allow you to check your system hardware and software configurations. The hinv(1M) and versions(1M) commands display the hardware and software inventories, respectively. Other commands report on graphics hardware, the system name, configured printers, and basic system settings.

Checking Installed Hardware with hinv

The hinv command displays the system's hardware inventory table, which is created at boot time. This command can be run from the command monitor (PROM) or from your system shell prompt. Pertinent information such as the processor type, amount of main memory, and all disks, tape drives, and other devices is included.

Example 4-1 shows hinv output from the IRIX shell prompt. For more information, see “Checking Installed Hardware in /hw” and the hwgraph(4D)man page.

Example 4-1. hinv Output

With the -v and -m options, hinv produces verbose output including board name, part number, barcode number, and the physical location of each board as a path under /hw.
% hinv -vm

Location: /hw/module/001c10/node
            IP35 Board: barcode KHD544     part 030-1604-001 rev -G
Location: /hw/module/001c10/Ibrick/xtalk/14
          IBRICK Board: barcode KJX216     part 030-1557-002 rev -F
Location: /hw/module/001c10/Ibrick/xtalk/15
          IBRICK Board: barcode KJX216     part 030-1557-002 rev -F
Location: /hw/module/001c10/Ibrick/xtalk/15/pci/4
[missing info: Not present on interface] Laser   unreadable
Location: /hw/module/001c13/node
            IP35 Board: barcode KHD546     part 030-1604-001 rev -G
Location: /hw/module/001c13/Xbrick/xtalk/14
          XBRICK Board: barcode KHP021     part 030-1565-001 rev -K
Location: /hw/module/001c13/Xbrick/xtalk/15
          XBRICK Board: barcode KHP021     part 030-1565-001 rev -K
Location: /hw/module/001c16/node
            IP35 Board: barcode KHD136     part 030-1604-001 rev -F
Location: /hw/module/001c21/node
            IP35 Board: barcode KHD152     part 030-1604-001 rev -G
Location: /hw/module/001c24/node
            IP35 Board: barcode KHD106     part 030-1604-001 rev -G
Location: /hw/module/001c29/node
            IP35 Board: barcode KHD079     part 030-1604-001 rev -G
Location: /hw/module/001c32/node
            IP35 Board: barcode KHD135     part 030-1604-001 rev -G
Location: /hw/module/001c35/node
            IP35 Board: barcode KHD191     part 030-1604-001 rev -G
Location: /hw/module/001r19/router
          ROUTER Board: barcode KRE126     part 030-1596-001 rev -F
Location: /hw/module/001r27/router
          ROUTER Board: barcode KRE084     part 030-1596-001 rev -F
32 400 MHZ IP35 Processors
CPU: MIPS R12000 Processor Chip Revision: 3.5
FPU: MIPS R12010 Floating Point Chip Revision: 0.0
CPU 0 at Module 001c10/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 1 at Module 001c10/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 2 at Module 001c10/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 3 at Module 001c10/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 4 at Module 001c13/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 5 at Module 001c13/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 6 at Module 001c13/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 7 at Module 001c13/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 8 at Module 001c16/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 9 at Module 001c16/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 10 at Module 001c16/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 11 at Module 001c16/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 12 at Module 001c21/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 13 at Module 001c21/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 14 at Module 001c21/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 15 at Module 001c21/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 16 at Module 001c24/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 17 at Module 001c24/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 18 at Module 001c24/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 19 at Module 001c24/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 20 at Module 001c29/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 21 at Module 001c29/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 22 at Module 001c29/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 23 at Module 001c29/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 24 at Module 001c32/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 25 at Module 001c32/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 26 at Module 001c32/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 27 at Module 001c32/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 28 at Module 001c35/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 29 at Module 001c35/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 30 at Module 001c35/Slot 0/Slice C: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
CPU 31 at Module 001c35/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)
  Processor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz
Main memory size: 4096 Mbytes
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 8 Mbytes
Memory at Module 001c10/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
Memory at Module 001c13/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
Memory at Module 001c16/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
Memory at Module 001c21/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
Memory at Module 001c24/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
Memory at Module 001c29/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
Memory at Module 001c32/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
Memory at Module 001c35/Slot 0: 512 MB (enabled)
  Bank 0 contains 256 MB (Standard) DIMMS (enabled)
  Bank 1 contains 256 MB (Standard) DIMMS (enabled)
ROUTER in Module 001c10/Slot 0: Revision 1: Active Ports [1,2,3,4,5,6,7,8] (enabled)
ROUTER in Module 001c24/Slot 0: Revision 1: Active Ports [1,2,3,4,5,6,7,8] (enabled)
Integral SCSI controller 4: Version Fibre Channel QL2200A
  Disk drive: unit 114 on SCSI controller 4 (unit 114)
  Disk drive: unit 115 on SCSI controller 4 (unit 115)
  Disk drive: unit 116 on SCSI controller 4 (unit 116)
  Disk drive: unit 117 on SCSI controller 4 (unit 117)
  Disk drive: unit 118 on SCSI controller 4 (unit 118)
  Disk drive: unit 119 on SCSI controller 4 (unit 119)
  Disk drive: unit 120 on SCSI controller 4 (unit 120)
  Disk drive: unit 121 on SCSI controller 4 (unit 121)
  Disk drive: unit 122 on SCSI controller 4 (unit 122)
  Disk drive: unit 123 on SCSI controller 4 (unit 123)
  Disk drive: unit 124 on SCSI controller 4 (unit 124)
  Disk drive: unit 125 on SCSI controller 4 (unit 125)
Integral SCSI controller 3: Version Fibre Channel QL2200A
  Disk drive: unit 114 on SCSI controller 3 (unit 114)
  Disk drive: unit 115 on SCSI controller 3 (unit 115)
  Disk drive: unit 116 on SCSI controller 3 (unit 116)
  Disk drive: unit 117 on SCSI controller 3 (unit 117)
  Disk drive: unit 118 on SCSI controller 3 (unit 118)
  Disk drive: unit 121 on SCSI controller 3 (unit 121)
Integral SCSI controller 0: Version Fibre Channel QL2200
  Disk drive: unit 40 on SCSI controller 0 (unit 40)
  Disk drive: unit 41 on SCSI controller 0 (unit 41)
  Disk drive: unit 42 on SCSI controller 0 (unit 42)
  Disk drive: unit 43 on SCSI controller 0 (unit 43)
  Disk drive: unit 44 on SCSI controller 0 (unit 44)
  Disk drive: unit 45 on SCSI controller 0 (unit 45)
  Disk drive: unit 46 on SCSI controller 0 (unit 46)
  Disk drive: unit 47 on SCSI controller 0 (unit 47)
  Disk drive: unit 48 on SCSI controller 0 (unit 48)
  Disk drive: unit 49 on SCSI controller 0 (unit 49)
Integral SCSI controller 1: Version Fibre Channel QL2200A
  Disk drive: unit 114 on SCSI controller 1 (unit 114)
  Disk drive: unit 115 on SCSI controller 1 (unit 115)
  Disk drive: unit 116 on SCSI controller 1 (unit 116)
  Disk drive: unit 117 on SCSI controller 1 (unit 117)
  Disk drive: unit 118 on SCSI controller 1 (unit 118)
  Disk drive: unit 119 on SCSI controller 1 (unit 119)
  Disk drive: unit 120 on SCSI controller 1 (unit 120)
  Disk drive: unit 121 on SCSI controller 1 (unit 121)
  Disk drive: unit 122 on SCSI controller 1 (unit 122)
  Disk drive: unit 123 on SCSI controller 1 (unit 123)
  Disk drive: unit 124 on SCSI controller 1 (unit 124)
  Disk drive: unit 125 on SCSI controller 1 (unit 125)
Integral SCSI controller 2: Version Fibre Channel QL2200A
  Disk drive: unit 1 on SCSI controller 2 (unit 1)
  Disk drive: unit 2 on SCSI controller 2 (unit 2)
Integral Fast Ethernet: ef0, version 1, module 001c10, pci 4
  PCI Adapter ID (vendor 4215, device 8704) pci slot 1
  PCI Adapter ID (vendor 4215, device 8704) pci slot 2
  PCI Adapter ID (vendor 4215, device 8704) pci slot 1
  PCI Adapter ID (vendor 4215, device 8704) pci slot 2
  PCI Adapter ID (vendor 4215, device 8704) pci slot 3
  PCI Adapter ID (vendor 4265, device 3) pci slot 4
  PCI Adapter ID (vendor 4545, device 22529) pci slot 5
  PCI Adapter ID (vendor 4172, device 32777) pci slot 6
  PCI Adapter ID (vendor 4140, device 192) pci slot 7
IOC3 external interrupts: 1
HUB in Module 001c10/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c13/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c16/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c21/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c24/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c29/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c32/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c35/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
IP35prom in Module 001c10/Slot n0: Revision 6.44
IP35prom in Module 001c13/Slot n0: Revision 6.44
IP35prom in Module 001c16/Slot n0: Revision 6.44
IP35prom in Module 001c21/Slot n0: Revision 6.44
IP35prom in Module 001c24/Slot n0: Revision 6.44
IP35prom in Module 001c29/Slot n0: Revision 6.44
IP35prom in Module 001c32/Slot n0: Revision 6.44
IP35prom in Module 001c35/Slot n0: Revision 6.44
USB controller: type OHCI

If a piece of peripheral hardware installed on your system does not appear in the hinv output, it may or may not be an indication of trouble with your hardware. Some peripherals connected to the system by a board on a VME bus are not identified when running hinv from the command monitor. To list the missing peripheral, enter hinv at a system shell prompt. If your peripheral is still not recognized, reseat the board or device in its socket and check that it is using the correct SCSI address. If this does not relieve the problem, the hardware itself may be defective. Note also that most devices are not recognized by hinv until after the MAKEDEV command has been run after their installation.

Checking Installed Hardware in /hw

The contents of the /hw directory structure are updated as necessary by the ioconfig command run from /etc/brc at boot time (see “Multiuser State from System Shutdown” in Chapter 3 and the oconfig(1M) man page for more information). All recognized hardware should be represented by an entry under /hw, and some of these entries will have symbolic links in other parts of the /hw structure as well as /dev.

For example, the system root partition may appear in the following entries:

/hw/scsi_ctlr/1/target/1/lun/0/disk/partition/0/block
/hw/disk/root
/dev/root

The first entry (/hw/scsi_ctlr/ and so on) represents the physical location of the board as described in hwgraph(4D). The second and third paths shown above (/hw/disk/root and /dev/root) are symbolic links to the long physical pathname (the first path above). The symbolic links serve as a convenient shorthand for the various system commands that need to reference the device.

How IP Network Interfaces Are Assigned to Hardware Devices

With each system restart (for example, after a reboot, shutdown, halt, init command, or power off), the startup routine probes for hardware devices on all the systems connected into the NUMAlink interconnection fabric. All the slots and links in all the modules within the fabric are probed.

The routine then creates a hierarchical filesystem, called the hardware graph, that lists all the hardware that is located. The top of the hardware graph is visible at /hw. For complete details, see the hwgraph(4D)man page.

After the hardware graph is completed, the ioconfig program assigns a unit number to each located device that needs one. Other programs (for example, hinv and the device's driver) read the assigned number and use it.

On an initial startup, ioconfig assigns numbers sequentially; for example, if two IRIS ATM XIO boards are found, they are numbered unit0 (with ports 0 to 3) and unit1 (with ports 4 to 7).

On subsequent startups, ioconfig distinguishes between hardware that it has seen before and new items. To previously seen items, it assigns the same unit and port numbers that were assigned on the initial startup. To new hardware, it assigns new sequential numbers. ioconfig never reassigns a number, even if the device that had the number is removed and leaves a gap in the numbering.

New items are differentiated from previously-seen items based on the hardware graph listing (that is, the path within /hw). The database of previously-seen devices is kept in the /etc/ioconfig.conf file. For example, a replacement board (exact same name) that is installed into the location of an old board will be assigned the old board's numbers, while a board that is moved from one location to another will be assigned a new unit number and new port numbers.

For more information about the hardware graph and ioconfig, see the hwgraph(4D) and ioconfig(1M) man pages.

Checking Installed Software with versions

The versions command gives you an inventory of software packages that have been installed using inst. This command can be run only at the system shell prompt, not from the command monitor. Software installed by other means is not included in the versions output. Along with the names of the software products, the release revision level numbers are displayed. By default, the output of versions includes all the products and their subsystems and is typically several hundred lines long. It is often convenient to redirect the output to a file that you can view at your convenience. For a more general look at the products you have installed, without the list of specific subsystems, use the -b (brief) flag as shown in Example 4-2:

Example 4-2. versions Output

versions -b output reads as follows although a complete listing is much longer:

I = Installed, R = Removed
   Name                 Date      Description
I  4Dwm                 07/18/96  Desktop Window Manager, 6.2 (based on
                                  OSF/Motif 1.2.4)
I  demos                07/18/96  Graphics Demonstration Programs, 6.2
I  desktop_base         07/18/96  IndigoMagic Desktop Base Software,
                                  6.2
I  desktop_eoe          07/18/96  IndigoMagic Desktop, 6.2
I  desktop_tools        07/18/96  Desktop Tools, 6.2
I  dps_eoe              07/18/96  Display PostScript/X, 2.0.5 based on
                                  PostScript Level 2
I  eoe                  07/22/96  IRIX Execution Environment, 6.2
I  insight              07/18/96  IRIS InSight Viewer, 2.3.3
I  nfs                  07/18/96  Network File System, 6.2 with IMPACT
                                  10000


Checking Installed Graphics Hardware with gfxinfo

The gfxinfo command is useful for determining the graphics hardware installed in the system. It is in the /usr/gfx directory, which is not on any of the standard search paths. Thus gfxinfo typically needs the full pathname to be specified for successful execution. As shown in Example 4-3, the command requires no arguments to run.

Example 4-3. gfxinfo Output

This sample gfxinfo output is for an Indy workstation:

% /usr/gfx/gfxinfo 

Graphics board 0 is "NG1" graphics.
        Managed (":0.0") 1280x1024
        24 bitplanes, NG1 revision 3, REX3 revision B,
        VC2 revision A
        MC revision C, xmap9 revision A, cmap revision C,
        bt445 revision A
        Display 1280x1024 @ 60Hz, monitor id 12

This command provides more information about the graphics system than the hinv command (hinv would simply return Indy 24-bit). From the output of gfxinfo you can determine the number of screens and their pixel resolutions, bitplane configurations, component revision levels, and monitor types. There is no man page for gfxinfo. Servers without graphics capability do not have this command installed.

Checking Basic System Identification with uname

The uname command returns information such as the operating system version and hostname. The -a option gives a complete list of the uname output. See the uname(1) man page for a description of all the uname options and fields.

Getting Printer Status with lpstat

lpstat with the -a option shows all the printers configured for the lp spooling system and gives their status. See the IRIX Admin: Peripheral Devices and the lpadmin(1M) and lpstat(1) man pages for detailed information on printer administration.

Checking Software Configuration Options with chkconfig

You can quickly check the configuration of a workstation or server with chkconfig(1) as shown in Example 4-4. The /sbin/chkconfig command reports the state of various process daemons (that is, whether or not they are supposed to be active).

Example 4-4. chkconfig Output

Enter the chkconfig command to check your configuration.

chkconfig 

This sample output is typical for a networked workstation with the Network File System (NFS) option installed. The left column of the output describes a system feature, and the right column indicates whether it is on or off.

Flag                 State
====                 =====
acct                 off
audit                off
automount            on
gated                off
lockd                on
mrouted              off
named                off
network              on
nfs                  on
noiconlogin          off
nsr                  on
quotacheck           off
quotas               off
routed               on
rtnetd               off
rwhod                off
sar                  on
snmpd                on
timed                on
timeslave            off
verbose              off
visuallogin          on
windowsystem         off
yp                   on
ypmaster             off
ypserv               off

The following list provides more specific information about each system feature:

acct  

Detailed system accounting is turned on or off.

audit  

The System Audit Trail is turned on or off.

automount  

The NFS automount(1M) daemon is turned on or off. This configuration option is available only if you have NFS installed on the workstation.

gated  

The gated(1M) daemon, which manages multiple routing protocols is turned on or off.

lockd  

The Network File System (NFS) lock daemon is turned on or off. This configuration option is available only if you have NFS installed on the workstation.

mrouted  

The Stanford IP multicast routing daemon is turned on or off.

named  

named(1M), the Internet domain name server, is turned on or off.

network  

The network is turned on or off.

nfs  

NFS is turned on or off. This configuration option is available only if you have NFS installed on the workstation.

noiconlogin  

The visual login program, pandora(1), displays icons that represent users on the system. This feature does not enable or disable pandora; it affects whether or not pandora displays icons. It is turned on or off. To enable or disable pandora, use the visuallogin feature.

nsr  

This configuration option is available only if you have IRIS NetWorker backup utility installed on the workstation.

quotacheck  

The disk space quota checker is enabled or disabled.

quotas  

Disk quotas are enabled or disabled.

routed  

routed(1M), which manages the network routing tables, is turned on or off.

rtnetd  

rtnetd(1M), which allows higher priority real-time processes to preempt processing of incoming network packets, is turned on or off.

rwhod  

rwhod(1M) is turned on or off.

sar  

sar(1), the system activity reporter, is turned on or off.

snmpd  

The Simple Network Management Protocol Daemon is turned on or off.

timed  

timed(1M), the 4.3 BSD time server daemon, is turned on or off.

timeslave  

The SGI time server daemon is turned on or off. Like timed, this attaches a workstation's clock to a different clock, usually master time server for a group of workstations or for the entire site.

verbose  

If this feature is enabled, as the system boots or is shut down, daemons print information about their functions. If this feature is disabled, less information is printed when the system is started and shut down.

visuallogin  

The visual login program, pandora(1), is turned on or off.

windowsystem  

The window manager is turned on or off.

yp  

The network information service (NIS) is on or off. This feature is called yp for historical reasons. NIS is available with the NFS software. This configuration option is available only if you have NFS installed on the workstation.

ypmaster  

NIS master services are turned on or off. This configuration option is available only if you have NFS installed on the workstation.

ypserv  

NIS server and bind processes are turned on or off. This configuration option is available only if you have NFS installed on the workstation.

Configuring Software

The following sections describe how to set the various options available to customize your IRIX operating system.

Setting Software Configuration Options with chkconfig

Y ou can use the chkconfig(1M) command to change some aspects of system configuration. To determine which aspects of a system you can alter with chkconfig, enter the chkconfig command:

chkconfig

You see a list of configuration options, which are described in “Checking Software Configuration Options with chkconfig”. If you use the -s option, you see a list that is sorted by whether the configuration item is on or off.

To change a configuration option, use the chkconfig command with two arguments: the name of the option you wish to change and the new status of the configuration (on or off). You must have root privilege to change a system configuration.

For example, to turn on detailed process accounting, log in either as root or as the system administrator, and enter:

chkconfig acct on

To turn off process accounting, enter:

chkconfig acct off

Some aspects of system configuration do not take effect until the system is shut down and rebooted because startup scripts, which are in the directory /etc/init.d, are run when the system is booted and brought to multiuser mode. These scripts read the files that chkconfig sets to determine which daemons to start.

Some configuration items that can be controlled by chkconfig may not be displayed by chkconfig. These include:

nostickytmp  

Sets sticky behavior for the directory /tmp. When the directory is sticky, (with nostickytmp set to off), users may not remove files from the directory unless they own the files, have explicit permission to remove the files (write permission), or have superuser privileges.

The opposite behavior allows users to remove or replace files in /tmp, which is a publicly writable directory, even if they do not own the files. This is handy behavior if you have users who need to create large temporary files and you are short on disk space. But it is better to increase disk space to avoid important files being removed.

nocleantmp  

Controls whether or not the directory /tmp is cleaned out each time the system is booted. If nocleantmp is on, /tmp is not cleaned. If nocleantmp is off, all files in /tmp are removed each time the system is started.

If you want to see these flags in the chkconfig menu, you can use the -f option to force chkconfig to create a configuration file for the options:

chkconfig -f nocleantmp on

In this example, chkconfig creates a configuration file called nocleantmp in the directory /etc/config, which flags the system not remove files from /tmp at reboot.

Setting and Changing System Defaults

These system-wide defaults affect programs and system functions:

  • System display

  • Processor allocation

  • Time zone

  • Name of the system

  • Network address

  • Default system printer

  • System date and time

  • File and directory access permissions

  • Access control lists (ACLs) and capabilities

These defaults are described more thoroughly in specific sections of this guide, but they are all presented here to provide an overview of the IRIX system.

Changing the System Display

You can make the output of programs and utilities running on one system appear on the screen of another system on the same network by changing the DISPLAY environment variable. This is useful if your network includes graphical systems and non-graphical servers. In order to view information from the server graphically, you reset the display to a graphics workstation.

For example, if your server has only a character-based terminal as its console and you wish to run gr_osview to visually inspect your CPU usage, you would issue this command on the server (for csh and tcsh shells):

setenv DISPLAY graphics_system:0 
gr_osview

or this command for ksh and sh shells:

DISPLAY=graphics_system:0; export DISPLAY

Also issue an xhost command on the graphics system to allow the server to display on it:

xhost +server_system

When you invoke gr_osview on the server, the window with the output will appear on the graphics system name you specify. In this example, graphics_system was used in place of the system name. The :0 used after the system name indicates that display monitor 0 (the graphics console) should be used to display the output. When you have finished using the graphics console, be sure to reset the display by issuing this command on the server:

setenv DISPLAY local_server:0

local_server is the name of your server. If you logged in from the graphics system to the server and set the DISPLAY variable that way, simply log out when you are finished.

Changing Processor Assignment on Multiprocessor Systems

If you have a multiprocessor system, the mpadmin(1M) command and the Miser suite of commands allow you to change the way programs are assigned to the various processors on your system. To determine if your system is multiprocessor, use the hinv(1M) command. A multiprocessor system returns information similar to the following in its hinv output:

Processor 0: 40 MHZ IP7
Processor 1: 36 MHZ IP7
Processor 2: 40 MHZ IP7
Processor 3: 40 MHZ IP7
Processor 4: 40 MHZ IP7
Processor 5: 40 MHZ IP7
Processor 6: 40 MHZ IP7
Processor 7: 40 MHZ IP7

Or, alternately, output similar to the following:

8 40 MHZ IP7 Processors

A single-processor system returns information similar to the following for the hinv command:

1 100 MHZ IP22 Processor

If you have only one processor on your system (and the vast majority of systems have only one processor), this command still operates, though it has no useful purpose.

The mpadmin command allows you to turn off processors, report various states of the processors, and move system functions such as the system clock to specific processors. For more information, see the mpadmin(1M) man page.

For partitioning of the system in a batch environment, the batch scheduling component of Miser should be used. Miser allows for fine-grained control of memory and CPU allocations between batch applications, and between batch and interactive applications. For information on Miser, see IRIX Admin: Resource Administration.

The Cpuset System is primarily a workload manager tool permitting a system administrator to restrict the number of processors that a process or set of processes may use. Cpusets may optionally restrict both kernel and user memory.

When the memory restriction feature is enabled, a set of nodes each containing a set of CPUs is computed from the list of CPUs supplied and memory allocations can be limited to the CPUs assigned to the nodes. Allocation limits can be restricted to the available physical memory or overflow can be swapped to the swap file.

A system administrator can use cpusets to create a division of CPUs within a larger system. Such a divided system allows a set of processes to be contained to specific CPUs, reducing the amount of interaction and contention those processes have with other work on the system. In the case of a restricted cpuset, the processes that are attached to that cpuset will not be affected by other work on the system; only those processes attached to the cpuset can be scheduled to run on the CPUs assigned to the cpuset. An open cpuset can be used to restrict processes to a set of CPUs so that the affect these processes have on the rest of the system is minimized.

The cpuset command can be used to create, destroy, and display these CPU sets. For more information, see the cpuset(1) man page and IRIX Admin: Resource Administration.

Excluding a CPU from Performing Work

You can use the mpadmin(1) command to exclude the specified CPU from performing any work. This functionality is useful in a situation in which you suspect a CPU may have a hardware error but you do not want to shut down your entire system.

The  mpadmin -x[processor] command excludes the processor numbered processor. An excluded processor is isolated, as in the case of the mpadmin command with the -I argument. In addition, the runon(1) command and sysmp(2) function with the MP_MUSTRUN argument are prohibited from executing any commands on the processor. When no processor is specified, the mpadmin -x command writes the numbers of the processors that are excluded to the standard output. This request will fail if there are any MUSTRUN processes currently running on the processor. For more information, see the mpadmin(1) man page.

Changing the System Name

The name of the system is stored in several places. If you want to change the name of your system, you must change the name in all the following locations, or your system does not function correctly:

  • In the file /etc/sys_id

  • In the file /etc/hosts (for networking purposes)

  • In a kernel data structure, which you read and set with hostname

  • In an NIS map on the NIS master server, if you are running NIS


    Note: Do not arbitrarily change the name of a running workstation. Many programs that are started at boot time depend on the name of the workstation.


To display the name of the system, use the hostname command with no arguments:

hostname

This command displays the name of the system. The uname command also displays the name of the system, along with other information.

Procedure 4-1 describes how you change the name of a workstation.

Procedure 4-1. Changing a Workstation Name

  1. Log in as root.

  2. Edit the file /etc/sys_id. Change the name of the host to the new name. Write and exit the editor.

  3. You must also change the name of the host in any network files, such as /etc/hosts, and possibly in the NIS map on the master NIS server.

  4. Reboot your system.

All programs that read the hostname when they are started at boot time now use the correct hostname.

For information about the Internet address of a workstation, see IRIX Admin: Networking and Mail . For more information about the name of the system, see the hostname(1) and uname(1) man pages.

Setting the Network Address

The system's network address (IP address) is covered more thoroughly in IRIX Admin: Networking and Mail .

Procedure 4-2 describes how you set a network address.

Procedure 4-2. Setting a Network Address

  1. Place the network address in /etc/hosts on the same line as the system name. For example

    194.45.54.4 magnolia
    

  2. If you use the network information service (NIS), place the name of your domain in the file /var/yp/ypdomain, if it is installed.

  3. Use the nvram(1M) command to set the variable netaddr to the IP number of the system. For example:

    nvram netaddr 194.45.54.4
    

Setting the Default Printer

The lpadmin(1M) command sets the default printer. This command sets the default printer to laser:

lpadmin -dlaser

Note that the printer laser must already exist and be configured. For complete information on setting up printers, see the IRIX Admin: Peripheral Devices .

Setting the Time Zone

To set the time zone of the system, edit the file /etc/TIMEZONE. For a site on the east coast of the United States, the file might look something like this:

# Time Zone
TZ=EST5EDT

The line TZ=EST5EDT means:

  •  The current time zone is Eastern Standard Time.

  •  It is 5 hours to the west of Greenwich Mean Time.

  •  Daylight saving time applies here (EDT).

The TZ environment variable is read by init(1) when the system boots, and the value of TZ is passed to all subsequent processes. The time zone designation (such as EST) is simply passed through for your convenience. The important parts of the designation are the specification of the deviation from Greenwich Mean Time and the presence of the daylight savings time indicator. For convenient time zone information for the majority of North America, Europe, Asia, the Middle East, South America, and Australia and New Zealand, see Table 4-1 through Table 4-6.

Table 4-1. North America Time Zones

Region

GMT Differential

Abbreviation

Newfoundland

-3:30

NST

Atlantic

-4:00

AST

Eastern

-5:00

EST

Central

-6:00

CST

Saskatchewan

-6:00

CST

Mountain

-7:00

MST

Pacific

-8:00

PST

Yukon

-9:00

YST

Alaska

-10:00

AST

Hawaii

-10:00

HST

Bering

-11:00

BST

Baja Norte

-8:00

PST

Baja Sur

-7:00

MST

Mexico (General)

-6:00

CST


Table 4-2. Europe Time Zones

Region

GMT Differential

Abbreviation

Ireland

0:00

BST

The United Kingdom

0:00

BST

Western Europe

0:00

WET

Iceland

0:00

WET

Middle Europe

1:00

MET

Poland

1:00

MET

Eastern Europe

2:00

EET

Turkey

3:00

EET

Western Russia

3:00

WSU


Table 4-3. Asia Time Zones

Region

GMT Differential

Abbreviation

Rep. of China

8:00

CST

Hong Kong

8:00

HKT

Japan

9:00

JST

Rep. of Korea

9:00

ROK

Singapore

8:00

SST


Table 4-4. Middle East Time Zones

Region

GMT Differential

Abbreviation

Israel

2:00

IST

Egypt

2:00

EET

 

Table 4-5. South America Time Zones

Region

GMT Differential

Abbreviation

Brazil/East

-3:00

EST

Brazil/West

-4:00

WST

Brazil/Acre

-5:00

AST

Brazil/De Noronha

-2:00

FST

Chile/Continental

-4:00

CST

Chile/Easter Island

-6:00

EST


Table 4-6. Australia and New Zealand Time Zones

Region

GMT Differential

Abbreviation

Australia/Tasmania

10:00

EST

Australia/Queensland

10:00

EST

Australia/North

9:30

CST

Australia/West

8:00

WST

Australia/South

9:30

CST

Australia/Victoria

10:00

EST

Australia/NSW

10:00

EST

New Zealand

12:00

NZT

For complete information about setting your time zone, see the timezone(4) man page.

Changing the System Date and Time

Use the date(1) command to set the date and time. For example, to set the date to April 1st, 1999, and the time to 09:00, log in as root and enter:

date 0401090099

Changing the date and time on a running system can have unexpected consequences. Users and administrators use system scheduling utilities (at, cron, and batch) to perform commands at specified times. If you change the effective date or time on the system, these commands may not execute at the desired times. Similarly, if your users use the make utility provided with the system, the commands specified in Makefiles may perform incorrectly. Always try to keep your system date and time accurate within reason. Random changes of the date and time can be extremely inconvenient and possibly destructive to users' work.

If timed is running on the system, and it is a slave system, the time is reset by timed and not the date command. For more information, see the timed(1M) man page.

Changing File and Directory Access Permission

In general, IRIX file access permissions are set to allow ease of use among multiple users while maintaining system security. This section discusses how you can change file access permissions to permit or deny read, write, and execution permission for users, groups, or everyone. Note that users can also configure a umask to control default access to their own files (see “Default File Permissions (umask)” in Chapter 5 for more information).

The IRIX operating divides permissions into three categories, and users into three relationships. The three relationships are the owner of the file, the owner's user group, and all users. If you view a long listing of a directory, you see that the permissions field for each file in the directory looks something like this:

-rwxrwxrwx

Note that the line of permissions has the string rwx repeated three times. The first instance of rwx applies to the file owner, the next instance applies to the group members, and the third applies to all other users on the system. The example above shows full permissions. A more restricted permission set might look like this:

-rw-r--r--

The three categories of permissions are read, write, and execute. They are denoted as r for read, w for write, and x for execute in long listings of files. To get a long listing, enter the following command at your system prompt in any directory:

ls -l

Along with the permission information, the ls -l command lists the owners and the sizes of the files and the date they were last modified.

Read permission allows you to look at the contents of a file. Write permission allows you to make changes to or remove a file. Execute permission allows you to run the file as a command from your shell prompt.

Each character is separately significant in the permissions listing. Starting at the left, the first character is a dash. A dash in any other position means that no permission is granted and the actions associated with that permission are denied. However, in the left-most place, the contents of that space describes whether the file is a file or a directory. If it is a directory, a d appears in that space. Other characters in this place indicate that the file is a pipe, a block or character special device file, or other type of file. See the ls(1) man page.

To see the current status of a file's permission settings, use the ls -l command. For example, to see the status of permission on the file review, enter:

ls -l review
-rw-r--r--    1 jones engr 1015 Aug 14 16:20 review

Permissions are shown as read (r), write (w), and execute (x), for each of user, group, and other, respectively. That is, each of the user, group, and everyone else has some combination of read, write, and execute access to the file. After the first character (in this example, a dash), the next three characters give the read, write, and execute permission for the user, the next three characters give the read, write, and execute access for the group, and the last three characters give the read, write, and execute access for everyone else. So in the example, user jones has read (r) and write (w), access to the file review, while the group has only read (r) access, and other also has only read (r) access. Nobody has execute (x) permission.

The superuser or owner of the file can change these permission settings. As superuser, you can give everyone write access to a file with the chmod command. For example, to add write access for the group and others to the review file, use the go+w (g for group, o for other, and +w to permit writing) option as follows:

chmod go+w review

Now the access permissions should look like this:

-rw-rw-rw-    1 jones engr 1015 Aug 14 16:20 review

Another way of controlling permission settings is with the octal number representation obtained by using 7 as representing read, write and execute permission (4+2+1). In this way, to give complete read, write, and execute permissions to a file, use the chmod 777 command, and to give just read permission to the owner and no other permissions at all, use chmod 400. For complete information on setting access permissions on files and directories, refer to the chmod(1) man page.


Note: If you use chmod on a device file, edit the /etc/ioperms file to reflect the change, or the device file returns to the default access permissions after a reboot.

The format of an entry in /etc/ioperms is:

device_name owner group nnn

device_name is the device filename, owner is the file owner, group is the group, and nnn is the octal permission setting as described above and in the chmod(1) man page. Refer to the ioconfig(1M) man page for details on device permission settings in the /etc/ioperms file.

Directory Permissions

Directories use the same permissions as files, but their meanings are slightly different. For example, read permission on a directory means that you can use the ls command to look at the contents of that directory. Write permission allows you to add, change, or remove files in that directory. (However, even though you may have write permission in that directory, you must also have write permission on the individual files to change or remove them, unless you own the directory.) Finally, execute permission on a directory allows you to use the cd command to change directories into that directory.

File Permissions

The first series of three places after the leftmost place in the permissions field describe the permissions for the owner of the file. Here is an example of a long listing for a file:

-rwx------ 1 owner grp 6680 Apr 24 16:26 shell.script

The file is not a directory, so the leftmost space is blank. The characters rwx indicate that the owner of the file, owner, has read, write, and execute permission on this file. The second series of three spaces describe permissions for the owner's group. In this case, the group is grp. Suppose permissions for this file were slightly different, like this:

-rwxr-x--- 1 owner grp 6680 Apr 24 16:26 shell.script

In that case, any member of the group grp could read or execute the file, but not change it or remove it. All members of group grp can share a pool of files that are individually owned. Through careful use of group read and write permissions, you can create a set of document source files that are owned by one person, but any group member can work on them.

The third series of spaces provides for all other users on the system and is called the public permissions. A file that is set to be readable by any user on the system is called publicly readable.

Example 4-5 shows a long listing of a sample projects directory:

Example 4-5. Projects Directory

total 410
drw------- 1 owner grp 48879 Mar 29 18:10 critical
-rw-r--r-- 1 owner grp 1063 Mar 29 18:10 meeting.notes
-rw-rw-rw- 1 owner grp 2780 Mar 29 18:10 new.deal
-rwxrwxrwx 1 owner grp 8169 Jun 7 13:41 new.items
-rw-rw-rw- 1 owner grp 4989 Mar 29 18:10 response
-rw------- 1 owner grp 23885 Mar 29 18:10 project1
-rw-r----- 1 owner grp 3378 Jun 7 13:42 saved_mail
-rw-r--r-- 1 owner grp 2570 Mar 29 18:10 schedules
-rwxrwxr-x 1 owner grp 6680 Apr 24 16:26 shell.script

The files in this directory have varying permissions. Some are restricted to the owner, some can be read only by members of the owner's group, and some can be read, changed, or removed by anybody. The shell script is executable by any user.

Changing Permissions

You change the permissions on a file by means of the chmod(1) command. You can use chmod only to change files that you own. Generally, you use this command to protect files you want to keep secret or private, to protect private directories, and to grant permissions to files that need to be used by others. To restrict access to a file or directory to yourself only, enter:

chmod 600 filename 
chmod 700 dirname

Other permissions may be added by using the chmod command with the letter associated with the permission. For example, to add general write permission to a file, enter:

chmod +w filename

For more examples, see the chmod(1) man page.

Setting Permissions with umask

You can decide what default permissions your files have by placing the umask command in your .cshrc, .profile, or .login file. There is a default umask setting for the entire system in the /etc/profile and /etc/cshrc files. By changing the setting of your umask, you can alter the default permissions on your files and directories to any available Discretionary Access Control (DAC) permission. See the umask(1) man page for more information.

A drawback to the umask command is that it makes every file you create receive the same permissions. For most purposes, you want the files you create to be accessible by the members of your group. For example, if an individual is suddenly called away and another person must take over that person's portion of a project, the source files must be accessible by the new user. However, you might want the personal files you keep in your home directory to be private, and if you set your umask to allow group read and write privileges, any member of the group can access your personal files. But mechanisms are available to prevent this access. For example, you can create a directory of private files and alter the permissions on that directory with the chmod command to restrict all but your own access. Then no other user would be allowed into the directory.

You can also use the IRIX utilities to change all the files in your home directory to your chosen permission automatically at your convenience. You can set up your account so that this action happens to any files or directories you indicate every time you log out. For example, say you have three directories, called personal, letters, and budget. You can set up a .logout file in your home directory with commands to be executed each time you log out from the system. The following commands, placed in the.logout file will prevent access to the three example directories to anyone but you:

chmod 700 budget personal letters 
chmod 600 budget/* personal/* letters/*

The umask command is an important part of DAC. It allows you to maintain security and still allow convenient access to your files. To set your account up to allow group read and write privileges and no other privileges, place this line in your .cshrc or .profile file:

umask 006

This makes every file you create have the following permissions:

-rw-rw----

With your umask set to 006, directories that you create have the following permissions:

drwxrwx---

In plainer terms, you and your group will have full use of the file or directory. No other user, except the superuser (root), will have access to your files.

Access Control Lists (ACLs) and Capabilities

For information on access control lists (ACLs) and capabilities, see the IRIX Admin: Backup, Security and Accounting manual.

Partitioning Your System

Partitioning an SGI Origin 3000 series system involves dividing a single large system into multiple distinct systems, each with its own console, root filesystem, and IP network address as shown in Figure 4-1. Each partition can be rebooted, loaded with software, powered down, and upgraded independently. The partitions can communicate via IP over a NUMAlink connection.

Figure 4-1. Partitioned System

Partitioned System

Partitions can be of different sizes, and a particular system can be configured in more than one way. For example, a 128-processor system could be configured into four partitions of 32 processors each. (See “Supported Configurations” for a list of supported configurations for system partitioning.)

Your choice of partition size and number of partitions affects fault containment and scalability. In general, a middle-of-the-road solution may be acceptable in terms of both fault containment and scalability.

From a fault containment perspective, if the partitions are large, more of the system is lost in a failure because a failure in a partition brings down the complete partition.

From a scalability perspective, within a single partition, a system scales as if it is a single system. An application may only execute within a single partition. A network protocol is required for communication between applications in multiple partitions.

Advantages of Partitioning

Fault containment is one of the major reasons for partitioning a system. A single partition can be brought down (because of a hardware or software failure, or as part of a controlled shutdown) without affecting the rest of the system. A hardware memory barrier is set up between any two partitions, thus providing higher availability for a partition than for a single large system.

Another advantage of partitioning is that large jobs can be run when required by converting the system into one large system at night, and then splitting it into multiple systems during the day.

Disadvantages of Partitioning

Disadvantages of partitioning a system include loss of the ability to run or degraded performance for larger applications, such as heavily multithreaded applications or shared memory applications. In addition, with a partitioned system, access is lost to all system resources outside of your own partition, including filesystems, disks, and networking devices.

Installing Partitioning Software

SGI 3000 Series systems must have the eoe.sw.partition software package installed in order to use the system partitioning capabilities. A new kernel must be configured and a system boot must be done after installing the partitioning software package.

Networking Setup between Partitions

Interpartition communication occurs through a fault-tolerant messaging system (xpc) as shown in Figure 4-2. The kernel in each partition is aware of all the other kernels. They communicate by using the hardware's block transfer engine ( BTE). The xpc driver uses this hardware.

The xpc driver provides multiple (32) logical channels: some are used for kernel-to-kernel communication, and others are used by the raw cl or network if_cl devices.

Figure 4-2. Communication between Partitions

Communication between Partitions

Each partition has one cl driver and one if_cl driver. The if_cl driver implements an IP interface on top of xpc; if_cl is the NUMAlink network interface. Applications can use BSD sockets, for example, to communicate between partitions.

For cl devices, 16 full-duplex logical channels provide for character device user communication to any other partition. Each device appears in the /hw filesystem when its target partition boots. The pathname is as follows (the partition_number and device_number are specified as two-digit hexadecimal values):

/hw/xplink/raw/partition_number/device_number

The if_cl driver is configured using the ifconfig command. See the ifconfig(1M) man page for more information. The procedure for configuring the if_cl driver as a network driver is essentially the same as the procedure used to configure the Ethernet driver (ef0).

To configure the if_cl driver, follow the steps in Procedure 4-3:

Procedure 4-3. Configuring the if_cl Driver

  1. Log in as root.

  2. Add the cl0 interface by editing the /etc/config/netif.options file.

  3. Add the network address for the cl0 interface by editing the /etc/hosts file.

  4. Reboot your system or restart networking.

Connecting the System Console to the Controller

System partitioning is an administrative function. The system console is connected to the controller as required by the configuration selected when an SGI 3000 Series system is installed. For additional information or recabling, contact your service representative.

Partition Setup

You can set up partitions by using the mkpart partition configuration command or by using the setpart command from the command monitor.

mkpart Partition Configuration Command

The mkpart partition configuration command allows you to perform the following tasks:

  • List current partitions.

  • Save the current configuration.

  • Set up partitions and include the following steps:

    • Split an existing system into multiple partitions.

    • Coalesce partitions into a larger system.

    • Split up existing partitions and regroup them differently.

The mkpart command can be run only by the system administrator with superuser privilege. If the system is configured as CAP_NO_SUPERUSER, you must have effective capabilities of CAP_SHUTDOWN, CAP_DEVICE_MGT and CAP_SYSINFO_MGT. See the capabilities(4) man page for more information on the capability mechanism that provides fine grained control over the privileges of a process. All partitions that are affected by mkpart must be running the IRIX operating system.

See the mkpart(1M) man page for detailed information on this command.

A typical sequence of partitioning commands is as follows:

  1. Run mkpart -l to list all partitions.

  2. Run mkpart again to repartition the system.

    • Partition IDs are stored in the L1 system controllers.

    • mkpart uses a daemon (mkpd) to write IDs on remote partition L1s.

  3. Reboot all affected partitions if mkpart is successful.

The mkpart command-line syntax is as follows:

mkpart [-p partid -m brick ... [ -m brick ... ] ... ] ... [-F]

mkpart [-i] [-F]

mkpart [-l]

mkpart [-n]

mkpart [-h]

The mkpart command supports the following options:

-p partid  

Specifies the partition ID for the new configuration.

-m brick  

Indicates the C-brick (brick is used in some documentation) number.

-i  

Coalesces all currently active partitions into a single system with a partition ID of 0. A partition ID of 0 indicates an unpartitioned system.

-l  

Lists current partitions.

-n  

Prints partition ID of this partition.

-h  

Prints a usage message.


Caution: The -F option should be used with caution. The user of the mkpart command should know about the consequences of wrong usage of this option.


-F  

Forces override of all sanity checks. The command sets up partitioning as given and tries to reboot the system.

Partitioning from the PROM

You can also set up partitions by using the setpart command from the command monitor.

To set up partitions using the setpart command, follow the steps in Procedure 4-4:

Procedure 4-4. Setting Up Partitioned Systems

  1. Reset the system.

  2. From the System Maintenance menu, enter option 5 for the command monitor.

  3. Run the setpart command. (The setpart -h command displays all setpart options.) The setpart command is an interactive command that takes input from you, including a partition number and the C-brick numbers of the C-bricks that comprise the partition.

  4. After finishing, reset the system again. The system will now come up as two or more partitions. Each partition needs to have a I-brick, root disk, console, and so on.

To tear down partitions and coalesce the system back together, follow the steps in Procedure 4-5:

Procedure 4-5. Tearing Down Partitions

  1. Drop to the command monitor in all the partitions.

  2. Run the setpart -c command in any of the partitions. This command clears all partition information and offers to reset all partitions simultaneously. Now the entire system is reset and comes back up together as a single partition.

partmgr Partition Configuration Tool

The partmgr(1M) command invokes a partitioning administration tool for the SGI Origin 3000 series of servers that allows you define and store partition definitions including:

  • Partition ID information for bricks and racks

  • Associated prom environment variables.

Only a system administrator with superuser privilege can use this command. If the system is configured as CAP_NO_SUPERUSER, you must have effective capabilities of CAP_SHUTDOWN, CAP_DEVICE_MGT and CAP_SYSINFO_MGT. See the capabilities(4) man page for more information on the capability mechanism that provides fine grained control over the privileges of a process.

All the affected partitions have to be rebooted in order to change the system to the new partition scheme.

The partition ID of 0 has a special meaning in the operating system and cannot be used on a partitioned system. Valid partition IDs can be any number between 1 and 63, both included.

The term brick in this section refers to the C-brick module. The basic C-brick module contains four MIPS CPUs and up to 8GB of local memory.

In order to use the partmgr(1M) command, the following requirements must be met:

  • You must install the eoe.sw.partition software package.

  • The L1 and L2 firmware must be current.

  • You must enable partitioning administration in all L1s using the partdb enable L1 command.

  • The mkpd daemon must be running on all partitions for partmgr to work. If this is not the case, the partmgr command may not be able to shutdown remote partitions.

  • For the PROM to use the environment variables defined in the mode definition, the PROM environment variable AutoPROMVars must be set to 1.

See the partmgr(1M) man page for detailed information on this command.

The partmgr command-line syntax is as follows:

partmgr [-h]

partmgr [-l]

partmgr [-a]

partmgr [-n]

partmgr [-v]

partmgr -c [-m modename]

partmgr -x modename [-F]

partmgr -s modename [-F]

partmgr -i [-F]

partmgr -d [-F] -f file

partmgr -d [-F] -m modename -u [-e var=value]...

partmgr -d [-F] -m modename [-p part -b bricks [-e var=value]...]...

partmgr -d [-F] -m modename [-p part -r racks [-e var=value]...]..

The partmgr command supports the following options:

-h  

Help. Print a usage message.

-l  

List brick IDs of all known system bricks to standard out.

-a  

List all currently defined modes.

-n  

Display the current partition ID.

-v  

Display the environment variables for the current partition.

-c  

Display mode configuration. If no mode is specified (-m modename), the current mode is displayed.

-x modename  

Delete a mode.

-s modename  

Set a mode to be the current mode. This may require some partitions to be rebooted.

-i  

Same as -s Unpartitioned. Initializes the system to the default unpartitioned state.

-d  

Define a new node.

-m modename  

Specifies a mode name. This option is used with the -c and -d options.

-u  

When defining a new mode, used to specify an unpartitioned system.

-p part  

Specifies a partition ID. A partition ID is a number between 1 and 63, inclusive. The order of the -p, -b, -r and -e options is significant. See the partmgr(1M) man page.

-b bricks  

Specifies brick IDs (example: 001c13)

-r racks  

Specifies rack IDs (example: 001).

-e var=value  

Specifies an environment variable name/value pair.

-f file  

When defining a new mode, used to specify an input file.

-F  

Forces override of some sanity checks. This option should be used with caution. The user of partmgr should understand the consequences of using this option.


Caution: Use the partmgr command with caution. If used incorrectly, it can completely freeze all partitions in the system and prevent it from even booting the PROM.


Example 1.

To define a mode for an eight brick system with two partitions of four bricks each, perform the following;

partmgr -d -m modename -p 1 -b 001c10,001c13,001c16,001c21 -p 2 -b 001c24,001c29,001c32,001c35

Example 2.

To define a mode for an unpartitioned system with the prom environment variable AutoBoot set to No, perform the following:

partmgr -d -m modename -u -e AutoBoot=No

Example 3.

The following three examples are of input files (-f option). The leading spaces are allowed, but not required; they are only added for readability.

a.

   MODE modename1

         PARTITION 1
           BRICKS
             001c10 001c13 001c16 001c21

           ENVIRON
             AutoBoot=No

         PARTITION 2
           BRICKS
             002c10 002c13 002c16 002c21

           ENVIRON
             AutoBoot=No
             OSLoadPartition=scsi(0)disk(1)rdisk(0)partition(0)
             SystemPartition=scsi(0)disk(1)rdisk(0)partition(8)

b.

   MODE modename2

         PARTITION 1
          RACKS
             001 002

         PARTITION 2
           RACKS
             003 004

c.

    MODE modename3

         UNPARTITIONED

           ENVIRON
             AutoBoot=No
             OSLoadPartition=scsi(0)disk(1)rdisk(0)partition(0)
             SystemPartition=scsi(0)disk(1)rdisk(0)partition(8)
             netaddr=128.162.192.65

Supported Configurations

Figure 4-3 shows the configurations that are supported for system partitioning. For each configuration, it gives the total number of C-bricks, the number of C-bricks in each partition, and the maximum number of processors in a partition. For additional information, see the SGI Origin 3000 Owner's Technical Configuration Manual or your sales representative.

Figure 4-3. Supported Configurations

Supported Configurations

Metarouters are routers that only connect to other routers. They are needed in systems above 32 C-bricks systems.

Partitioning Guidelines

Keep in mind the following guidelines when partitioning your system:

  1. A partition must be made up of one or more 4-processor C-bricks.

  2. Each partition must have a unique ID number between 1 and 63, inclusively.

  3. Each partition must contain the following components:

    • At least one C-brick for system sizes of 64 C-bricks and below, or multiples of 4 C-bricks for system sizes of 65 C-bricks and above (minimum)

    • One I-brick (minimum)

    • One root disk

    • One console connection

  4. The console of the lowest numbered C-brick in a partition becomes the console for that partition. (The original console remains the console for the partition that contains it.)

  5. Each partition has its own set of PROM environment variables: ConsolePath, OSLoadPartition, SystemPartition, netaddr, and root.

  6. All bricks in a partition must be physically contiguous. The route between any two processors in the same partition must be contained within that partition, and not through any other partition. If the bricks in a partition are not contiguous, the system will not boot.

PCI Hot-Plug Support

On a SGI Origin 3000 series system, you can both add and remove certified controller cards while the system is powered on. Individual device drivers may support hot-plug insertion, hot-plug removal, neither, or both. If a driver supports both hot-plug insertion and removal, then you can replace cards supported by that driver in a running system.

Only certified device drivers support PCI hot-plug operations. These operations are available to drivers statically linked with the kernel and to loadable drivers. For information on specific certified device drivers, see your service representative.


Note: Attempts to hot-plug insert or remove a card that does not have a certified driver will fail.


PCI Bus Speed Restrictions

Only 66 MHz cards can be installed in an empty bus. Cards that are installed in a bus where another card is already installed run at the same bus speed as the existing card. If installing the new card results in a bus speed mis-match with the existing card, the hot-plug operation fails. Since a Pbrick has six buses with two slots each, you can populate it at boot time to accommodate insertion of cards running at 33 and 66 MHz. A 66 MHz card can also be run at 33MHz and can be inserted into a 33 MHz bus.

Insertion Procedure

Procedure 4-6 describes how you install a certified card such as a Qlogic Fiber Channel and SCSI controller card.

Procedure 4-6. Installing a PCI card Using the pciconfig Command

  1. Insert a supported card into an empty PCI slot in a Pbrick or Ibrick of your running SGI Origin 3000 series system.

    PCI cards are physically installed in a Pbrick or Ibrick. First, the card is mounted in a PCI carrier, which is then inserted into a slot in the back of the brick. Each slot in a brick can be identified by its bus and slot number label at the top of the slot. A tab is pushed to seat the card down into its slot.

    For more detailed information about installing a PCI card, see the SGI Origin 3000 Series Owner's Guide that was provided with your system.

  2. Bring the card online by using the pciconfig command.

    In the following example, a pciconfig command powers up the PCI slot, determines the type of card installed, and calls the appropriate device driver to initialize the card and its software.

    pciconfig -b /hw/module/001c16/Pbrick/bus/3/pci -s 1 -u
    

    The -b option specifies /hw/module/001c16/Pbrick/bus/3/pci as the path to bus 3 in the Pbrick, the -s option specifies slot 1, and the -u option indicates that you want to hot-plug insert a card in the specified slot. For a description of these options, see the pciconfig(1M) man page.

  3. Check the hardware graph for the new device entries.

    After a successful hot-plug insertion, the system runs as if the card was installed at boot time. Typically, new device entries are found in the hardware graph.

Removal and Query Operations

You can also use the pciconfig command to remove a card from a running system and to queue the status of the slot before and after a hot-plug operation. For more information on these operations, see the pciconfig(1M) man page.