eoe Release Notes

1 Introduction

2 Installation Information

3 Changes and Additions

4 Bug Fixes

5 Known Problems and Workarounds

6 Documentation Errors

A Challenge/Onyx IO4 PROM

 



                                  - 1 -



       1.  Introduction

       These notes describe the standard user environment of the
       IRIX 5.2 operating system from Silicon Graphics, Inc.

       This document contains the following chapters:

         1.  Introduction

         2.  Installation Information

         3.  Changes and Additions

         4.  Bug Fixes

         5.  Known Problems and Workarounds

         6.  Documentation Errors

       Appendix A is a discussion of the Challenge/Onyx IO4 PROM.


       1.1  Release_Identification_Information

       Following is the release identification information for
       standard user environment of IRIX 4D1-5.2:

       Software Products   eoe1 and eoe2

       Version             5.2
       Product Code        SC4-W4D-5.2



       1.2  Online_Release_Notes

       After you install the online documentation for a product
       (the relnotes subsystem), you can view the release notes on
       your screen.

       If you have a graphics system, select ``Release Notes'' from
       the Help submenu of the Toolchest.  This executes the
       grelnotes(1) graphical browser for the online release notes.
       Refer to the grelnotes(1) man page for information on
       options to this command.

       If you have a non-graphics system, you can use the
       relnotes(1) command.  Refer to the relnotes(1) man page for
       accessing the online release notes.













                                  - 2 -



       Note:  You can read the online release notes for most
              products before installing the software.  Refer to
              the booklet in your CD-ROM case for more information.

       1.3  Product_Support

       Silicon Graphics, Inc., provides a comprehensive product
       support maintenance program for its products.

       If you are in the U.S. or Canada and would like support for
       your Silicon Graphics-supported products, contact the
       Technical Assistance Center at 1-800-800-4SGI.

       If you are outside these areas, contact the Silicon Graphics
       subsidiary or authorized distributor in your country.












































 



                                  - 1 -



       2.  Installation_Information

       The IRIX 5.2 Execution Environment products (eoe1 and eoe2)
       contain foundation level software that requires a miniroot
       installation.  Please follow the instructions provided in
       the IRIS Software Installation Guide.

       The IRIX 5.2 Execution Environment can be installed over any
       previous operating system release, such as 4D1-3.3, 4D1-4.0,
       4D1-4.0.1, and 4D1-4.0.5, or any of the previous IRIX 5
       releases (5.0, 5.0.1, 5.1, 5.1.1.1, 5.1.1.2, or 5.1.1.3).

       If you have a clean system with FDDI and Ethernet, e.g. no
       networking info like /etc/hosts or /etc/sys_id on the disk,
       and you boot miniroot over the net, when you do "from" or
       "list" you are asked 2 questions:

       What is the name of this system?
       What is the network address of ?

       It then puts an entry in /etc/hosts with the netaddr
       variable from PROM, and with your system's hostname.  It
       then uses this address to start the FDDI interface.  Because
       the netaddr was the IP address of the Ethernet interface,
       everything is unreachable now.

       This can be worked around by:

       sh
       /usr/etc/netstat -in   # to find the names of your interfaces (ipg0/xpi0/etc)
       killall routed
       route -Fn
       ifconfig xpi0  netmask  up
       ifconfig ec0   netmask  up
       /usr/etc/routed -q

       use ipg0 instead of xpi0 if appropriate and use et0 or enp0
       instead of ec0 if appropriate.


       2.1  IRIX_5.2_Execution_Environment_Subsystems

       The IRIX 5.2 Execution Environment (eoe1 and eoe2) includes
       these subsystems:

       eoe1.man.dlpi                 DLPI manual pages

       eoe1.man.ppp                  Point-to-Point Protocol manual
                                     pages













                                  - 2 -



       eoe1.man.relnotes             IRIX 5.2 release notes

       eoe1.man.unix                 Basic IRIX documentation

       eoe1.man.uucp                 Unix-to-UNIX Copy manual pages

       eoe1.sw.dlpi                  DLPI software

       eoe1.sw.gfx_lib               Graphics Execution Libraries

       eoe1.sw.irix_lib              IRIX Execution Libraries

       eoe1.sw.ppp                   Point-to-Point Protocol
                                     Software

       eoe1.sw.quotas                BSD disk quotas

       eoe1.sw.svr4net               SVR4 networking

       eoe1.sw.unix                  Basic IRIX

       eoe2.books.Diskless_AG        Diskless Administration Guide,
                                     accessible using the IRIS
                                     InSight viewer.

       eoe2.books.RAID_AG            RAID Administration Guide,
                                     accessible using the InSight
                                     viewer.

       eoe2.books.SiteAdmin          IRIX Advanced Site and Server
                                     Administration Guide,
                                     accessible using the InSight
                                     viewer.

       eoe2.man.audit                Security audit trail manual
                                     pages

       eoe2.man.bsdlpr               BSD line printer spooling
                                     utilities manual pages

       eoe2.man.cdrom                CD-ROM manual pages

       eoe2.man.gifts_perl           PERL system administration man
                                     pages.

       eoe2.man.gltools              Graphics Library tools manual
                                     pages

       eoe2.man.imagetools           Graphics Library image tools
                                     manual pages












                                  - 3 -



       eoe2.man.netman               Network management manual
                                     pages

       eoe2.man.oampkg               AT&T packaging utility manual
                                     pages

       eoe2.man.slip                 SLIP manual pages

       eoe2.sw.acct                  System accounting

       eoe2.sw.audit                 Security audit trail software

       eoe2.sw.bsdlpr                BSD line printer spooling
                                     utilities

       eoe2.sw.cdrom                 CD-ROM software

       eoe2.sw.cdsio                 Multiport serial board support

       eoe2.sw.crypt                 Security administration
                                     utilities

       eoe2.sw.gifts_perl            PERL Software

       eoe2.sw.gltools               Graphics Library tools

       eoe2.sw.ikc                   Ikon printer interface

       eoe2.sw.imagetools            Graphics Library image tools

       eoe2.sw.ipgate                Contains additional network
                                     routing daemons for systems
                                     with multiple network
                                     interfaces (gateways).  The
                                     gated(1M) routing daemon
                                     supports RIP, EGP, and HELLO
                                     routing protocols.  The
                                     mrouted(1M) daemon allows
                                     forwarding of IP multicast
                                     packets between networks.  The
                                     ipfilterd(1M) daemon can be
                                     used to filter IP traffic.
                                     The subsystem also contains
                                     the traceroute(1M),
                                     rtquery(1M), and ttcp(1)
                                     tools.

       eoe2.sw.kdebug                Kernel debugging modules.

       eoe2.sw.lp                    Line printer spooling
                                     utilities











                                  - 4 -



       eoe2.sw.named                 Berkeley Internet name domain
                                     server

       eoe2.sw.netman                Network management support

       eoe2.sw.oampkg                AT&T packaging utility

       eoe2.sw.perf                  Performance measurement
                                     utilities

       eoe2.sw.rcs                   Revision control system
                                     utilities

       eoe2.sw.rfindd                rfind server utilities

       eoe2.sw.rm_media              Contains the mediad(1M) daemon
                                     that keeps track of removable
                                     media devices such as CD-ROMs
                                     and floppy disks.

       eoe2.sw.sccs                  Source code control system
                                     utilities

       eoe2.sw.slip                  SLIP software

       eoe2.sw.spell                 Spell utilities

       eoe2.sw.tcp                   TCP/IP networking support

       eoe2.sw.terminf               Terminal information utilities

       eoe2.sw.uucp                  UUCP utilities

       eoe2.sw.xm                    Xylogics 1/2-inch tape support

























 



                                  - 1 -



       3.  Changes_and_Additions



       3.1  General_OS_Feature_Changes

       The following features are new or significantly changed
       since IRIX 4.0:

          o Power Series, Crimson, and Challenge/Onyx L/XL systems
            automatically reboot after a kernel panic.  Other
            systems, such as the Personal IRIS, IRIS Indigo,
            Indigo2, and Indy still wait for a system reset.  The
            default can be overridden by altering the
            ``reboot_on_panic'' variable with systune(1M).  This is
            no longer dependent on the AutoLoad NVRAM variable.

          o As of 5.0.1, IRIX executes binaries that comply with
            the MIPS Application Binary Interface (ABI).

          o As of 5.0, SCSI devices created by inst and MAKEDEV use
            different major and minor numbers from those in
            previous releases.  If you have created your own SCSI
            devices, you should create new ones based on the new
            major and minor numbers.  Currently, the old major and
            minor numbers will still work, but in a future release
            the major numbers may be reclaimed.  Typical uses for
            user created devices would be ones like /dev/8mm, which
            might be a link to /dev/rmt/tps0d6nsv (assuming that an
            8mm tape drive is device 6 on SCSI bus 0), or /dev/d,
            which might be a link to /dev/dsk/dks0d2s7 (assuming
            that partition 7 of drive 2 on SCSI bus 0 has the
            filesystem mounted at /d).

          o Shadow passwords

            As of IRIX 5.0.1, shadow passwords can be enabled at
            the discretion of the system administrator.  Enabling
            shadow passwords removes the encrypted passwords from
            /etc/passwd and keeps them in a separate file that is
            readable only with superuser privilege.  This makes the
            system far less vulnerable to dictionary attacks and
            brute force attempts to decrypt system passwords.
            Refer to the manual page for pwconv(1M) for information
            on converting an IRIX 5.0.1 or later system to use
            shadow passwords.

          o /etc/passwd and GECOS field

            The IRIX5 login(1) command no longer supports the
            optional pri=# subfield of the GECOS field of











                                  - 2 -



            /etc/passwd entries.  The GECOS field contains
            information which is typically used by finger(1), such
            as the user's real name and phone number.  IRIX4
            supports a GECOS subfield of the form pri=#NN, where NN
            is a numeric value which gets passed to nice(1).  IRIX5
            ignores this subfield.

          o Login configuration

            In IRIX 4.0, a number of options could be selected to
            control the behavior of the login(1) program.  These
            options were set by modifying the file
            /etc/config/login.options.  Starting with IRIX 5.0.1,
            the configuration of the login program is done by using
            the file /etc/default/login, which is the SVR4 method
            for specifying login configuration options.
            Administrators must take care to ensure that when a
            system is upgraded from IRIX 4.0 to IRIX 5.0.1 or
            later, the login configuration settings are transferred
            to the new configuration file.  Refer to the login(1)
            manual page for more information.

          o /etc/inetd.conf update

            When updating to IRIX 5.2, /etc/inetd.conf must be
            modified to enable tftp access and/or allow bootp
            forwarding if the system:

               - has software distribution directories

               - has a CD-ROM drive used by other people for
                 software installations

               - is a router (i.e., has multiple physical network
                 connections and performs IP datagram relaying)

            The standard /etc/inetd.conf is not configured for
            these situations.  Systems will get the standard
            /etc/inetd.conf when they are updated.  Administrators
            often forget that inetd.conf was modified a long time
            ago, so their installations will fail.  Directions for
            modifying /etc/inetd.conf are in Chapter 3 of the IRIS
            Software Installation Guide.  (For Indy users, this
            guide must be obtained separately.)

          o System audit trail facility from Trusted IRIX/B

            The audit subsystem, when enabled, records logs of all
            security-relevant actions of all programs and users on
            the system.  Tools are provided to examine and analyze
            the system audit trail.  As of IRIX 5.0.1, the audit











                                  - 3 -



            subsystem is bundled at no additional cost.  For
            information about the system audit trail, refer to the
            manual pages for satd(1M) and sat_select(1M).

          o Swap to files

            Starting with 5.0.1, IRIX can use files in a filesystem
            as additional swap space.  Both local (EFS) and remote
            (NFS) swap files are supported.  This provides
            significantly more flexibility in configuring swap
            space than previous releases of IRIX, which could use
            only raw partitions for swapping.  Refer to the
            swap(1M) manual page for more information.

          o Virtual memory accounting

            In IRIX 4.0, it was possible to configure the way in
            which the kernel did accounting for allocation of
            virtual address space by setting a kernel configuration
            parameter called availsmem_accounting.  There are two
            important changes in this behavior starting in IRIX
            5.0.1:  the default behavior is now the opposite of the
            default in IRIX 4.0, and the method to configure the
            system for behavior other than the default is
            different.  The availsmem_accounting kernel parameter
            does not exist starting in IRIX 5.0.1.  As of 5.0.1,
            IRIX behaves by default as IRIX 4.0 did when
            availsmem_accounting was set to be 'true' (not zero).
            In this mode, the system preallocates backing store
            (RAM memory or swap space) for all virtual space at the
            time the space is initially requested by a process.  To
            allow a process to fork(2), the system must be able to
            reserve enough physical memory and swap space to hold
            two complete copies of the process, even though all the
            pages are actually shared copy-on-write at the time of
            the fork.

            It is still possible in IRIX 5.0.1 and later to get the
            same behavior that was the default in IRIX 4.0
            (availsmem_accounting set to zero), but the method is
            different.  If programs on a system allocate much more
            virtual space than they ever actually use, the
            technique for allowing this without having to create
            prohibitively large swap spaces is to use the new
            concept of virtual swap space.  When additional swap
            space is added using swap(1M), it is possible to cause
            the system to consider the size of the swap file for
            accounting purposes to be larger than it actually is.
            Refer to the swap(1M) and swapctl(2) manual pages.  You
            can enable or disable the default use of virtual swap
            space using chkconfig(1M) with the command:











                                  - 4 -



            chkconfig vswap on

            or

            chkconfig vswap off

            If enabled, blocks of virtual swap space are added.
            The file /etc/config/vswap.options declares the
            specific number of blocks to be added, with a default
            of 80,000 blocks.  Virtual swap is enabled by default
            for Indy, and disabled by default for all other
            platforms.

            However, IRIX 5.0 and some pre-release versions of
            5.0.1 had virtual swap enabled by default for all
            platforms.  If you install 5.2 over one of these
            releases, then virtual swap will remain enabled until
            you choose to use chkconfig(1M) to explicitly disable
            it.

          o Clock processor

            Starting with IRIX 5.2, the default clock processor on
            multiprocessor machines will be processor one.

          o As of 5.0.1, IRIX includes several enhancements to the
            system process scheduler, including deadline
            scheduling, efficient gang-scheduling, processor
            affinity, and virtual processor sets.  Refer to the
            manual pages for pset(1M), ps(1) (-c option),
            schedctl(2), and sysmp(2) for further information.

          o Loadable kernel modules

            As of 5.0.1, IRIX can load kernel device drivers and
            STREAMS modules at run time.  This means that it is
            possible to add a device driver or STREAMS module to
            the kernel without having to relink the kernel and
            reboot.  This is useful for drivers that are used only
            infrequently.  Refer to the manual pages for ml(1M),
            lboot(1M), and mload(4) for more information about
            loadable kernel modules.

          o Autoconfig

            In IRIX 5.0.1, the autoconfig startup script was moved
            up in priority among the /etc/rc2.d startup scripts,
            from S95autoconfig to S23autoconfig.  This is necessary
            so that autoregister, which registers loadable kernel
            modules, can run earlier and register all loadable
            modules that might be required by other startup











                                  - 5 -



            scripts.  A new option, -T, was also added to lboot
            that tells it to configure the kernel automatically,
            without prompting for permission.  The -t option can be
            used to tell lboot to prompt for permission before
            configuring a new kernel, as in previous IRIX releases.
            This option is specified in the
            /etc/config/autoconfig.options file, which is read by
            the autoconfig script.  The default option is -T.
            Refer to the autoconfig(1M) manual page for more
            information about the autoconfig script.  Refer to the
            the mload(4) manual page for more information about
            autoregistering loadable kernel modules.

          o Dynamic kernel tuning and configuration

            As of IRIX 5.0.1, a new system utility, systune(1M), is
            provided that allows tuning and configuring the kernel
            without the need for editing kernel configuration
            files.  systune also allows you to change some kernel
            tuning and configuration parameters while the system is
            running.  The kernel can also configure itself
            automatically at boot time, based on the physical
            characteristics of the system.  For example, the number
            of entries in the system process table (NPROC) is now
            derived from a formula based on the amount of memory in
            the system.  Starting in release 5.2, the number of
            entries in the process table (which is the maximum
            number of processes that can exist in the system at any
            given time) is:

            NPROC = 30 + (memory size in 4096-byte pages)/60

            Or, 30 plus approximately 68 processes for every 16 MBytes.

            If the number computed by the formula is not
            satisfactory, it can still be overridden by the system
            administrator with systune(1M).  Platforms other than
            Challenge/Onyx are limited to NPROC <= 3000, and
            Challenge/Onyx are limited to 10,000.

          o As of 5.1, IRIX supports the fd filesystem.  Refer to
            the fd(4) manual page for information.

          o System V Release 4 (SVR4) Networking Support

               - Supports a STREAMS TPI module, which maps
                 STREAMS/TLI operations into the Silicon Graphics'
                 BSD-style TCP/IP protocol stack.  This module
                 supports /dev/tcp, /dev/udp, /dev/raw, and
                 /dev/ip.  It supports an SVR4 STREAMS module for
                 loopback devices: /dev/ticlts, /dev/ticots, and
                 /dev/ticotsord.










                                  - 6 -



               - Supports SVR4 STREAMS modules:  sockmod, timod,
                 and tirdwr.

               - Data Link Provider Interface (DLPI) support

                 The DLPI is a kernel level interface, based on the
                 STREAMS development environment. The current
                 implementation is a style 2 Data Link Service
                 (DLS) provider and is based on the Revision 2.0.0
                 specification. Further information can be found in
                 the manual page dlpi(7).

               - Supports both Transport Independent RPC and Sun
                 ONC RPC for user programs.  The kernel still uses
                 ONC RPC for kernel RPC services.

          o IRIX 4.0 object file compatibility

            Almost all object programs compiled and linked on IRIX
            4.0.1 or later run without change on IRIX 5.0.1 or
            later.  The only exceptions are programs that access
            the /proc or /debug filesystem through the ioctl(2) or
            fcntl(2) interfaces, and programs that read kernel
            memory through /dev/kmem and assume any knowledge of
            kernel internal data structures.

          o The Bourne shell (sh) has been changed to disallow it
            from being a setuid or setgid program under most
            conditions.  Refer to the sh(1) manual page for
            details.

          o As part of the directory reorganization intended to
            allow /usr to be shared as a read-only filesystem, the
            inst history has moved from /usr/lib/inst to /var/inst.

          o As of 5.0.1, IRIX includes version 5.6 of RCS, the
            Revision Control System, which supports binary files,
            faster checkout of old versions, flexible keyword
            expansion, setuid capability, compatibility with
            previous RCS versions, and numerous other features.
            GNU source is included; see RCSsource(5).

          o As of 5.0.1, IRIX includes a new command, called
            rfind(1), which is a fast client-server adaptation of
            the find(1) command.  Multiple clients can efficiently
            search large server file systems in seconds for files
            matching a Boolean expression.  The small client
            command, rfind(1), is installed by default.  The server
            daemons rfindd(1M) and fsdump(1M), which typically
            increase disk space requirements on the server by 1% to
            2%, are optionally selected.











                                  - 7 -



          o As of 5.0.1, IRIX includes version 1.15 of GNU diff(1),
            which is upward compatible with the diff included in
            previous releases of IRIX, and has added support for
            context diffs, unified output format, diff'ing binary
            files, improved performance, and other GNU-derived
            options.  GNU source is included; see DIFFsource(5).

          o As of 5.0.1, IRIX includes version 4.1 AT&T UNIXr
            System V Release 4 software packaging tools.  These
            tools are not used by SGI to package its software.

          o The scanner command has been retired.  The gscan
            command replaces it.

          o Man Pages

               - Fonts of Manual Pages Changed to SVR4 conventions

                 As of IRIX 5.0.1, many of the manual pages have
                 been converted to the SVR4 font and formatting
                 conventions.  To get the best readability when
                 viewing these manual pages on a terminal or
                 terminal emulator, it is recommended that the ul
                 -b command be used in place of ul in the PAGER or
                 MANPAGER environment variables.  The man(1)
                 command has been modified to supply this option
                 automatically, if neither PAGER nor MANPAGER is
                 defined.  Refer to man(1) for more information.

               - Additions to the MANPATH environment variable

                 If you set the MANPATH environment variable, add
                 two new directories to look for manual pages:
                 /usr/share/catman and /usr/share/man.  These two
                 new directories should be searched before the
                 /usr/catman and /usr/man directories to ensure
                 that the newer manual pages are displayed first.
                 The man(1) command has been modified to search
                 /usr/share/catman, /usr/share/man then /usr/catman
                 and /usr/man, if MANPATH has not been defined in
                 your environment.  Refer to man(1) for more
                 information.

          o Basename changed to binary file

            The basename command has been changed from a shell
            script to binary file.  The previous manual page for
            basename(1) presented an example with '\.', which is
            incorrect and is no longer supported by basename.  If a
            backslash is used, undesired results might be returned.
            Refer to basename(1) for more information.











                                  - 8 -



          o Changes to syslogd

            syslogd output has an additional field that gives
            priority and facility codes.  This additional
            information should be very useful to programs/filters
            that parse this file.  See the syslogd(1M) man page for
            an example of the new format and information about the
            priority and facility codes.

            Also, syslogd filters can now access the priority,
            facility, and hostname of the filtered message via
            environment variables.  This change does not affect
            previously written syslogd filters.  See syslogd(1M).

            Both of these changes were made for the sysmon (System
            Monitor) System Error Reporting product.  The change to
            the SYSLOG file format enables a System Log Viewer,
            sysmon(1M), to display messages via priority.  The
            addition of syslogd(1M) environmental variables were
            made for syserr(1M), a program that gives you desktop
            notification of critical system errors.  A new filter
            was added to /etc/syslog.conf, sysmonpp(1M), that
            launches syserr(1M).

          o As of IRIX 5.1, the libc resolver routines and
            nslookup(1C) have been updated to the BIND 4.9 release.
            The name server, named(1M), was not updated; it remains
            the 4.8.3 version.  In addition, the resolv.conf(4)
            file is now expected to be in the /etc directory,
            though for backwards compatibility the resolver
            software looks in the old location, /usr/etc, if it
            can't find it in /etc.

          o The location of the standalone diagnostics on the CD
            (not the installed location) has changed for most
            system types.  They are no longer located in the volume
            header of the CD, nor in the dist/sa file.  Instead,
            they are located in the stand subdirectory of the root
            directory of the CD.  For some newer systems, the
            diagnostics may be booted from the CD by choosing the
            Run Diagnostics menu choice.  If that does not work,
            then for all system types they may be booted with the
            following command (assuming that the CD-ROM drive is
            located on SCSI bus 0 at ID 4), from the Command
            Monitor menu choice at system boot:

            >> dksc(0,4,8)sashARCS dksc(0,4,7)stand/ide.IPXX

            for system types IP19, IP20, and IP22,

            >> dksc(0,4,8)sashIPXX dksc(0,4,7)stand/ide.IPXX











                                  - 9 -



            for IP12 and IP17 systems (note absence of a period in
            this and the ARCS case in the sash portion), and

            >> dksc(0,4,8)sash.IPX dksc(0,4,7)stand/ide.IPX

            for all other system types (where X and XX are replaced
            with the number matching the system type).  See the
            IRIS Software Installation Guide for information on
            determining  your system type.

            Note:  Some system types may not have diagnostics
                   present on the Execution Environment CD; contact
                   your Support Center for information about these
                   systems.

          o Newer systems (IP19, IP20, and IP22; see your IRIS
            Software Installation Guide for determining your system
            type) use a new form of the sash and fx standalone
            programs and have a graphical interface at system boot.
            sash and fx generally have the suffix (on the
            installation media) ARCS, rather than IPXX (where XX is
            the CPU type). If you use Command Monitor commands to
            load the miniroot during installation (described in
            Section 7.1 of the IRIS Software Installation Guide),
            or if you need to boot the standalone fx program, the
            suffix will be visible.  For example, assuming CD-ROM
            installation media, with the CD-ROM drive at SCSI ID 7,
            you can boot fx as follows:

            >> dksc(0,7,8)sashARCS dksc(0,7,7)stand/fx.ARCS

          o As of 5.2, IRIX supports multiple major numbers in
            master files.  The following master files were changed
            to support multiple major numbers: dksc, ds, ptc, pts,
            smfd, tpsc and xylipi.  This made it possible to remove
            the following master files: dksc[0-3], ds[0-4], jag[0-
            7], jagds, jagtape[0-7], jagtapestat, ptc[1-4], pts[1-
            4], smfd[0-3], tpsc[0-3], tpscstat and xylipi[1-3].
            Similarly, the following archives: dksc*.a, ds*.a,
            jag*.a, jagtape*.a, jagds.a, ptc*.a, pts*.a, smfd*.a,
            tpsc*.a and xylipi*.a have been replaced with the
            following objects: dksc.o, ds.o, jag.o, ptc.o, pts.o,
            smfd.o, tpsc.o and xylipi.o.

          o sproc processes can now run on isolated processors, on
            MP systems.  See realtime(5).
















                                  - 10 -



       3.2  Fonts_and_Font_Management_Changes

          o Fonts

            The bitmap fonts Screen, Screen Bold, Iris, Type, and
            Rock have been extended from the ASCII to the ISO
            8859-1 character set.

            The bitmap fonts Haeberli (haeberli*), Rock (rock*),
            Hebrew (heb*), Charter (char*), all Utopia (utop*)
            bitmap fonts except Utopia Regular (utopR*), and all
            Lucida (lu*) bitmap fonts except Lucida Typewriter
            (lut*) are no longer installed by default. They have
            been moved from the subsystem x_eoe.sw.Xfonts, to a new
            subsystem called x_eoe.sw.Xoptfonts. The new subsystem
            is not installed by default. This change was made to
            reduce the disk storage requirements for those font
            files which are installed by default.

          o IrisGL Font Manager

            The IrisGL Font Manager (FM) makes it easier to write
            those IrisGL and mixed-model programs which need fonts.
            The IrisGL FM now consists of:

            /usr/lib/libfm.so   /usr/lib/libfm.so is a new type of
                                shared library that was introduced
                                in IRIX 5.0. It should be used when
                                you develop new programs.

            /usr/lib/libfm_s    /usr/lib/libfm_s is the same type
                                of static shared library that was
                                shipped before IRIX 5.X. It is used
                                to run some IRIX 4 programs that
                                were linked with shared libraries
                                (including the IRIS FM shared
                                library) on IRIX 5 systems.

            /usr/lib/libfm_s.a  /usr/lib/libfm_s.a is a symbolic
                                link to libfm.so. It is provided to
                                avoid breaking old Makefiles that
                                still have the option -lfm_s
                                specified on their compile-and-link
                                command lines. When you specify
                                that option, the linker tries to
                                link your program with
                                /usr/lib/libfm_s.a. It now links
                                your program with
                                /usr/lib/libfm.so. In IRIX 5.0 and
                                later, use the option -lfm to link
                                your program with











                                  - 11 -



                                /usr/lib/libfm.so. The file libfm.a
                                is no longer shipped, because it is
                                no longer needed.

            /usr/lib/libfm.so and /usr/lib/libfm_s are installed
            when you install the subsystem eoe1.sw.unix.
            /usr/lib/libfm_s.a is installed when you install the
            subsystem gl_dev.sw.gldev.

            For more information about fonts and font management,
            see the chapter "Working with Fonts" in the InSight
            book the IRIX System Programming Guide. If you install
            InSight and the specified book, you can display the
            contents of that book on the screen of your video
            monitor, search for the information you need, and print
            that information.

            The Section "Adding Font and Font Metric Files" in the
            chapter "Working with Fonts" talks about inserting an
            entry in the file /usr/lib/X11/fonts/ps2xlfd_map when
            you add a bitmap or outline font.  If you add your own
            (local) fonts, you should put entries for those fonts
            in a file called /usr/lib/X11/fonts/ps2xlfd_map.local.
            If that file does not exist, login as root, and create
            it. That way your entries for local fonts will not
            disappear when you upgrade the system software on your
            machine. You can now use tabs when you edit
            ps2xlfd_map* files.  Those files are used by the X
            Window System to convert PostScript font names to X
            font names, and they are used by the IrisGL Font
            Manager to convert X font names to PostScript or short
            font names.

            Similarly, if you want to specify your own (local) font
            aliases in an X font directory that already contains a
            file called fonts.alias, you should specify them in a
            file called fonts.alias.local. If that file does not
            exist, login as root, and create it. That way your font
            aliases will not disappear when you upgrade the system
            software on your machine.

            The IrisGL FM has a path that it searches when it looks
            for bitmap fonts.  The default for this font path is
            now
            /usr/lib/X11/fonts/100dpi:/usr/lib/X11/fonts/75dpi:/usr/lib/X11/fonts/misc.
            You can use the environment variable FONTPATH to
            specify a different font path. Alternatively, you can
            use the font management function fmsetpath() to specify
            a different font path for the IrisGL FM. The IrisGL FM
            also uses outline font files in Type 1 format stored in
            the directory /usr/lib/DPS/outline/fonts. The path for











                                  - 12 -



            outline fonts cannot be modified. The IrisGL FM no
            longer uses the directory /usr/lib/fmfonts.

       3.3  Internationalization_related_Changes

          o Internationalization

            As of 5.0.1, IRIX includes support for XPG/3, MNLS, and
            X11R5 internationalization interfaces.  Full
            setlocale(3) support is provided.  The C shell
            (previously a problem) has been fully
            internationalized.  The size of wchar_t (wide
            character) is 4 bytes.

               - Internationalized commands

                 There are (at least) two levels of
                 internationalization support when considering
                 commands.  First, a command is brought to the
                 point where it functions correctly no matter what
                 the locale is, for example, if you want /bin/echo
                 to work if asked to echo Kanji.  For purposes of
                 this document, call this first-pass
                 internationalization.  The second level allows a
                 command's behavior to be locale-dependent.  This
                 includes language-specific diagnostic messages,
                 language-specific UI, culture-specific formatting
                 of various output data, and so on.  Call this
                 complete internationalization.

                 Although many commands in IRIX 5.0.1 and later
                 have been internationalized to one of the two
                 levels mentioned above, others have not but are
                 planned for the future. SGI has attempted to
                 ensure internationalization of important commands.

                 Among the commands with first-pass or complete
                 internationalization are:  basename, cal, cat,
                 chmod, chown, chroot, clear, comm, cp, crypt, csh,
                 csplit, cut, date, dircmp, dirname, du, echo,
                 false, fgrep, file, find, gencat, getopt, gettxt,
                 grep, head, join, kbdload, kbdpipe, kbdset, kill,
                 killall, ln, login, logname, lp, lpstat, ls, mail,
                 makekey, mesg, mkdir, mkmsgs, mknod, mv, mvdir,
                 nl, nohup, od, pack, passwd, passwd_gen, paste,
                 pfmt, pg, printf, ps, pwconv, pwd, rm, rmdir, sh,
                 sleep, sort, split, srchtxt, strings, stty, su,
                 sum, sync, sysinfo, tail, tee, test, time, touch,
                 tr, true, tty, uname, uniq, unpack, vi, wall, wc,
                 wchrtbl, whereis, who, whoami, and write.












                                  - 13 -



               - Keystroke Composition

                 Under X, IRIX 5.0.1 and later releases allow users
                 to generate characters that are not present on a
                 keyboard by using sequences of other keys.

                 Composition is performed via the Multi_key X
                 keysym, which designates the ``compose'' key.  To
                 remain compatible with the IBM PC/AT layout, the
                 default IRIX keymaps do not specify a compose key,
                 but you can add one with xmodmap(1). For example,
                 to make the  key behave as
                 ``compose,'' use the command:

                 xmodmap -e "keysym Scroll_lock = Multi_key"

                 Composition is regulated by compose tables, which
                 may vary from locale to locale or from user to
                 user.  A typical composition for, say, the letter
                 N-tilde might be , , <~>.
                 Composition sequences are intended to be
                 intuitive.

       3.4  Graphics_related_Changes

          o The OpenGL is now supported on systems with
            RealityEngine graphics.  It passes Level 0 of the
            conformance tests and most of the balance of the test
            suite.  Refer to chapter 5, ``Known Problems and
            Workarounds,'' for a list of the limitations of the
            OpenGL implementation.

            The IRIS GL now supports new image processing features:

               - Calls to allocate framebuffer space (the ILbuffer)
                 to be used as image storage/cache and use it as
                 the source or destination of drawing and pixel
                 transfers.  Note that this is not exactly the same
                 as the AUXbuffers in OpenGL.

               - Modifications to texture loading.  Texture memory
                 represents a warpable, wrappable image store with
                 very fast fill and resampling (image rotate, zoom,
                 and copy) rates.  The modifications allow raster-
                 order load of image data to texture memory with
                 most pixmode and pixel transfer operations, and
                 loading sub-images into texture memory. This is
                 the basic tool that, along with texture coordinate
                 wrapping, also allows fast panning over a large
                 image.












                                  - 14 -



            The source for the image data can be either host memory
            or the framebuffer.

          o Operators on pixel transfers (lrectwrite, rectcopy,
            lrectread).  The operations are:

            Convolve 3x3, 5x5, 7x7, separable and general
            Lookup tables

            Image statistics: hgram and minmax

          o You can transfer a single component of a framebuffer
            (ABGR) image so that image storage is extended by a
            factor of 4.

          o Several OpenGL-like commands were added to pixmode,
            primarily CPM_INPUT_TYPE, PM_INPUT_FORMAT,
            PM_OUTPUT_TYPE, PM_OUTPUT_FORMAT.

          o The IRIS GL man pages that are new or changed are:
            convolve, fbsubtexload, gethgram, getminmax, hgram,
            ilbuffer, ildraw, istexloaded, minmax, pixelmap,
            pixeltransfer, pixmode, readcomponent, readsource,
            subtexload, texbind, texdef, texdef2d.

       3.5  Hardware_dependent_Changes
                  2
          o Indigo  and Indy use keyboards that are electrically
            compatible with standard PC style devices and use a
            different scan c2de set from other 4D systems.  In IRIX
            4.0.5H on Indigo , PC scan codes were converted to
            SGI-compatible scan codes to maintain strict2binary
            compatibility.  Starting in IRIX 5.1, Indigo  and Indy
            use PC scan codes directly, which allows support for
            keyboards with different layouts.  This causes
            applications that use scan codes directly (for example,
            X11 keycodes instead of Keysyms, or IRIS GL macros
            prefixed with KB_) to interpret keyboard input
            incorrectly.
                                       2
          o The R4000 Indigo and Indigo  now support up to 384 MB
            of RAM.

          o The following printers are no longer formally
            supported:

               - Mitsubishi G500

               - Tektronix 4692, 4693D













                                  - 15 -



               - Versatec ECP-42

               - Seiko CH-5312, CH-5303, CH-5504, CH-5514.

               - Kodak SV6500, XL7700

            However, the unsupported software required to drive
            these printers is (temporarily) still shipped with
            eoe2.sw.lp.  This software will be obsoleted in future
            releases, so do not rely on it for future releases.  To
            enable the unsupported software, type the following
            command:

            su lp ; cp /var/spool/lp/model/OBSOLETE/centface /var/spool/lp/model

          o As of 5.0.1, IRIX includes a new user-level interface
            for mapping VME bus address space into a user program's
            address space.  In the past, this was done by mapping
            magic addresses in the special file /dev/mmem.  The new
            interface provides a separate special file for each VME
            bus, address space, and modifier located in the
            directory /dev/vme.  You now specify the address of the
            VME device as an offset into the special file.  Further
            information can be found in the manual page usrvme(7M)
            and the IRIX Device Driver Programming Guide.

          o IRIX 5.1 merged the jagtape and tpsc tape drivers into
            one driver.  Tape devices connected to the Interphase
            Jaguar and Cougar VME SCSI buses are still accessed
            through the special files /dev/[r]mt/jag*.  However,
            there is no longer a jagtape module that can be
            included in the system file /usr/sysgen/system/irix.sm.

          o As of 5.2, IRIX does not support RAID level 5 (see
            raid(1M) and usraid(7M)).

          o As of 5.0.1, the RAID administrative program, raid(1M),
            checks for mounted filesystems on a RAID before
            attempting a destructive operation.  It accurately
            determines that a filesystem exists in a partition on a
            RAID, but it might not accurately report that that
            filesystem is mounted.  Take warnings that a filesystem
            exists in a partition on a RAID seriously; check that
            the indicated filesystem is not mounted before
            proceeding.

          o Mediad

            Mediad replaces cdromd and msdosd.  It is a single
            daemon that does the disk mounting operations that
            cdromd and msdosd previously did.  Mediad also











                                  - 16 -



            communicates the status of the removable media device
            and the media they may contain to Cadmin (the new
            system administration interface in the Indigo Magic
            Desktop).

          o Limited support for SyQuest disk drives has been added.
            SyQuest disk drives are only supported for HFS
            (Macintosh) file systems.  See section 5 for further
            information.

       3.5.1  Special_R4000_support

          o Recently a potential problem in the R4000 CPU, versions
            2.2 or 3.0 with secondary cache, was discovered in the
            integer divide instructions.  Under some complex
            conditions, the integer divide instructions may return
            the wrong result.  This includes instructions: div,
            divu, ddiv, and ddivu.

            This version of the R4000 CPU is shipped in Crimson,
            Indigo, Indigo2, and Indy (with a secondary cache
            option).  Challenge/Onyx L/XL systems do not use this
            version.  Systems without a secondary cache do not
            exhibit this problem.

            If the customer has a program which does not behave
            correctly, this problem can be eliminated by following
            the instructions below.

            The first case requires these conditions: a divide as
            the last instruction on a page, with a TLB miss (page
            fault) taken on the following instruction, plus an
            instruction cache miss, plus a certain bit pattern in
            the displaced Scache line.  An OS workaround has been
            installed to prevent this case, by managing TLB entries
            as page pairs.  This workaround is automatically
            performed on all 2.2 and 3.0 CPU versions (see hinv to
            determine CPU version).

            The second case requires these conditions: a divide in
            the delay slot of a taken branch instruction, where the
            target instruction gets a TLB miss (page fault), and an
            instruction cache miss, plus a certain bit pattern in
            the displaced Scache line.  A workaround has been
            installed in the 3.17 (and later) compiler tools; they
            do not place integer divides in delay slots.  IRIX 5.2
            ships with 3.18 compiler tools.

            Additionally to cover the second case for programs
            generated by earlier compiler tools, a utility is
            provided which will patch a binary to remove integer











                                  - 17 -



            divides from delay slots.  This is the r4kpp utility.
            In this release, this utility can add code to COFF
            a.outs and _s static shared libraries only.  Added code
            is placed in the .init section, together with a table
            of patch addresses and values.  At exec() time, the OS
            will decide to install the patches in the .text
            section, dependent upon the R4000 version, and the
            setting of a kernel variable r4k_div_patch.

               o To instruct the kernel to test for, and possibly
                 perform patching, set the kernel variable
                 r4k_div_patch to value 1.  To disable patching,
                 set it to value 0.  This is performed with
                 systune:

                 su
                 systune -i
                 r4k_div_patch   # 0 means no patch, 1 means test for patch
                 r4k_div_patch 1 # set it to 0 or 1
                 (reboot as it instructs)

               o The r4kpp utility is used as follows:

                 r4kpp, with no options, reports occurrences of
                 problem divides in delay slots.  Each such case
                 causes a line to be output, for example,

                 PROBLEM: adr=0x00469658 br/div=0x156d0034 result=0x00469658 (PATCHABLE PROBLEM)

                 r4kpp, when invoked with -repair, generates a
                 patch table and attaches it to the end of the
                 .init section.  The .text section remains
                 unchanged.  The kernel applies the patch when the
                 program is being loaded, at exec() time.  The
                 column called "patched", in the row called
                 "br/div", shows the number of patches performed.
                 It must match the number in the column called
                 "problems".  You can see the results with this
                 command:

                 odump -s -n .init file

                 If a previous patch exists, r4kpp will not patch
                 anything unless the -force option is specified.
                 The previous patch is always removed before a new
                 patch is generated.  Therefore, an old patch may
                 be removed by running r4kpp with -noidiv and
                 -force.

                 A permanent patch may be obtained by using the
                 -perm option.  In that case, the patch is applied











                                  - 18 -



                 to the .text section directly and permanently.
                 This avoids the kernel overhead at runtime, but
                 the change cannot be reversed.

                 Note that r4kpp scans and patches only COFF files.

                 --------- example --------

                 r4kpp ~/bin/*          # scan for problems
                 r4kpp -repair ~/bin/*  # generate patches

                 --------- man page -------
                 r4kpp  [-idiv] [-repair] [-report] [-summary] [-perm] [-force] files

                 -idiv        Search for idiv in branch delay slot problems.
                 -report      Print info on each file that has problems.
                 -repairidiv  Generate a patch table in .init section for the br/idiv
                              problem.
                              This _NEVER_ modifies code in the text section!
                              If a patch table exists, then no change is made.
                 -repair      A shortcut for -repairidiv.
                 -perm        Applies the patches generated by -repair to the
                              executable.  If -repair is set, new patches are calculated
                              If -norepair is set, then ignore.  The change is permanent
                              and cannot be undo by subsequent r4kpp runs.
                 -summary     Prints statistics of the search.
                 -force       Clean out old repair code from .init section,
                              and generates new patch code for the idiv problems.

                 In addition all options have a -no version.

                 The default is -idiv, -norepair, -report, -noforce, -summary.

       3.5.2  Challenge/Onyx_Platform_Support

          o IRIX 5.2 expands support for Challenge/Onyx L/XL
            multiprocessor systems.  Supported hardware
            configurations include:

               - 1 to 36 processors, and up to 2 gigabytes (2048
                 megabytes) of physical memory.

               - 1 to 4 IO4 boards.

               - Built-in hardware interfaces in each IO4: ethernet
                 (ethernet(7)), 3 RS-232 serial ports (duart(7),
                 serial(7)), and 1 parallel port (plp(7)).  Built-
                 in hardware interfaces in expansion IO4s: ethernet
                 (ethernet(7)).  Serial ports and the parallel port
                 in expansion IO4s are not yet supported in IRIX
                 5.2.











                                  - 19 -



               - 1 to 8 SCSI buses in each IO4 board.

               - Up to 5 VME buses supporting the following VME
                 devices: 4 CDSIO 6-port serial boards (cdsio(7)),
                 4 EFast Ethernet expansion interfaces (fxp(7)), 4
                 FDDI boards (ipg(7)), and 6 Jaguar boards
                 supporting 2 SCSI buses each (jag(7)).

          o The software license serial number on Challenge/Onyx
            L/XL systems has a binary compatibility problem for
            4.0.5 binary programs.  Programs normally retrieve a
            32bit unique identifier using either sysid(3C), or
            sysinfo(SI_HW_SERIAL), or sysinfo() -s.  The problem
            occurs because 4.0.5 binary programs have compiled into
            them the library function which computes the 32 bit
            value with a hash function, and this hash function
            requires an update for Challenge/Onyx.  Once a program
            is re-compiled under 5.x, it uses the updated library
            function.

            The 5.x sysinfo -s 32 bit unique identifier is indeed
            unique across all SGI platforms.  However the 4.0.5
            program will calculate a value which is different than
            5.x, and is not always unique.

            To aid in software licensing for 4.0.5 programs, an
            option is added to sysinfo(1), the -o argument, which
            calculates the 4.0.5 32 bit identifier.

          o Configuring IO4 Serial and Ethernet ports

            Serial and ethernet ports present in IO4 are configured
            using VECTOR lines in the irix.sm file.  These lines
            specify mapping between the logical unit number of the
            device and the actual hardware.  The default system
            configuration has VECTOR lines that map serial and
            ethernet ports on Master IO4 to be ttyd1-4 and et0.
            Each additional IO4 requires two VECTOR lines, one each
            for the serial and ethernet ports.  In case of serial
            ports, the device name is dependent on the unit now
            associated with the VECTOR line.  For ethernet though,
            the device name is et{unit_no}.  Sample VECTOR lines
            that can be used to configure serial and ethernet ports
            on the additional IO4 boards in the system are provided
            in irix.sm. Refer to the manual pages ethernet(7) and
            serial(7) for further details.

          o The kernel will panic at boot time if all CPUs do not
            have the same secondary cache size.  This configuration
            error is shown with the message:












                                  - 20 -



            CPU n scache size 0x.... different from bootmaster size 0x...

          o VME bus write errors can now be caught by a user
            process.  See usrvme(7).























































 



                                  - 1 -



       4.  Bug_Fixes

       A number of bugs were fixed when newer versions of software
       from the USL SVR4.1 source release were integrated into
       IRIX4 to form IRIX5.  In addition, numerous fixes have been
       made to commands and to the kernel in this latest IRIX 5.2
       release to resolve problems encountered in earlier IRIX5
       releases.

       This section highlights many of these bug fixes.

          o The sccs front end could core dump with certain
            command/flag combinations; this has been fixed.

          o The echo command now outputs the 8-bit character for
            all octal numbers between 0 and 255.

          o The routed daemon now gets correct host routes from
            /etc/gateways.

          o The Mail command is now more tolerant of mail with
            incorrect timestamps, although these are in violation
            of RFC 822.

          o The Mail command no longer prints an incorrect line
            count for mail messages that have more than 32 K lines.

          o The cp command now supports the -p flag, which
            preserves the modification time and access permissions.

          o The ln command semantics is now SVID-compliant,
            although this makes it incompatible with previous IRIX
            releases.  Specifically,

            ln -s foo bar

            previously replaced an existing bar with a symbolic
            link to foo, whereas the IRIX 5.2 command will
            terminate with the error

            Cannot create bar: File exists

            To arbitrarily overwrite an existing bar you must use
            the -f flag, as in

            ln -sf foo bar

          o Programs such as who and finger no longer report users
            who are no longer logged in.













                                  - 2 -



          o Various problems have been fixed with user accounting,
            and commands like w(1) and last(1) now correctly
            identify the current and previous user logins,
            respectively, and the originating system name of those
            logins.

          o The -h flag of the mount command now works with
            filesystems flagged as noauto in the fstab file.

          o The diskusg command in the accounting subsystem no
            longer skips commented out lines in the fstab file.

          o Various commands of the quotas subsystem used the
            superuser's umask when rewriting the mtab file, which
            can render incorrect permissions on this file.  This
            has been fixed.

          o csh and tcsh shell limits (e.g., for cpu time and
            memory space) were broken for earlier releases of
            IRIX5.  These shell limits now work correctly.

          o Double buffering in an overlay window of a GLXDraw
            widget now works. The only constraints are that the
            overlay GL window must have a main framebuffer GL
            window associated with it.  For example:

            GLXconfig rgb_ov[] = {
                  { GLX_NORMAL,   GLX_RGB,        TRUE} ,
                  { GLX_OVERLAY,  GLX_BUFSIZE,    4} ,
                  { GLX_OVERLAY,  GLX_DOUBLE,     TRUE} ,
                  { 0,            0,              0}
            };

            The overlay GL window will be clipped to the main
            framebuffer GL window's extents.

          o New RealityEngine features are now supported by
            gldebug: constants for texdef2d and glcompat, and
            support for texdef3d.

          o Gldebug no longer requires the DISPLAY environment
            variable to be set.

          o Graphics programs using the Distributed Graphics
            Library (DGL) no longer have errors when mixing
            connection types (DGLLOCAL vs. DGLTSOCKET).

          o Calls to lrectwrite with the pixmode PM_STRIDE
            parameter set with more than 511 lines caused a kernel
            panic.  This has been fixed.












                                  - 3 -



          o The ARCS PROM now handles different screen resolutions.

          o Overlay planes now work in mixed-model, double-buffered
            applications.

          o The GL routine afunction now works on RealityEngine
            systems.

          o The behavior of swapbuffers could be unpredictable with
            lots of calls to winset and drawmode(OVERDRAW).

          o Several problems related to lighting when using
            shademodel(FLAT) or two-sided lighting have been fixed.

          o A memory leak in the IrisGL Font Manager (FM) has been
            fixed.

            The IrisGL FM could not read fonts for some non-default
            locales. That problem was fixed.

            The IrisGL FM now displays text correctly in stereo
            mode.

            A division by 0 was eliminated, so that it does not
            affect those programs which monitor for divisions by 0.

            The function fmprstr now calls the function
            blendfunction only when it draws anti-aliased text.

            The character advance widths in Haeberli, Iris, and
            Screen fonts were fixed.  All characters in a
            monospaced font must have the same advance width.

            The values the font management function fmgetfontinfo
            returns when a font is rotated and scaled have been
            fixed.

            The include file fmclient.h was modified to comply with
            ANSI and POSIX standards.

            Those fonts, which were created because the page
            transformation matrix was changed, were not cached.
            Now they are cached.  That has improved the performance
            of some application programs.

          o The graphics hang after 20 logins on Indigo2 has been
            fixed.

          o The Iris Elan family now supports GLV_SRED, GLV_SGREEN,
            GLV_SBLUE, and GLV_GENLOCK flags for setvideo and
            getvideo.  The Indigo2 XZ and Extreme systems also











                                  - 4 -



            support the GLV_GREENGENLOCK flag and the -s 
            and -G options for the setmon command.

          o The Iris Elan family supports framelock to non-
            interlaced or interlaced input signal with the -F 
            option in setmon.

          o The IRIX kernel receive 1 panic has been fixed.

          o The IRIX kernel 'Timeout table overflow' panic on
            Indigo2 has been fixed.

          o Challenge/Onyx L/XL systems prior to IRIX 5.2 had a
            problem with a bogus time-of-day warning whenever the
            system was rebooted during the month of December, and
            the date was automatically reset backwards by 11
            months.  This has been fixed.










































 



                                  - 1 -



       5.  Known_Problems_and_Workarounds

       This chapter discusses known problems in IRIX 5.2 and ways
       to work around them.

          o With the exception of the Challenge/Onyx machines, most
            SGI machines do not keep track of time reliably under
            IRIX 5 releases. This problem can be corrected by
            running a network time synchronization program like
            timed(1M).  For machine that is not connected to the
            network, one can adjust the clock crystal frequency by
            changing the value of timetrim.  This can be
            accomplished by using systune(1M). In the 5.2 release,
            the most that timetrim can be adjusted is 40 msec/sec.
            However, timed(1M) and timeslave(1M) do not accept such
            large time trimming and will reject all time trimming
            values outside of the range +/- 333 usec/sec.  Large
            time trimming therefore is intended for stand alone
            systems only.

          o Challenge/Onyx serial ports (/dev/tty?1, tty?2, tty?3)
            are subject to dropped characters due to kernel
            interrupt latency problems.  SLIP and uucp might not
            run well.

          o The Indy ISDN port is not supported in the 5.2 release.

          o There are two known bugs in the select(2) system call
            when used on a file descriptor for a FIFO (named pipe).
            The bugs occur in the case that a process has opened a
            FIFO for reading and is using select to wait for read
            data to arrive.  If another process writes to the FIFO
            and then closes it, the select(2) system call
            malfunctions in two ways:  1) the call returns bits set
            in the write and exception masks even if the selecting
            process has not requested notification of write or
            exception status and 2) if the reading process calls
            select again on the same file descriptor, the call will
            return immediately with the write and exception bits
            set for that descriptor.  The only way for the reader
            to clear this error condition is to close and then
            reopen the FIFO.  (Bug number 202859).

          o On all systems, if the GL library (/usr/lib/libgl.so)
            is linked into the application, and the application is
            run with the DISPLAY pointing to a non-GL capable
            device, you get a dgl failure whether or not you made
            actual calls into the GL library.  You can work around
            this in one of two easy ways:













                                  - 2 -



              1.  Set your DISPLAY environment variable to a GL-
                  capable system.

              2.  Set an environment variable called
                  __SGI_NO_REMOTE_GL before executing the program.
                  This prevents you from rendering remotely should
                  you try to do so.  The DISPLAY environment
                  variable is always interpreted as rendering to
                  local host.

          o Xwsh(1) has become locale-sensitive.  An immediate
            effect of this is that it has become picky about font
            encoding.  Xwsh accepts only fonts that are encoded in
            the encoding required by the locale.  A limitation in
            5.0.1 and later releases forces Xwsh to require ISO
            8859-1 fonts in the C locale, even though the C locale
            is an ASCII locale.  This will be fixed in a future
            release.  Also, SGI will attempt to port supported
            ASCII fonts to 8859-1 where permissions allow.

          o If UniPress Emacs stops working when you upgrade an SGI
            machine that runs an early version of IRIX4 to IRIX 5.0
            or higher, you need to get the latest version of Emacs
            for your type of SGI machine that was released by SGI
            for IRIX 4.0.5, or a new version of Emacs from UniPress
            that runs under IRIX 5.0 and higher.  If you install a
            version of Emacs from 4.0.5, please make sure that you
            first install the base version of Emacs (emacs.*), and
            then install the maintenance subsystems for Emacs
            (maint_emacs.*).

          o Note that the object file format has changed from COFF
            to ELF.  In general, IRIX has never supported executing
            on older operating systems any programs created on
            newer releases.  Because of the COFF to ELF format
            change, an IRIX 4.0.5 or earlier system does not even
            recognize an IRIX5 ELF file as an executable.  The
            system attempts to interpret it as a shell script,
            resulting in a message such as:

             ./filename: syntax error at line 1: `(' unexpected

          o Conformance Tests Issues

            A number of conformance tests fail in minor ways.  None
            of these failures is considered pervasive or has a
            major impact on the performance of IRIX 5.0.1 and later
            releases.  All failures have either written or verbal
            waivers from the specific test suites' controlling
            agency.












                                  - 3 -



               - POSIX 1990 - NIST-PCTS:151-1 Version 1.1, FIXES
                 Patch 05/21/92: 4.0.5 backwards compatibility:

                 sym_const 010, 019  The tests expect to be POSIX
                                     1988 rather than POSIX 1990.
                                     This is a test error.

                 uname 004           The test fails comparing
                                     return values from uname(2)
                                     and /bin/uname.  In IRIX4
                                     compatibility mode, the struct
                                     returned from uname(2) has
                                     fixed-length strings of 8
                                     characters.  System names
                                     longer than 8 characters
                                     miscompare.

                 lseek 014           ``An invalid file offset that
                                     would cause [EINVAL] to be
                                     returned may be both
                                     implementation defined and
                                     device dependent.'' B.6.5.3

                 cuserid 012, 013    Acknowledged errors in the
                                     tests.

               - POSIX 1990 - NIST-PCTS:151-1 Version 1.1, FIXES
                 Patch 05/21/92

                 sym_const 007       The test expects to be POSIX
                                     1988 rather than POSIX 1990.
                                     This is a test error.

                 cuserid 012, 013    Acknowledged errors in the
                                     tests.

                 lseek 014           ``An invalid file offset that
                                     would cause [EINVAL] to be
                                     returned may be both
                                     implementation defined and
                                     device dependent.'' B.6.5.3

               - VSX 3.205

                 There are nine Permanent Waivers and one Waiver
                 Pending for VSX. Permanent Waivers are granted for
                 tests found to have flaws.  These tests are:















                                  - 4 -



                 ANSI.os/time/ctime 11
                 ANSI.os/time/localtime 11
                 ANSI.os/time/mktime 18
                 ANSI.os/time/strftime 5
                 POSIX.hdr/misc/unistd_1 7
                 POSIX.os/Csupport/tzset 1
                 POSIX.os/devclass/i_close 1
                 POSIX.os/files/getcwd 2
                 POSIX.os/procprim/sigconcept 37 - Pending
                 XOPEN.os/procenv/chroot 4

               - PVTS (SONY beta) - ABI binaries running on IRIX5

               - UVS4

                 Eight tests get segmentation faults when NULL
                 arguments are passed to library routines.  These
                 are acknowledged test errors.  The tests are:

                 BA_LIB/Vgetsubop01.c
                 BA_LIB/Vgetsubop08.c
                 BA_LIB/catclose01.c
                 BA_LIB/getopt01.c
                 BA_OS/Vstime01.c
                 BA_OS/pclose01.c
                 BA_OS/popen01.c
                 BA_OS/telldir01.c

               - AU_CMD/news1.c - Test obsoleted.

               - BU_CMD/tail01.c - Failure due to acknowledged
                 errors in the test.

               - BA_LIB/strtod05.c and BA_LIB/strtod06.c - Failures
                 due to acknowledged errors in the tests.

               - CMD/whatis1.c - This test requires that
                 /usr/lib/whatis exist; on IRIX, it does not.
                 (SVR4/BSD Compatibility Guide)

          o Sites that have the optional IRIS Networker 1.1 backup
            and restore utility do not need to upgrade their
            product to run under IRIX 5.0.1 or later.  Networker
            continues to run correctly except for one limitation.
            Not all of the special files, block, and character
            devices residing in the directory /dev can be backed
            up.  This is caused by an incompatibility in the dev_t
            data type between IRIX 5.0.1 (or later) and IRIX4.
            This is not really a serious problem because these
            files can be re-created by running MAKEDEV(1M) or by
            reinstalling the system software with inst(1M).











                                  - 5 -



          o The package tools (pkgadd, pkgrm, and so on) have some
            unresolved symbols.  Before using the package tools,
            the environment variable _RLD_ARGS must be set to
            -ignore_unresolved.

          o ipfilterd(1M) may cause the system to panic.  The use
            of ipfilterd is not recommended or supported in this
            release.

          o Known problems with the OpenGL implementation include:

               - Textures loaded using glPixelMap might be
                 corrupted when enough textures are loaded to cause
                 kernel management of texture memory.  Corruption
                 should occur only if the glPixelMap has changed or
                 has been disabled since the original load.

               - Textures loaded in immediate mode might be
                 corrupted when enough textures are loaded to cause
                 kernel management of texture memory.  One easy
                 workaround is to always put texture commands into
                 display lists.

               - glGetTexImage is not functional.

               - The border parameter for the glTexImage1D and
                 glTexImage2D calls is ignored and assumed to be
                 zero.

               - The GL_COLOR_INDEX option for the format option
                 for the glTexImage1D and glTexImage2D is not
                 functional.

               - This implementation is not ``tuned.''  Many
                 performance improvements are anticipated,
                 particularly in display lists and in OpenGL calls
                 that are limited by the transfer of data and
                 commands from the CPU to the graphics system.

               - This implementation is not thoroughly tested.
                 Normally, IRIS GL implementations are tested with
                 a combination of regression tests, demos, and
                 applications.  For OpenGL, the regression test
                 suite is not complete, there are very few demos
                 available, and there are no real applications.

               - No extensions to the OpenGL have been implemented.

               - If nfs.sw.dskless_client is accidentally installed
                 and then subsequently removed from a disk-full
                 machine, re-install eoe1.sw.unix.











                                  - 6 -



          o Limitations of IRIX Support of SyQuest disk drives
            include:

               - IRIX support for SyQuest disks is limited to 45MB
                 and  88MB 5.25" media and 105MB 3.5" media
                 containing HFS (Macintosh) file systems.  Only the
                 first partition of a partitioned volume may be
                 accessed.

               - SyQuest drives are accessed by the HFS file system
                 through the floppy driver.  Regardless of media
                 dimensions, SyQuest media is accessed as 3.5"
                 media using /dev/rdsk/fds?d?.3.5*.

               - The desktop software treats a SyQuest disk as a
                 floptical disk.

               - During media loading, some SyQuest drives do not
                 respond to SCSI inquiries.  This results in
                 messages on the console or in SYSLOG of the form
                 "fds?d? error: inquiry cmd failed".  These
                 messages may generally be ignored.

               - The mkfp and fpck programs do not work properly
                 with SyQuest drives.  These programs believe that
                 the SyQuest drive is a floptical disk and
                 initialize and check only the first 20.9MB of the
                 media.

               - SyQuest media cannot be formatted using the
                 desktop format function.




























 



                                  - 1 -



       6.  Documentation_Errors

       There are no known documentation errors at this time.
























































 



                                  - 1 -



       1.  Challenge/Onyx_IO4_PROM

       This chapter contains information about the Challenge/Onyx
       IO4 PROM (Programmable Read-Only Memory) Monitor.  While in
       most cases the Challenge/Onyx PROM is similar to the PROMs
       discussed in the user's manuals, it contains a new graphical
       user interface and contains a number of new hardware
       configuration features. And while most of these same
       operations may be applied on other SGI systems, notably the
       Indy and Indigo2, please refer to the prom(1M) manual page
       for a complete description of all of the common commands and
       environment variables.

       1.1  The_PROM_Graphical_User_Interface

       In an attempt to improve the look and feel of the PROM user
       interface, the IO4 PROM presents you with a graphical
       interface on Onyx systems when the console environment
       variable is set to ``g''.  In all cases you can use the
       keyboard instead of the mouse, and in most cases the
       keystrokes required to perform a particular task are
       identical.

       For example, the main five-item panel displayed when the
       system first starts up is identical to the five-item menu
       found on previous systems.  To make a selection, you either
       click any mouse button on one of the five buttons on the
       left, or you press the corresponding number key.  The top
       item (``Start System'') is option number 1, and the last
       item (``Enter Command Monitor'') is option number 5.

       1.2  Challenge/Onyx_Hardware_Configuration_Commands

       The IO4 PROM provides a number of commands that that you to
       examine and modify the hardware configuration of your
       system.

       1.2.1  Checking_and_Updating_the_Hardware_Inventory  When
       the system first starts up, the IO4 PROM automatically
       examines all of the boards in the system to determine
       whether any components have failed.  During this process,
       the IO4 PROM reads a copy of the hardware inventory out of
       nonvolatile memory and compares the system's current
       configuration with the last known inventory.  If it finds a
       discrepancy, the PROM prints a warning message.  When errors
       are found, the PROM automatically pauses before continuing
       so that the administrator has a chance to examine the error
       notices.  The following example shows the output of the
       inventory checker if it notices that one of the processors
       on an IP19 is missing.












                                  - 2 -



       Checking inventory...
       ***     Slice 1 on the IP19 in slot 2 isn't visible
       Press  to continue

       If system uptime is critical (if, for example, your system
       is a central server) and operators aren't available around
       the clock, you might not want the PROM to wait for operator
       intervention when the hardware inventory checker notices a
       problem.  To force the system to continue booting in the
       face of non-fatal failures, set the nonstop environment
       variable to ``1'' (see Section A.3, ``Environment
       Variables'').

       The hardware inventory routines are incapable of
       differentiating between hardware that has been physically
       removed from a system and hardware that is so broken that it
       doesn't appear to be present.  For this reason, if you
       change the configuration of your Challenge/Onyx system, you
       must explicitly update the system's hardware inventory.  To
       do this, first enter the PROM monitor by selecting the
       ``Enter Command Monitor'' option from the PROM menu.  When
       the command monitor displays its prompt (``>>''), type
       update, then press the  key.  This tells the PROM
       that the system's current configuration is correct and
       prevents it from complaining in the future.  Next, type
       reset and press the  key to reset your system.

       If you see error messages when no hardware modifications
       have occurred, a component in your system might have failed.
       Call your service provider.  In this situation, the hardware
       inventory information might provide valuable insight into
       the nature of the problem.  For this reason, do not update
       the hardware inventory until a field service engineer first
       examines the system.

       1.2.2  Displaying_Current_Hardware_Configuration  To display
       a list of boards installed in a Challenge or Onyx system,
       using the command monitor (with prompt ">>"), type hinv -b.
       The -b option forces hinv to display bus-specific
       information.  The -v switch, when used with the -b switch,
       causes hinv to display more detailed information about
       boards.  For example, typing:

       hinv -b -v

       displays the configuration of all the processors, memory
       banks, and IO adapters in the system.

       1.2.3  POD_Mode  In the unlikely event of an extreme
       hardware failure, the system might drop into a low-level
       diagnostic environment known as POD (Power-On Diagnostics)











                                  - 3 -



       mode.  POD mode helps in system diagnosis and is not
       intended for use by customers.  Entering POD mode is usually
       a sign of severe hardware problems; consult a service
       provider.

       1.3  Environment_Variables

       This section describes special procedures to customize
       certain aspects of the PROM Monitor.  Many aspects of the
       system startup process can be customized by changing PROM
       environment variables.  Some of these PROM environment
       variables are stored in nonvolatile memory, which retains
       its value after the system is powered off.  Some common
       customizations are described in the sections below.  More
       information is provided in the prom(1M) manual page.

       Environment variables can be changed with the setenv command
       in the PROM Command Monitor.  To get to the PROM Command
       Monitor, first choose ``Stop for System Maintenance'' when
       the system is starting in order to get to the System
       Maintenance Menu, then choose ``Enter Command Monitor'' by
       either clicking on it with the mouse or pressing 5.

       1.3.1  Selecting_the_Console_Device  Servers and
       workstations can be configured to use a terminal connected
       to serial port #1 as their console.  If a system has a
       graphics board, the PROM Monitor uses it as the console if
       the console environment variable is set to ``g''; if
       graphics aren't installed or the console variable is set to
       ``d'', the system uses the serial port as the system
       console.

       To force the console to be the serial port, set the console
       variable to ``d'' using the setenv command:

       setenv console d

       To change the console back to the graphics screen, set the
       console variable to ``g'':

       setenv console g

       Typing init reinitializes the system and forces it to switch
       to the selected console device.

       1.3.2  Booting_from_an_Alternate_Disk  There are three
       environment variables in the PROM for specifying the device
       to boot from.  The SystemPartition variable specifies the
       location of the device volume header.  Its default value is
       ``dksc(0,1,8),'' which specifies SCSI controller 0, disk 1,
       partition 8.  The OSLoadPartition variable specifies the











                                  - 4 -



       device from which the IRIX kernel should be loaded.  The
       default value for the OSLoadPartition variable is
       ``dksc(0,1,0),'' which tells the PROM to look for the kernel
       in partition 0 on disk 1 of SCSI controller 0.  By
       convention, the volume header is always partition 8 on a
       disk, and the kernel is always located in partition 0.

       The root variable is the third variable that needs to be
       changed when selecting a different boot device.  The root
       variable tells IRIX the name of the device that holds the
       root filesystem.  Because it is used by IRIX rather than the
       PROM, its format is different from that of the
       OSLoadPartition and SystemPartition variables.  The default
       value of root is ``dks0d1s0,'' which specifies that the root
       filesystem is stored on partition 0 of disk 1 on SCSI
       controller 0.

       To boot from disk number two on controller 0, type:

       setenv SystemPartition dksc(0,2,8)
       setenv OSLoadPartition dksc(0,2,0)
       setenv root dks0d2s0

       To boot from disk number one on controller 1, type:

       setenv SystemPartition dksc(1,1,8)
       setenv OSLoadPartition dksc(1,1,0)
       setenv root dks1d1s0

       Finally, to boot from disk number 3 on controller 2, type:

       setenv SystemPartition dksc(2,3,8)
       setenv OSLoadPartition dksc(2,3,0)
       setenv root dks2d3s0


       1.3.3  Starting_the_System_Automatically  By default, the
       PROM starts the operating system after waiting a brief
       period of time each time the system is powered on.  If you
       do not click on the ``Stop for System Maintenance'' button,
       or press the  key, the system attempts to start the
       operating system by loading it into memory and executing it.
       The environment variable autoload can be set to ``yes'' to
       enable this feature, or to ``no'' (the default) to inhibit
       it.  If automatic startup is disabled, the PROM displays the
       System Maintenance Menu after running power-on diagnostics.

       1.3.4  Booting_with_Non-Terminal_Hardware_Failures  By
       default, the PROM stops and prints a warning message if it
       discovers that a component has failed in some manner.  In
       many cases, however, the failure of a single processor or











                                  - 5 -



       bank of memory isn't enough to keep the system from coming
       up.  If your Challenge/Onyx system is configured with eight
       processors, losing one of them is non-fatal.  To prevent
       such non-fatal hardware problems from stopping the system in
       the PROM, you can set the nonstop variable to 1:

       setenv nonstop 1

       To ensure that the system displays a notification message in
       the event of any hardware failures, set nonstop to 0:

       setenv nonstop 0

       1.3.5  Rebooting_immediately_after_crashes  Normally, the
       system will pause waiting for user intervention after a
       system crash.  In environments which demand high
       availability such a pause may be undesireable.  To force the
       system to reboot immediately after a panic, set the rebound
       environment variable to ``y'' using the PROM's setenv
       command:

       setenv rebound y

       To return to the default behavior of waiting for user
       intervention, set rebound to 'n'.

       1.3.6  Restoring_Defaults  The PROM environment variables
       can be reset to their factory defaults by issuing the
       resetenv command from the PROM Command Monitor.  Because
       resetenv also resets the netaddr environment variable, you
       may wish to note the system's IP address before using this
       command.

       1.4  Known_Bugs

       The following list details all known IO4 PROM bugs at the
       time of release.  Because the IO4 PROM is software-writable,
       these bugs will be fixed by PROM updates in future releases
       of the operating system.

       1.4.0.1  The_GUI_handles_unexpected_warning_messages_poorly
       If an unexpected warning or status message is printed, the
       graphical user interface switches over to a text port to
       display the message.  The PROM continues to execute, but
       additional information is displayed textually rather than
       graphically.  This bug is usually seen if an informational
       message is displayed while the miniroot is being loaded
       during the installation process.














                                  - 6 -



       1.5  Bugs_fixed_in_this_release

       1.5.0.1  The serial number number is no longer overwritten
       (Incident #185240)  Previous versions of the IO4 PROM
       suffered from a bug in which the serial number would
       periodically be erased.  This has been fixed.

       1.5.0.2  NVRAM checksums are now calculated in a more robust
       manner (Incident #185870)  The original version of the NVRAM
       checksum routine always produced the same checksum value.  A
       new checksum algorithm which doesn't suffer from this
       problem has been implemented.

       1.5.0.3  PROM_SCSI_driver_handles_SCSI_timeouts_better.  The
       newest version of the IO4 PROM driver incorporates a new
       version of the SCSI driver which behaves much better in the
       face of SCSI bus errors.