5 Known Problems and Workarounds
- 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.