Frequently Asked Questions for:
AIX V2.2.1 on IBM RT systems.
System Software topics for AIX/RT.

This is a reworked and HTMLized version of Mark Whetzel's (MW) RT pages, as of Mon Jul 4 19:32:01 CDT 1994.
The original can be found at part1, part2, part3, -MK

S.01 What is AIX?

The operating system is called AIX, for Advanced Interactive Executive, and is based on the UNIX system V operating system. During AIX development, enhancements were added by IBM and by INTERACTIVE System Corporation under contract to IBM. These enhancements were made to improve the AIX Operating System's functions and ease-of-use, merge in selected facilities of BSD 4.2, (and later some BSD 4.3), and to take advantage of the RT PC technology.

The enhancements consist of functions exclusive to IBM and the RT PC, along with functions from several versions of UNIX, including BSD and Interactive Systems. For example, the AIX Operating System includes a C compiler, Asynchronous Terminal Emulation, and the INed full-screen editor.

AIX for the IBM RT 6150 and 6151 machines has been discontinued by IBM. Formal support of AIX V2 by IBM ended on June 1, 1991. Sales of 6150 and 6151 machines also ended on that date, replaced by the IBM Risc/System 6000 line of workstations.

Features of the AIX/RT operating system:

Portions of the above were quoted from IBM RT Personal Computer General Information book, Second Edition (July 1987) GC23-0783-1.

S.02 What is VRM?

Unlike many operating systems derived from UNIX, AIX V2 is divided into two layers: the kernel, and the Virtual Resource Manager (VRM). The kernel is the core of the operating system; it implements the AIX file system, user process management, system call interface, and other UNIX-like features. The VRM provides a virtual machine environment for the kernel, shielding it from specific hardware characteristics and from changes or additions to the hardware. The VRM also allows more than one operating system (and their applications) to execute. To a guest operating system, the VRM is percieved as hardware. The interface between the VRM and the AIX kernel is known as the Virtual Machine Interface (VMI).

VRM is conceptually similar to the control program for the IBM Virtual Machine/System Product on machines with an IBM System/370 architecture, except that while the VM/370 control program emulates the System/370 hardware architecture, the VRM emulates a hypothetical machine with powerful features that are not usually implemented in hardware. VRM however, lacks major features of an operating system, such as a file system and a user interface; these services are provided by the AIX kernel. The VRM processes, device drivers and runtime routines extend and control hardware functions for guest operating systems.

Portions of the above were quoted from IBM RT Personal Computer General Information book, Second Edition (July 1987) GC23-0783-1.

VRM it seems, was not written in standard C. Some books seem to indicate that it is written in PL8. Possibly a derivation of PL/1 or an IBM internal language called PL/S. Portions of the MVS operating system are written in PL/S. I don't have good conformation of the exact details of VRM, nor good documentation of some of the interfaces, other than in the VRM Device Support and VRM Programming reference manuals.

Anybody know more details of VRM? How it came about? Design? - MW

S.03 The RT will not boot from floppy, but does boot from the internal hard disks, why?

(Includes VRM unique keyboard sequences.)
As shipped by IBM, the only diskettes that are bootable are: The AIX Install/maintenance diskette while it appears bootable is in fact not directly bootable. VRM is the OS that actually owns the machine during normal operation when using AIX, and when 'booting' the AIX Install/Maintenance diskette, you are still booting VRM from the internal hard disks. VRM examines the floppy drive to determine if a runable guest system image and boot record is on the diskette in the drive. The AIX Install/Maintenance diskette has very special version of the AIX kernel on it, and THAT is being loaded from the floppy. This special AIX diskette includes a kernel built that requires no external hard disks (except that containing VRM), and places all of it's filesystems in RAM with a special device driver in this kernel on diskette that allows RAM simulation of disk filesystems.

Sometimes, either by accident, or overt action, the Non-Volitale Random Access Memory (NVRAM) has been altered to not allow the floppy drive to be used as a boot device.

The NVRAM, in the RT planar, maintains, along with the time of day clock setting, various system parameters, AND a list of last and currently selected boot devices. This list may be updated at any time by some special key sequences entered ONLY from the native keyboard. The VRM software that controls the RT hardware silently accepts these special keystroke patterns and may update NVRAM or alter system operation. The NVRAM contents and clock are maintained while the system is powered off by the battery attached to the operator key panel.

By referencing the chart below, you can reset the available boot device list from one of the hard drives back to the floppy drive. These keyboard sequences are directly captured as long as VRM is running. You do NOT have to be logged in to AIX to change the settings. VRM will silently update the NVRAM as specified by the chart below.

   Key-Sequence		Function
   Alt-Action          Change active display screen to
                       next virtual terminal (if any).
   Ctrl-Action         Change active display to command
                       virtual terminal (if defined).
   Shift-Action        Change active display screen to
                       previous virtual terminal (if any).
   Ctrl-Alt-a          Select diskette 0 as alternate IPL device.
   Ctrl-Alt-b          Select diskette 1 as alternate IPL device.
   Ctrl-Alt-c          Select fixed disk 0 as alternate IPL device.
   Ctrl-Alt-d          Select fixed disk 1 as alternate IPL device.
   Ctrl-Alt-e          Select fixed disk 2 as alternate IPL device.
   Ctrl-Alt-Delete     Restart the co-processor.
   Ctrl-Alt-Action     Exit the co-processor.
   Ctrl-Alt-Home       Restart a virtual machine
   Ctrl-Alt-End        Dump first virtual machine data.
   Ctrl-Alt-NumPad 4   Activate the VRM debugger.
   Ctrl-Alt-NumPad 7   Dump all of memory to diskette.
   Ctrl-Alt-NumPad 8   Dump VRM data to diskette.
   Ctrl-Alt-NumPad 6   Hard IPL the entire system.
   Ctrl-Alt-Pause      Soft IPL the entire system.

Submitter: James Moody <>
Date: 13 Mar 90 17:59:30 GMT

Your machine is experiencing the "can't boot from diskette" bug.

The first thing to try is this: Boot the machine. Hit the key sequence ctrl-alt-a (all 3 keys at once).
[ BTW.. this is the LEFT alt key - MW ]

Shutdown and try booting from diskette.

If that doesn't work, here is the failsafe approach. Boot the machine. Hit ctrl-alt-numpad4 (only works if you have some display connected to the RT that is NOT the megapel).
[ VRM debugger wont work on the megapel -MW ]

You are now in the VRM debugger. At the prompt, do the following:

   >al F0008828 F0 [enter]
   >g [enter]
You should be back in AIX now. Shutdown and reboot from diskette.

If that fails (because I said something wrong here or you don't understand what I'm talking about), power off the machine and take of the front cover. Disconnect the battery back. Leave disconnected for 5 minutes or so and then reconnect. I think this is messy but it also works.

[ Note:
You will also have to reset the TOD clock. It will now be January 1, 1970 and on Eastern Standard time. I recommend you attempt first booting the VRM disk and use the menu items to correct the system clock before doing a normal boot of the installed AIX. - MW ]

Submitter: Nick Simicich
Date: 13 Mar 90 02:09:19 GMT

Power off the system, open the covers, and disconnect the battery. Let it stay disconnected for about 15 minutes with the power off. Reconnect the battery and power up the machine. It should boot from the floppy. Replacing the motherboard works, too. :-)

While you're in the system, make sure that the floppy drive is connected to the controller, and that all of the connections are good. Wiggle them a bit.

The RT thinks you've told it not to boot from the floppy with a keyboard sequence. Or, the floppy is broken. If the battery trick doesn't work, call your CE.)

[ See the above note about the clock! - MW ]

S.04 What operating systems are available for the RT?

At the time of this posting, the following operating systems have been available for the RT processor. Availablility of these systems is unknown and unfortunately problematic.
 This section needs more work! - MW 

S.05 Where can I get a copy of AIX for the RT?

At this time, IBM no longer directly sells AIX V2.

However, some IBM remarketers MAY still have original distribution sets still in inventory. (doubtful!)

If you aquire an RT system, inquire about the software and books for the system. This is the only way you can currently get a licensed copy of AIX [ that I know of ] -MW. Most licensed software that IBM distributed for the RT is no longer carried by IBM. Some OEM vendors of software may still stock and sell their products that were made for the RT, but there is no list of available software that I am aware of.

I'm going to maintain a separate section for this! See section S.21 for OEM software. - MW

S.06 Where are the man pages?

IBM never supplied the man command and the source for the man pages directly WITH the AIX distribution.

They WERE available as a separate PRPQ (Program Request Price Quote) software product, for purchase for a small fee mostly covering the distribution and media. The set of nroff files on two hi-density diskettes, covered most of the base commands, some system files and common special files. Sadly missing were the TCP/IP command set and information dealing with quite a few of the TCP and NFS daemons.

RPQ: P91026 Program number: 5799-DAQ AIX/RT on line pubs

S.07 Contents of the AIX V2.2.1 distribution diskettes.

Shown in this list is the number of disks comprising a full distribution set of AIX V2.2.1. In parenthesis is the product abbreviation directory name, as seen in the /usr/lpp file tree. A few example commands and files are listed, plus a comment [ by myself -MW ] (indicated by '>') on files and programs that seem badly placed in the distribution, or missing.

There are 36 total 1.2MB format diskettes shipped for AIX 2.2.1. The # column indicates number of disks in that option group.

	#   Title and contents
	-   -------------------------------
	2   VRM install/utility disks
            * VRM install program, utility programs for formatting disks,
              and other special functions.

	1   Installation/Maintenance
            * AIX Mini-kernel, install facilities, standalone backup 
              programs, minidisk utilities, and more.

	8   Base System Program (opsys)
	    * base system files, including:
	      - shells: sh, csh, tsh, Rsh. [ tsh = trusted bourne shell ]
	      - C compiler, cpp, ld, make, ar, nm.
	      - cpio, backup, restore.
	      - initial /usr, /etc, /bin, /dev population.	
	      - awk, sed.
	      - dosdir, dosread, doswrite, dosdel.

	6   Extended Services Program  (osplus)
	    * Administrative support (admn)
	      - tar, prof, tic, terminfo support, etc.. 
	      > badly placed: tar, tic, chroot, proto, prof,
	        and the /usr/lib/terminfo/* files. (These should have been
                in the base set, IMHO.)
	    * DOS services (doss)
	      - special commands to emulate a dos envrionment from the
		unix command line.  With the command 'dos',
 		a special version of format, dir, mkdir, etc..
	      - dos to unix conversion utilities. convert, filetype, etc..
	    * Extended Programming Support (extp)
	      - adb, cflow, cxref, dbx, dump, lex, yacc, etc..
	      > badly placed: banner, bc, cal, calendar, dc, tput, tail.
	    * Source Code Control System (sccs)
	      - sccs support functions.
	      > missing the 'sccs' command shell.
	    * Text processing/typesetting functions. (text)
	      - nroff, troff, spell
	    * UUCP support (bnuu)
	      - uucp, uucico, cu, ct, etc..
	    * vi editor (vied)
	      - vi, ctags, edit, expreserve, exrecover.
	    * Games (game)
	      - usual character based simple games, including 'fortune'.
	    * Sendmail (send)
	      - sendmail binary, mailstats, etc..
	      > Based on sendmail V5.??  (pre-1988 version)
	    * MH Message Handler (mhmh)
	      - MH mail handling system and commands.
	      > version ??.?? of MH.

	3   Multi-User Services Program (multiple)
	    * Accounting Support (act)
	      - commands and scripts for system process accounting.
	    * System Activity recording (sar)
	      - sar, sag
	      > badly placed: timex.     
	    * Inter-Workstation Commands (iwc)
	      - confer, id, mesg.
	    * Terminal Support (trm)
	      - commands used with some special ASCII graphics displays
		like Tektronix 4014 terminals.
	      - tprint, graph, greek, tplot, tc, hp.
	      - support libraries libplot.a, libprint.a lib4014.a, etc..
	    * Advanced Display Graphics Support (gsl)
              - Graphics routines for progamming the various HFT displays
                on the RT, including the 6153, 6154, 6155 and megapel.
	      - Required prereq for installing IBM's X11 product.
	    * Graphics Device Drivers (vdi????)
	      - device drivers for IBM RT professional Graphics Series LPP
		also useful for Graphics Support Library subroutines.
	      - vdi drivers for IBM devices: 3812, 4201, 5152, 5182, 6180,
		7371, 7372, 7375, ega, and vdimeta-file format.
	    * Graphics and Statistics commands (graf)
	      - commands used with some special ASCII graphics displays
		like Tektronix 4014 terminals.
	      - The /usr/bin/graf directory including, 
		hardcopy, ceil, pie, plot, qsort, rand, erase, etc..
	    * HFT Examples Programs (hft)
	      - /usr/lib/samples/hft
	      - /usr/lib/vtm fonts for hft displays.

	2   Virtual Resource Manager Device Driver (vtmdd)
	    - separate components of these diskettes are installable
              by group of related drivers, or by individual driver.
	      Listed below by group, with selections in that group:
	    * RT 3278/79 Emulation Adapter
		- 3278/79 DFT VRM Device Driver (dft)
		- 3270 AIX Device Driver (3270dd)
	    * RT baseband Adapter
		- Baseband VRM Device Driver [Ethernet] (enet)
		- Standard Baseband Data Link Control [DLC] (ethllc)
		- Block I/O AIX Device Driver (biodd)
	    * RT Multiprotocol Adapter
		- MPDP VRM Device Driver plus microcode (mpdp)
		- SDLC DLC (sdlcllc)
		- 3270 AIX Device Driver (3270dd)
	    * RT SCSI Adapter
		- SCSI VRM Device Driver (scsi)
	    * RT Token-Ring Adapter 
		- Token-Ring VRM Device Driver (token)
		- Token-Ring Diagnostics (trd)
		- Token-Ring DLC (trllc)
		- Block I/O AIX Device Driver (biodd)
Installable only from the individual device driver menu - IEEE Baseband DLC: 802.2 DLC with 802.3 medium access control protocol procedures (eth3llc) 3 Interface Program for use with TCP/IP (tcpip) - includes arp,finger,host,ping,rexec,rlogin,telnet,tftp,rwho, whois,setclock,lprbe,talk,netstat,route,rcp,hostid,slattach. - daemons: inetd,gated,routed,ftpd,tftpd,rwhod,fingerd,lpd,named. > badly placed: hostname,portmap,rpcinfo,x25load. 1 INED program (INed) - "e" editor command, and associated control files. 1 Asyncronous Terminal Emulation Program (ate) - ate, xmodem. 1 Base PC Network Services Program (lanserv) - IBM PC original PC Network BROADBAND adapter network support. (NOT required to be installed for Ethernet adapter use) 2 Usability Services Program (panels) - the /usr/lib/screen directory tree of panels. > badly placed: shmsystem - the shared memory segment manager! actmngr - hft activity manager - invokes a bourne shell. 3 Systems Network Architecture Services (snaserv) - SNA protocol support, LU services VRM driver. - multi-protocol adapter SNA support. 1 DOS Server program (pci) - support of the ADDU licensed program product, extending disk and terminal support to PC users. > badly placed: aix2dos, dos2aix NL to CR-NL and CR-NL to NL text conversion utilities! 2 Update - Initial update fixes to distributed AIX 2.2.1. - MUST be installed after ALL optional AIX sections have been installed and BEFORE *ANY* other updates.

S.08 Maintenance? What updates are available for AIX?

IBM official support of AIX V2.2.1 ended on June 1, 1991.

They however always have had service available on a fee and time basis. Some academic institutions still have IBM service contracts in effect, and some support may be available via the SE in charge of the account.

After maintaining the AIX/RT systems for many years for the place where I work, and doing a little cross referencing and homework I have managaged to put together a comprehensive list of the maintance diskette history of AIX/RT for the V2.2.1 versions of AIX. -MW

Some parts of AIX history is unclear, especially in its first few updates that were issued. Support by IBMs level1 support center was VERY spotty at first, especially as IBM was firming up its support policies for AIX.

Update disks were issued in two major catagories. The 17## series disks were generated by the support structure of IBM and were only sent out to customers calling in with specific problem areas needing immediate problem relief. The 17## updates were supposed to be not completely regression tested aginst all products. The 27## updates were supposed to be completely tested. Later in the AIX/RT product lifetime, the 17## disk became the ONLY update disks issued.

Updates, even when official were never automatically shipped to customers. Only if they called with a problem were any updates sent out. The earlier version of AIX V2 (2.1.x) used 15## and 16## numbered series update disks.

Unfortunately, different product development groups within IBM did not coordinate the update numbers with each other, so some products have the SAME update number, but cover ONLY its product area. Other products use their own unique numbering scheme.

All update disks are supposed to include ALL prior earlier Maintenance, completely superceeding all prior Maintenance. This policy however was later changed towards the end of the AIX support cycle. Disks labeled "-- NEW BASELINE --" were the final disk sets with complete prior updates on them, subsequent update disks start over on update building and require the baseline set be installed first.

Each disk set is one PTF (Program Temporary Fix) and include one or more APAR (?) fixes. PTFs for AIX are always numbered U###### and AIX APARs are numbered IX######.

Some fields are incomplete. Anybody with one of the updates listed that have some fields with question marks, I need more information and/or corrections would be welcomed. - MW

Personal experience with another RT user trying to update his system from the INITIAL distribution disks, shows that the update process is BROKEN.. UNLESS the initial two disk update that is supplied with the system is installed first, BEFORE any other attempted Maintenance. That update disk pair shows up in the opsys Maintenance history as 1721. Do not confuse this with the X-windows or TCP/IP updates also labeled 1721.

Notes for the following chart: PE PTF in Error - one or more fixes on this disk have some problem, not necessarly critical, but with hi-impact on system operation and potentially could be critical. EFIX Disk was only sent to a customer if a problem being worked on with the support center was fixed a an intermediate level and needed immediate solution. The fix set normally was not considered a full PTF package, nor completely tested. APAR ? sup Superceedes the ptf's specified. pre Prerequesite PTF's listed need to be installed first. coreq PTF's listed must be installed at the same time.

MPP Multi-Program Product - mostly the OPSYS, plus fixes to selected base and elective install parts. VRM Fixes for the Virtual Resource Manager, usually installed by IPL from diskette, and replace the entire VRM. TCPIP Diskettes are for the TCP/IP part of AIX. DOSV DOS services part of base AIX. SNA SNA services part of base AIX.

Xwin Diskettes are for the AIX Windows optional product. NFS11 Diskettes are fixes for the NFS 1.1 optional product. NFS12 Diskettes are fixes for the NFS 1.2 optional product. DS Diskettes are fixes for Distributed Services optional product. WHIP11 Workstation Host Interface Program V1.1 optional product. VSP VS Pascal optional product. VSF VS Fortran optional product. VSC VS Cobol optional product. PHGS Personal GraPHIGS optional product. COPRC RT PC-AT Coprocessor Services.

Within each product area the list is ordered in the sequence of release by IBM for that portion of the operating system.

Volid	PTF#	Prod	Date		#disk	Prereq/Coreq/Notes
1706	?	Inst	?		?	UNKNOWN WHAT THIS IS

Volid	PTF#	Prod	Date		#disk	Prereq/Coreq/Notes
OPSYS/MPP		Component 560106103

1721	N/A	MPP	??/??/88	2	Shipped with the AIX 
						distribution set.. *MUST*
						be installed.

2701	N/A	MPP	12/16/88	3	PartNum 002701[1-3]

1725	N/A	MPP	02/09/89	2	EFIX

1733	N/A	MPP	03/30/89	5	EFIX

2702	U400722	MPP	03/30/89	?	?

1734	N/A	MPP	04/05/89	5	EFIX

1735	N/A	MPP	04/06/89	5	EFIX

1736	N/A	MPP	04/26/89	5	EFIX

1739	N/A	MPP	05/11/89	3	EFIX

1740	N/A	MPP	05/11/89	7	EFIX

2703	U400727		06/22/89	10	sup(2701, U400722)
2703-D	U400762	MPP	08/08/89		doc only for(U400722,U400727)

1742	?	MPP	06/15/89?	?	EFIX  BAD  csh problems

1743	?	MPP	06/??/89?	?	EFIX

1745	?	MPP	06/??/89?  	?	EFIX BAD tty devices problems

2704	U400751	MPP	08/02/89	12	sup(U400722,U400727,U400762)
	U400755					doc only for(U400751)

1749	?	MPP	08/??/89	?	EFIX  BAD breaks tty xon/xoff

1750	?	MPP	08/??/89	?	EFIX 

1751	U400770		08/30/89	?	BUILT BAD..

1757	U400857	MPP	12/01/89	9	coreq(U400849,U400843)

2705	U400876	MPP	12/21/89	?	sup(U400751,U400727,U400722)
						New INSTALL/MAINT diskette
	U400893					doc only dup(U400876)

2706	U400991	MPP	03/28/90	15	sup(U400876,U400751,U400727)
				(included new Inst/Maint diskette)

1763	U??????	MPP	??/??/??	?	EFIX PE 

1764	U??????	MPP	?		?	EFIX PE

1765	U401041	MPP	05/04/90	?	EFIX PE 

1766	U401075	MPP	06/06/90	10	EFIX PE coreq(U401043,U401039)

1769	?	MPP	?		?	EFIX


1772	U401227 MPP	11/05/90	12	sup(U401139,U401041,U400991,
						    U400876,U400751 U400727)

1773	U401293	MPP	01/21/91	12	BAD-BAD-BAD-BAD 
                                                DO NOT INSTALL!
						fix set was created incorrectly
						breaks NFS among other things.

1773	U401374	MPP	05/16/91	12	-- NEW BASELINE --
						    U401041,U401075 U401227,

1774	U401356	MPP	05/16/91	3	label says volid=1772

1777	?	MPP	?		?	EFIX

1779	U401382	MPP	05/31/91	4	sup(U401356)

Volid	PTF#	Prod	Date		#disk	Prereq/Coreq/Notes
X-Windows 2.1

1714	N/A	Xwin	04/17/89	2

1721	N/A	Xwin	

1723	U400749	Xwin	07/28/89	3	coreq(U400751)
 (This update and ALL later X11 updates takes AIXwindows to X11R3 for AIX/RT)

1726	U400769	Xwin	09/18/90	3	coreq(U400751)

1732	U400843	Xwin	12/01/89	3	coreq(U400751)

1733	U400889	Xwin	01/02/90	3	coreq(U400876)

1736	U400947	Xwin	03/21/90	3	PE coreq(U400876)
1737	U401123	Xwin	07/18/90	4	PE coreq(U400991) BAD-BAD

1738	U401307	Xwin	02/14/91	4	

1739	U401386	Xwin	06/12/91	?

Volid	PTF#	Prod	Date		#disk	Prereq/Coreq/Notes
VRM 2.2			Component 560106203

1702	?	VRM	?		?	EFIX

1705	?	VRM	05/11/89	2	EFIX

1706	?	VRM	08/18/89?		EFIX

1707	?	VRM	08/18/89?		EFIX

2707 	U400754	VRM	08/08/89	2	PE coreq(U400751) BAD!
						wont IPL if disk errors

2710	U400828	VRM	11/07/89	2	sup(U00754) 
						same as 1707 disks

1710	?	VRM	?		2	EFIX coreq(MPP1757)

1711	?	VRM	10/20/89	2	EFIX

1712	U401046	VRM	05/15/90	2	sup(U400754,U400828)
1714	U401284	VRM	02/14/91	2	sup(U400828)
        (corrects random floating point machine checks)

Volid	PTF#	Prod	Date		#disk	Prereq/Coreq/Notes
TCP/IP			Component 560106103

1707	?	TCPIP	02/09/89	1	EFIX

1713	?	TCPIP	?		?	EFIX
1716	?	TCPIP	?		?	EFIX
1718	?	TCPIP	?		?	EFIX PE
1719	N/A	TCPIP	06/??/89	?	EFIX PE
1720	?	TCPIP	?		?	EFIX PE
1721	?	TCPIP	?		?	EFIX
1722	?	TCPIP	?		?	EFIX
1724	?	TCPIP	?		?	EFIX PE (ftp is busted)
1728	?	TCPIP	10/24/89	?	EFIX PE	
1730	?	TCPIP	09/21/89 	2	EFIX PE	
1731	?	TCPIP	10/08/89	2	EFIX 	
1733	U401072	TCPIP	05/22/90	PE	coreq(U401043,U401041)

1734	U401168 TCPIP	08/14/90	2	sup(U401072)
	U401195					dup(401168)

1736	U401278	TCPIP	01/18/91	2	-- NEW BASELINE --

1741	?	TCPIP	?		?	EFIX PE

1742	U401385	TCPIP				pre(U401278)

Volid	PTF#	Prod	Date		#disk	Prereq/Coreq/Notes
NFS V1.1		Component 560115901

1110	U400764	NFS11	09/01/89	1

1112	U400865	NFS11	12/01/89	1	sup(U400764)

1113	U400890	NFS11	01/02/90	1	sup(U400865,U400864)

1115	U400983	NFS11	04/12/90	1	sup(U400890,U400865)

1116	U401043	NFS11	05/07/90	1	sup(U400893,U400890,U400865,
	U401052					dup(U401043)
	U401104					dup(U401043)
	U401132					dup(U401043)
	U401139					dup(U401043)

Volid	PTF#	Prod	Date		#disk	Prereq/Coreq/Notes
NFS V1.2		Component 560115901

1201	U401169	NFS12	10/12/90	2	coreq(U401041,U401075)
1202	N/A	NFS12	02/14/91 ?	?	EFIX
1203	N/A	NFS12	06/05/91 ?	?	EFIX
1204	U401387	NFS12	05/31/91	2	sup(U401169)

even though 1204 came out BEFORE 1203, the 1204 fix disk indiates that the apars fixed on 1203 are in 1204. Volid PTF# Prod Date #disk Prereq/Coreq/Notes ============================================================================== DOS server (PCI) Component 560115701 1703 ? DOSV ? ? 1706 U401044 DOSV 05/07/90 1 sup(U400984,U400842) coreq(U400991) pre(AIX2.2.1,NEW-DOSSERV) 1709 U401383 DOSV 05/31/91 1 ============================================================================== SNA Services Component 5601061?? 1708 ? SNA ? ? 1711 ? SNA ? ? 1712 ? SNA ? ? 1713 ? SNA ? ? 1714 ? SNA ? ? 1719 U401137 SNA 07/31/90 ? PE pre(U401139) 1720 U401218 SNA ? 3 1722 U401388 SNA ? 3 Last issued update Volid PTF# Prod Date #disk Prereq/Coreq/Notes ============================================================================== Dist Serv 1.2.1 Component 560106103 1706 U400763 DS 09/01/89 ? pre(U400727,U400751) 1708 ? DS ? ? coreq(U400770) 1709 U400849 DS 12/01/89 ? sup(U400763) 1715 ? DS ? ? 2701 U400877 DS 12/27/89 ? sup(U400849,U400863) pre(U400876) U400920 doc only dup(U400877) U400952 doc only dup(U400877) U401001 doc only dup(U400877) U401001 doc only dup(U400877) U401036 doc only dup(U400877) U401039 Note:
Do not confuse this 2701 distributed services disks with the 2701 updates for the base operating system. Volid PTF# Prod Date #disk Prereq/Coreq/Notes ============================================================================== Workstation Host Interface Program - V1.1 1204 U400759 WHIP11 09/01/89 1 pre(U400727) 1207 U401110 WHIP11 ? ? Volid PTF# Prod Date #disk Prereq/Coreq/Notes ============================================================================== PC Simulator 1.1.1 1210 ? PCSim ? ? 1213 U400389 PCSim 11/20/87 1 ============================================================================== Asyncronous Terminal Emulation (ATE) 1707 U401048 ATE 05/07/90 1 pre(U401041) Volid PTF# Prod Date #disk Prereq/Coreq/Notes ============================================================================== RT PC AT Coprocessor services V1.1 2206 ? COPRC ? ? ? 2207 ? COPRC ? ? ? 2209 U400??? COPRC ?/?/87 1 ? Volid PTF# Prod Date #disk Prereq/Coreq/Notes ============================================================================== Fortran 77 V1.1.1 1214 ? F77 ? ? ? 1239 ? F77 ? ? ? 1241 U401216 F77 ? 1 1245 U401390 F77 05/31/91 1 Last issued update Volid PTF# Prod Date #disk Prereq/Coreq/Notes ============================================================================== VS Fortran V1.0 F18 ? VSF ? ? F20B ? VSF ? ? F26 ? VSF ? ? F40 ? VSF 09/08/89 3 0G37 U401231 VSF ? 2 0H12 U401363 VSF 05/16/91 2 Last update issued ============================================================================== XL Fortran Note:
There IS an XLFortran for the RT, but it was not widely distributed. I have been unable to determine if any updates were ever issued for the product. It was issued as a migration aid for customers to move to the AIX V3 and RS6000 systems that had been recently announced. RPQ P10095 Program Number 5799-??? ============================================================================== VS Pascal H012 U401384 VSP ? ? ? ============================================================================== VS Cobol 1.1.0 1113 U? VSC ? ? ? 1119 U401047 VSC ? ? ? ============================================================================== Personal graPHIGS V3.? Note:
The update numbering scheme for graPHIGS was unlike that of ANY other RT product. I have yet to fill in this section and understand how they were issued. [Anybody a graPHIGS expert/user? - MW] ? U? ==============================================================================

S.09 How to install updates to AIX.

Most of the install of updates MUST be done with no users logged in to the machine, and most of the system daemons shutdown. Login as root, get any users to logoff, and issue the killall command to kill all running processes and daemons. Issue the pdisable -a command to disable any tty ports and psudeo terminals to prohibit more logins while the update process is in progress.

With cron disabled, there is no automatic periodic sync of filesystems. If possible, ensure that you issue a sync command beteeen updates and at convient intervals to help with disk and filesystem integrity.

Updates are installed using the updatep command. It has several arguments, the most common are:

   -a # apply any updates on the install media.
   -c # commit any currently installed updates.
   -d # specifies the device or file name for updates, 
      # usually /dev/fd0 (the default).
   -s # Display pending commit update status information
   -A # Display a listing of all installed updates and APAR 
      # history for all products, 
      # or named product section if an argument follows the -A flag.

Personally I like to install the update in one pass updatep -a, test out the system, then later, commit the update updatep -c. Using this procedure for installing updates has the added bonus, in that if an update fails to install, it will be automatically backed out, and the system restored to it's original state, rather than leaving the system in a possibly broken state with only part of the update installed. - MW

It *IS* possible for the update to be only partially installed, especially when an out of disk space, or other catastrophic failure occurs during the update. (The worst is a power failure while install processing is in progress!) Make sure you have a good backup of any user data or any needed system files PRIOR to starting ANY system update.

One thing I have done is to save a copy of the current update status before starting, and obtain one after the update, and run a diff the files. This way I can get a list of what has changed by the updates. This command is like this:

   updatep -A >/someplace/b4.up####

When installing updates, the update process first saves a backup copy of ALL files to be replaced and selected for install. For proper update there must be enough space in the /usr filesystem in the /usr/lpp directory tree to hold a backup copy of all updated files, and changed library routines. Some updates rebuild the kernel, and you must have at least enough free space in the root filesystem to hold at least two times the size of a standard /unix kernel file. Extra copies of the kernel can be found in the root filesystem named:

With YY the last two digits of the year, and DDD the julian day of the update that created this copy of the old kernel. These can be safely removed after the update that changed the kernel has been committed.

As always, the more free space in /usr and in /tmp, the safer the install will be.

Using the updatep -a the system will read the diskette#1 disk and will prompt you with a series of questions making sure you wish to proceed, and also to display the update disk product area and copyright information.

For updates with a single product, the updatep program will now proceed to read the update media, and replace or change the necessary files. For MPP or base-OS updates, a menu will be displayed with a numbered list of product updates found on the media that are also currently installed on the system. There will be two columns listed:

Some updates, like X11, have several sections. These will also be displayed with a numbered list, and the last number to do all updates at once.

Some base-OS product updates require a kernel rebuild. By avoiding those products first, and installing the others in groups, you can shorten the amount of time required to update a system. Updates that change the kernel, after being installed, cause the system to automatically shutdown and reboot, which means that you have to login again, killall, pdisable, and then when ready, commit the update.

Changes or installation of these products or updates will force a kernel rebuild:

Additional updates are not allowed to be installed until any prior update has been committed.

If you are using diskettes as your update source, during the update process, follow all prompts very carefully for when to insert a different disk. Due to the structure of the update disks, if more than one section on the left side is selected, the update process will ask, and re-ask (and RE-ask) for the disks. The pattern of disks is something like this:

1  1  1,2  1,2,3  1,2,3,4  1,2,3,4,5  1,2,3,4,5,6 .. etc...
Some of the update disks replace the restore and backup commands. This is true of the 1773 update, and others. When starting the OS base opsys updates on those disks, updatep will read about to disk 11 and restore only those 2 files... *THEN* it will actually come back and re-ask for disk number 1, and then start the rest of the update of the system. Follow the prompts very carefully and there will not be a problem.

DO NOT use installp with update disks, and vice versa. You can seriously damage the system.

S.10 Can I install updates from other than floppies?

Yes. Using the bffcreate command you can make a file of the contents of any of the update disks in a suitable format for installing directly by specifiying the resulting disk file as the install device, instead of /dev/rfd0, the default for the updatep command.

To create the disk file you must have enough /tmp space to hold the entire contents of the update disk set TWICE. If your /tmp area is too small, you can point the work area for bffcreate to a different place using the -w flag.

   bffcreate -v -w/otherfs

The -w flag MUST have no space following the w or the specified work area will be ignored.

The resulting file will ONLY be placed in the following directories:

If your /usr area is too small to receive the updates you can make another filesystem named /usr/lpp.update or /usr/lpp.install and overmount it, or create soft links to other directories in a larger filesystem. The bffcreate program has no way of changing the output directory file location.

S.11 Brief overview of the AIX/RT install process.

This section may need more work. Any other ideas/changes? - MW

S.12 Compiler usage questions?

The AIX V2 system is at heart, a system V release 2 base, with BSD 4.2 and some BSD 4.3 extensions mixed in, it also has some IBM extensions and facilities by Interactive Systems, mixed in as well. The standard C compiler is mostly K&R compliant with additional compiler flags to support BSD portablity. There is *SOME* ANSI compliance in the include libraries, but it is far from complete. No ANSI prototyping is supported by the standard compiler.

The compiler shipped with AIX has its own standard setup, with flags to make the include files SYSV compliant, and BSD compliant.
SYSV way:

   cc  -O -o <foo>  foo.c # and other flags.
#  or
   cc -DSYSV and/or -DUSG  -O -o <foo> foo.c # and other flags.
The supplied header files for AIX/RT do not test for the SYSV or USG define, but a lot of public code does. X11R5 has a -DUSGISH for a merged type system like AIX/RT.
BSD compatibility flags:
      -O -o <foo>  foo.c -lbsd
There is another BSD flag: -DBSD_COMPILE_ONLY This flag will cause additional defines and includes that may produce a correct compile, but most likely will NOT execute correctly, due to possibly incorrect interface defines, or use AIX/RT unsupported system functions.

The following discusses some of the other non-standard and special compiler flags.

Programs that have large static arrays and large structures may need the -a flag. Using this flag will reserve an extra register for addressing, thereby reducing the optimization capabilities of the compiler.

X11 programs, and other large macro heavy and/or lots of functions sources, and those with lots of external references may need one or more of these flags to increase the internal tables of the compiler:

   -Nn#### # symbol table, default size 1500.
   -Nd#### # dimension table, default size 2000.
   -Np#### # constant pool, default size 600.
   -Nt#### # parse tree, default size 1000.
For programs that are heavy on floating point code may be GREATLY assisted by the following compile time flags:
   -f  # Generates code that will use 
       # either the standard Floating-Point accelerator (FPA), 
       # or the Advanced FPA. 
       # The binaries created with this flag will NOT run without at least one of the FPA's installed.
       # Automatically includes the libfm.a math library.
   -f2 # Generates inline code to use 
       # ONLY the Advanced Floating-Point Accelerator and Advanced processor card.
       # Automatically includes the libfm.a math library.
   -z  # Use the libm.a version of the following transcendental functions,
       # instead of calls to the AIX kernel, or AFPA:
       # acos(), asin(), atan(), atan2(), cos(), exp(), log(), log10(), sin(), sqrt(), tan().
The inline compiler flag -Q may speed up execution time at the expense of increased module size:
   -Q!           # Automatic inlining.
   -Q?           # Show reason in output file for no inlining.
   -Q-name,name2 # Do not inline 'name'.
   -Q+name,name2 # Force inline of 'name'.
   -Q|num        # Limit size of function to inline, default size is 100 operations. 
   -Q#num        # Limits the expansion of an individual call to num intermediate operators. Defaults to 100.
   -Q-@file      # Reads list of forbidden functions from 'file'.
   -Q+@file      # Reads list of requested functions from 'file'.

Requesting a function for inlining overrides the the size constraints.

Rounding mode for floating-point constant folding:
   -yd # Disables floating-point constant folding.
   -ym # Rounds towards negative infinity.
   -yn # Rounds to nearest whole number.
       # This is the default action when the -y flags is specified without an argument.
       # The specified rounding applies to constant folding in all applicable passes of the compiler.
   -yp # Rounds towards positive infinity.
   -yz # Rounds towards zero.
Programs requiring curses and/or termcap emulation need to add the -lcurses flag to their link step.

Due to the work of several people the GCC compiler has finally been ported to AIX/RT. See section P.02 for porting notes for the compiler, and information on using that compiler.

S.13 How to manage serial ports.

Printer/plotter serial devices are automatically defined with port and speed parameters when adding that device type under the printers menu. For more information about adding printers see sections H.14 and S.28. The following is for terminal, modem and other serial device types.

The devices command is used to add, change and delete serial port settings, and how the getty will operate with that serial port.
The devices command will automatically detect any attached serial port hardware and present them in the Following adapters are available menu.

         ..Following adapters available menu displayed 
           new panel comes up showing terminal type
Most serial ports will need other information such as speed, parity, and stop bit settings, but this first panel presented does not have them. Fill in the displayed settings with your requirements as show on this menu. Some common options:
   ae   = true (meaning enable always, more on this later).
   davm = 1  (1=modem, 0=direct attached)
   tt   = to any string matching /usr/lib/terminfo available terminal 
          type most likely to call your system.
          If unknown, set it to 'dumb'.
The critical part of this panel is the ae option. Set it to true (meaning 'enable') for a dial-in only port. A getty task will be started continually waiting for logins. When ae is set to share or delay the getty operation is altered for bi-directional (call-in and call-out), operation. By using delay this will setup the getty to run similar what other UNIX systems call a uugetty. With ae set to false no getty will be started for this serial port, and it may be used directly by application programs for I/O purposes. Application programs or system functions (cu, ate, uucico, etc..) may use the serial port without at anytime.

Press enter to bring up a yes/no question about changing more options.. enter 'yes'.

A larger panel will appear allowing you to choose the baud rate, and other serial settings, such as stop bits, xon/xoff and other common selections for serial ports. Some common options for attaching a modem:

   bpc  =  bits per character
   rts  =  speed of the port
   sns  =  false  (switched or dial-in port)
   aa   =  true   (auto answer)
   pt   =  parity type (odd,even,none,mark,space)
   nosb =  number of stop bits.
Default any options you don't clearly understand.

The devices command will change the system so that the getty for the port will be started each time the system is booted. To change the status of the getty while booted and only for the current life of this IPL, use the pstart, pdisable, penable or pdelay commands to change the port status to the desired state. Issuing the pstart command with no options will display all current tty port status.

A few notes on the pro (protocol) parameter on the devices menu.
Protocol has three diffent settings:
   cdstl  = Connect Data Set To Line.
          [ I have not figured out what this one does - MW ]
   dc     = Direct Connect = CTS lead examined for pacing 
          (on the RT native port, Pin #8).
   dtr    = Data Termnal Ready = DTR lead examined for pacing
          (on the RT native port, Pin #2).
Depending on the cable attached, the pro keyword can have a radically different meaning. For the modem cable, and to use 'hardware' handskake instead of xon/xoff set the protocol to dc and ixp to false on the devices port panel. That cable has the CTS lead conneted to the CTS pin on the 25 pin modem side of the cable. This will utilize RTS/CTS pacing.

When using the serial printer cable, the CTS pin on the RT side is connected to DTR on the printer. Some printers use the DTR lead to control hardware pacing, and if so, you should have pro = dc for this to work correctly, instead of pro = dtr.
[Confusing, yes? - MW]

Unique to AIX/RT is the /etc/ports file. Entries in this file control various aspects of serial ports. This file is a stanza format file. There is one stanza for each device port, and two special stanzas default containing defaults for all ports, and console meaning the system HFT console. The file has the following format:

          option = value
The following options can be of assistance with UUCP setup: Here is an example Telebit trailblazer T1600 setup that seems to work with the RT UUCP, using hardware flow control.

Submitter: herb@ajfcal.UUCP
Date: 21 May 91 13:40:50 GMT

[ initial netnews discussion on UUCP troubles deleted - MW ]
Sounds like you're having flow control problems... I just overcame the same thing when I upgraded the OS on my RT.. (CorrSrvc 1773). I just couldn't get hardware flow control working to save my life but this weekend I sat down for a couple of hours and got it working with my "DCA Fastlink" (Trailblazer Clone).

In devices, I have:

   pro dc
   ixp false
   dvam 0       [ I think he would have less trouble with dvam=1 - MW ]
   sns false
   aa false
and in the telebit, I have:
   E0 F1 M0 Q1 T V1 X3     Version AA3.00-AB3.00
   S00=001 S01=000 S02=043 S03=013 S04=010 S05=008 S06=002 S07=060 S08=002
   S09=006 S10=007 S11=070 S12=050 
   S45=000 S47=004 S48=001 S49=000
   S50=000 S51=005 S52=002 S53=001 S54=003 S55=003 S56=017 S57=019 S58=002
   S59=000 S60=000 S61=099 S62=003 S63=001 S64=000 S65=000 S66=001 S67=000
   S68=002 S90=000 S91=000 S92=000 S95=000 
   S100=000 S101=000 S102=000 S104=000 
   S110=255 S111=255 S112=001 
Other Pertinent information: 6150-25, IBM 4 port async, and standard IBM Modem cable.
There's still a problem with Carrier Detect and getty... It seemed to a choice between having hardware flow control or having getty work right... But if you're using it to dial out only, then you shouldn't have to worry about that...

S.14 How to add user accounts to AIX V2.

Also covers the various /etc/security stanza file contents.

To create or update a group or a user, you must have superuser authority. Use the users or adduser command. Example:

   # users
   > a g groupname          add a group
   > c g groupname          change a group
   > a u username           add a user
   > c u username           change a user
   > ?                      help
   > q                      quit
The AIX/RT system uses a secondary security system similar to some systems with a shadow password file. The /etc/passwd file and /etc/group files do not contain the actual password. Instead an explanation mark (!) is used as a place holder indicating that the password is located in the /etc/security directory in the file of the same name.

At some update levels of AIX/RT, the sysck command, called by the adduser command can cause password file corruption if any of the files have been edited by hand. The sysck comand is supposed to verify that the date/time stamps on othe /etc/passwd and /etc/security/passwd files match and that the internal stanzas are matching between the various files in the /etc/security directory. The sysck command attempts to modify the /etc/security/passwd file to correct any tampering. This modification can cause corruption of the /etc/security stanzas which can make your system unable to be logged into. Systems earlier than 2704 do not have the problem, and systems with 2706 on or later do not have the problem.

An AIX/RT password entry can have the following parts:

   george:!:200:1:User George/600000;description:/u/george:/bin/sh
   ^      ^ ^   ^ ^           ^      ^            ^        ^
   A      B C   D E           F      G            H        I
         A - Username
         B - Password place holder.  An asterix (*) will make the password
             invalid.  If null, no password is assigned, but the sysck
             program will not allow this.  See the /etc/security/passwd
             file description for more information.
         C - User id number. Numbers below 100 are reserved for system use.
             User account numbers below 20 are privlidged users, and are
             allowed logins at any time regardless of system load, maxusers,
             or other system restrictions.
         D - Group number.
         E - Name field
         F - Optional ulimit size (update level 2704 or greater) 
             from the 'filesize' adduser field.
             Maximum user file size in 512 byte blocks.  If this field is
             omitted, the preceeding slash (/) must be omitted.
         G - Siteinfo field contents. 
             A colon in this field is NOT allowed.
             If this field is omitted, the preceeding semicolon (;) must also be omitted.
         H - Home directory.  As installed AIX defaults the home directory
             to the /u filesystem.  Any valid filesystem may be used for
             home directories.
         I - Initial program to execute.  Maximum size 4096 characters and
             14 parameters.
The /etc/security directory contains several stanza files that further control the user login process.
   audit       - directory containing audit subsystem control files.
   config      - stanza file to control login operations.
   group       - current shadow group file.
   ogroup      - backup copy of shadow group file created by 
                 the adduser command before the last change.
   grpchk      - executable program to verify group file.
   passwd      - current shadow password file. 
   opasswd     - backup copy of shadow passwd file created by
                 the adduser command before the last change.
   pwdchk      - executable program to verify password file.
   sysck.cfg   - configuration file for the sysck command.
The /etc/security/passwd file is a stanza form file with one stanza for each user. An example is like this:
      password = *
      restrictions = nologin

       password = xxyy123456789
       lastupdate = 733115124
Valid stanza fields are:
   password=      The users encrypted password.  If field is missing or
                  NULL, the account has no password.

   lastupdate=    The date on which the user last changed the password.
                  The value is expressed as the number of seconds since
                  the epoch (Jan 1, 1970).
                  If password ageing is in use,
                  setting this field to zero forces 
                  a password change immediately on next user login.

   restrictions=  The restrictions stanza controls how the account will
                  be handled.  One benefit of account control allows you
                  to leave the password unchanged for an account, yet
                  still prohibit its use.  Valid values are:

                  nologin - Disallow login processing for this account
                            (telnet and rlogin will not work).
                            An illegal password entry of '*' also makes
                            it impossible to login.  However, remote
                            shell 'rsh' is still allowed and 'su - userid'
                            is still allowed.
                  nouse   - Account is completely disabled.
                            All login and use of the account is blocked,
                            including 'su' and cron.
                  nopw    - account is exempt from password ageing.
                  notsh   - Trusted shell use is not allowed.

                  These may be combined such as "nologin,nopw".

   auditclasses=  This entry is used with the audit subsystem, and
                  is the initial audit class for this user.  The 'audit'
                  command updates this field.
The /etc/security/config file is a stanza form file with one stanza for different elements of AIX/RT security.

One of the config stanzas control password usage and aging.

           	maxage = 0
           	minage = 0
           	minalpha = 0
           	minother = 0
           	mindiff = 0
           	maxrepeat = 8

       Valid config entry 'password' stanza fields are:
       maxage=      Maximum age in weeks of a valid password.
       minage=      mininum age in weeks, before a change of a password
                    is allowed.
                    password CANNOT be changed
                    until minage is reached if it is non-zero.
       minalpha=    Minimum number of alphabetic characters in a password.
       minother=    Maximum number of numeric or special characters in password.
       mindiff=     Minimum number of characters to be different from the
                    old password.
       maxrepeat=   Maximum number of identical consecutive characters to
                    allow in a valid password.

S.15 6157 1/4" tape drive special file names.

Due to the hardware design of the standard 6157 tape adapter, only one adapter can been installed in one RT system. However.. that one drive has 4 different device names:
   /dev/rmt0	normal tape device name, rewind on close.
   /dev/rmt4	NO rewind on close.
   /dev/rmt8	retension tape on open and rewind on close.
   /dev/rmt12	retension tape on open, NO rewind on close.

If the NO rewind device name is used with read, after an open completes, AND an application starts reading, the tape will be positioned to the EOT side of the next filemark by close processing.

S.16 UUCP setup and management.

The AIX/RT system uses the HoneyDanBer variation of UUCP, or BNU (Basic Networking Utility) as the facility is called. IBM has made very little change of the BNU facility, however, the way that AIX/RT controls serial ports requires a few changes.

The supporting IBM documentation is located in the Managing the AIX Operating System manual number SC23-2008, Chapter 9.

An excellent reference book is the Managing UUCP and Usenet book by O'Reilly & Associates ISBN 0-937175-93-5. This book is an excellent UUCP reference, but AIX/RT requires a few special notes:

S.17 Setting up networking on an RT running AIX V2.

General steps needed:
  1. If not installed, install TCP/IP portion of OS.
  2. Install any VRM driver(s) needed.
  3. Add hardware adapter (token-ring, ethernet, X.25) to system.
  4. Define adapter to system with devices.
  5. Edit /etc/net to set IP address and interface characteristics.
  6. Edit /etc/hosts to set hostname to IP address association, and if needed, domain name server address(s).
  7. Edit the /etc/rc.tcpip file for full system domain name (if needed), and if necessary, static routes. Uncomment needed services.
  8. Uncomment the startup of interfaces and networking line in the file /etc/rc.include file.

Submitter: "Andrew J V Yeomans" <ayeomans@VNET.IBM.COM>
Date: Mon, 25 Apr 94 15:23:44 BST

[ I have made a few minor corrections and added some spacing for clarity to a few parts of this submission. - MW ]

Crucial step is to change inetlen/r_inetlen to 1500 - otherwise if you interwork with other vendors many things seem to work, but you get network errors, hangs, etc. (The s/w engineers thought wrongly that inetlen should include the header bytes).

        TCP/IP setup:-

        vi /etc/master:         node="\"?????"\"    (Used if kernel rebuilt)
        chparm nodename=?????                       (Modifies kernel image)
        vi /etc/hosts:          Add machine names. Ideally add timeserver
                                and nameserver.
        vi /etc/hosts.equiv:    Add any equivalent hostnames. If required.
                                Be aware of security issues with this.
        vi /etc/rc.include:     Uncomment '# sh /etc/rc.tcpip' line
        vi /etc/rc.tcpip:       Change hostname (use full domain name)
                                If NOT using either routing daemons 
                                gated or routed, add any needed static
                                routes after setting the hostname. 
                                  Example: Add
                                    'route add default aaa.bbb.ccc.ddd'
                                to set a gateway IP address.
                                If using distributed services:
                                   Add '/usr/bin/hostid `hostname`'.
                                   match value in /etc/hosts.
        vi /etc/net
                                Check/add your network subnetmask to
                                a proper value.
                                  Example: 'subnetmask ='

                                Change inetlen = 1500, r_inetlen = 1500
                                on any ethernet interfaces.
                                (needed for NFS to Sun, RS/6000, etc)

        devices:                For telnet logins, must have ptydevs with
                                ae=true, tt=ibm6153, logger=true.
                                For remote execution and X windows, must have
                                ptydevs with ae=false, logger=false.
                                Check Ethernet ('baseband') adapter links:
                                address links as below, interrupt level 4,
                                interrupt rate 18.3 ms normally.
                                Add adapter net0 with addresses matching links:

                        Links:          W10 W11 W12 W13         W10 W11 W12 W13
                                        |.  |.  |.  |.          __  __  |.  |.
                                        A15 A16 A17 A18         A15 A16 A17 A18
                                        off off off off         on  on  off off

                        Addresses:      rsa  = 80000            rsa  = 98000
                                        rea  = 81fff            rea  = 99fff
                                        brsa = 82000            brsa = 9a000
                                        brea = 87fff            brea = 9ffff
                                        il1  = 3                il1  = 3

        sh /etc/rc.tcpip to start TCP/IP.
        sh /etc/tcp.clean to stop TCP/IP.


S.18 How to set up SLIP - TCP/IP over serial lines.

Open for adoption and filling in.

S.19 Configuring NFS on AIX V2.

Submitter: "Andrew J V Yeomans" <ayeomans@VNET.IBM.COM>
Date: Mon, 25 Apr 94 15:23:44 BST

[ I have made a few minor corrections and added some spacing for clarity to a few parts of this submission. - MW ]

[ Warning: Syntax errors in any /etc/rc* file, or /etc/filesystems can potentially make your system not boot up properly, be careful. - MW ]

NIS/NFS setup:-

    vi /etc/rc.nfs:         Uncomment NIS and yppasswd lines
                            Set NIS domainname

    vi /etc/rc.include:     Uncomment '# sh /etc/rc.nfs' line

    vi /etc/passwd:         Add line '+::0:0:NIS passwords::' at end.
                            (Note does not work with dummy password +:*:..)

    vi /etc/group:          Add line '+:::' at end.
                            (Or copy from master, to allow root to log in
                            even if NIS not running).  
                            [ Note this well.. If you do NOT have group
                              under NIS control, root will be able to
                              login EVEN if network/nis disruption is
                              occuring, otherwise even root logins will
                              hang waiting on NIS server response! - MW ]

    vi /etc/exports:        Create with list of filesystems to be exported
                            and optional flags.

    vi /etc/filesystems:    Manually add nfs filesystems to be mounted, e.g.
                                    dev       = /home/stc
                                    nodename  = stc1
                                    type      = nfs
                                    vfs       = nfs
                                    mount     = true
                                    check     = false
                                    free      = true

    sh /etc/rc.nfs to start NFS/NIS.
    sh /etc/nfs.clean to stop NFS/NIS.

    Note nfs mount command is 'mount -v nfs -n hostname hostdir localdir'.
    'mount hostname:hostdir localdir' format is not supported.

    [ If you have the nfs mounts listed in /etc/filesystems, mounts can
      also be performed by  'mount localdir'. 
      Note also:  If you have mount=true, system boot up can hang waiting
      for nfs server responses.  Setting this to false, then issuing
      'mount -t nfs' command later can help speed up booting. - MW ]


S.20 Known outstanding problems with AIX V2, unfixed by IBM.

Even with the final update disks applied to the AIX 2.2.1 system there are some unfortunate bugs still lurking. Some can be corrected by replacing the offending code with Public Domain replacements. Others will require more work for repair.

[ This section, unfortunately, will need some expansion. Report your bugs to me, and I'll see they get added to this list. -MW ]

S.21 What Non-IBM software was available.

[ If anybody has information on software vendors still activly selling or supporting their RT software I would like to expand this section with that information. Phone numbers or mail/E-mail addresses of companies. - MW ]

S.22 Setting up and using the PC Simulator.

The Simulator maps PC segment registers either entirely to the I/O Bus or entirely to virtual memory on the RT. If you ask DEBUG to display from segment C5FF (d c5ff:0) you will get a series of zeroes like '00 00 00 00 ...' and NOT what is on the adapter. This means that PC software that reads or writes to an allocated adapter must load a segment register with a value in the range of the adapter (and not with a lower value expecting to use a larger offset to get into the adapter memory).

Submitter: "Andrew J V Yeomans" <ayeomans@VNET.IBM.COM>
Date: Mon, 25 Apr 94 15:23:44 BST

I've got IBM PC-DOS 5.02 to work on an RT. I used DOS 3.3 fdisk to create the pseudo-hard disk of 32 Mb, so that the AIX dosread/doswrite/dos commands would work on it. Only problem; I get grave accent instead of backslash (PCSIM 'wires' these keys together in software, for international keyboard).

I failed to get PC-DOS 6 to work. It nearly gets there, but hangs near the end of installation.

S.23 Features of the AIX bourne shell.

If you use the RT Graphics Development Toolkit stty enhedit interferes with the way VDI does mouse input. You should then use stty -enhedit to de-activate the enhanced editing functions.

S.24 Floppy disk drive special file names.

The floppy disk driver will attempt to discover what format the diskette is in when reading. When writing however, you must use a matching device special file, or I/O errors will result.
   name          sect   trks  sides  size   description 
   /dev/rfd#       15    80     2    1.2Mb  Normal High density
   /dev/rfd#.9      9    40     2    360Kb  Double side, double density
   /dev/rfd#.8      8    40     2    320Kb  Double side original PC
   /dev/rfs#.9      9    40     1    180Kb  Single side, single density
   /dev/rfs#.8      8    40     1    120Kb  Single side, original PC 64K

S.25 Minidisk usage notes.

S.26 How to add more pagespace and virtual memory.

Pagespace notes and a program to display usage.

Using the VMF utilities (option 7 from the VRM install diskette's menu), you can create additional minidisks and give them the "page space" attribute. This results in multiple paging space minidisks. This is a simple way to increase paging space, and potentially can help performance by splitting the paging I/O onto different controllers.

Pagespace minidisks cannot be on SCSI disks, as the SCSI drivers are not loaded until after AIX is started. As paging is performed by VRM, all pagespace minidisks MUST be on the ESDI controllers, and available at VRM boot time.

The location of the FIRST paging space minidisk is an attribute set by VRM installation, and recorded in the VRM internals. Deleting or moving this minidisk and recreating it on another drive will cause a system abort at IPL time with a flashing c6-05.

Here is a program I had in my archives that will display page space information and disk I/O statistics:

   volatile int *pages     = (int *) 0xb8;  /* page slots unallocated */
   volatile int *repcycles = (int *) 0xbc;  /* page replacement cycles */
   volatile int *iowaits   = (int *) 0xc0;  /* VM I/O waits            */
   volatile int *diskio    = (int *) 0xc4;  /* all non-paging disk I/O's   */

   printf(" %d = page slots unallocated\n",*pages);
   printf(" %d = page replacement cycles\n",*repcycles);
   printf(" %d = VM I/O waits\n",*iowaits);
   printf(" %d = all non-paging disk I/O's\n",*diskio);
I compiled this as lsvm lsvm.c - MW

Subject: Re: Problems with swap space??
Summary: solution to avoid system crashes when your application runs.
Date: 27 Feb 90 22:19:01 GMT
Organization: IBM AWD, Austin, TX

In article <728@duteca4.UUCP> () writes: [much of article deleted]
>It seems to me that the problem is caused by a problem with the swap space,
>so I tried the program on the other RTs and it appeared that the same
>problem occured (although at least one of them didn't crash until at least
>one other extra application was running). I also tried the program on a
>SUN, but couldn't crash it.
>Maybe a larger swap space is the solution, but

A larger swap space is the ultimate solution.

>error message could be expected when too much memory has been allocated.

AIX version 2 on the RT uses a delayed allocation scheme for allocating paging slots to an application. This may result in an overcommitting of the page space on the RT for some applications which use a lot of memory on a system with a small paging space. One of our vendors was the first we knew of to have the problem and I developed a solution for them. This solution is an easy way for developers to port these large, memory consuming apps. Applicationss originally written for BSD systems seem to have this problem more often since BSD does things differently.

The following program fragment is my solution.

/* ----------------------- cut here --------------------------------*/

#define PAGESIZE 2048
#define NULL 0
#include <sys/signal.h>
volatile int dangerflag;
void free();

int main()
{	int size, *ptr;
	void handler();
	char *MALLOC();
	/* ensure your favorite program catches sigdanger */
	 your favorite memory hogging program which uses MALLOC to
	 allocate storage (not malloc)
	size = ????;

	ptr = MALLOC(size);


void handler()
	/* sigdanger is sent when the number of paging slots drops
	below the pswarn threshold (see /etc/master to tailor this).
	Setting this threshold to a higher level may help
	even if you don't use the rest of this solution. */

	dangerflag = 1;

/* MAXMEMSIZE is chosen to be the largest real memory configuration
   supported on the RT */

#define MAXMEMSIZE	0x1000000

/* MALLOC is used to overcome the possibility of overcommitting the
   page space */

char *MALLOC(size)
unsigned int size;

	char	*malloc();
	char	*p,*q;
	int	i;
	volatile int	*numps; /* number of paging slots from low memory */

	/* Make sure dangerflag is initialized */
	dangerflag = 0;

	/* point to number of paging slots in AIX low memory */
	numps = (int *)0xb8;

	/* ensure there is enough backing storage to back all of
	   memory (note MAXMEMSIZE is as good as I can get here: that
	   is, a lessor value wouldn't work on machines with less
	   memory */
	if ((*numps * PAGESIZE) < (size + MAXMEMSIZE)) return((char*)NULL);

	/* call the real malloc to get the storage */
	q = p = malloc(size);
	if (p == (char *)NULL) return(p);

	for(i = 0; i < size ; i += PAGESIZE)
		/* touch and dirty the next page */
		*q = 0;

		/* Get out if we went below the pswarn threshold */
		if (dangerflag) goto getout;

		/* bump to the next page (Note: must be careful to 
		   touch on the next page boundary and not in the
		   middle of the page */
		q = (char *)(((int)q & (~(PAGESIZE-1))) + PAGESIZE); 

	/* ensure there is still enough backing storage */
	if ((*numps * PAGESIZE) < (size + MAXMEMSIZE)) goto getout;

	getout: /* There isn't enough space available */
	return((char *)NULL);

/* ------------------------- cut here -----------------------------*/

   Disclaimer:  The above program is already in the public domain and is posted
   here without warranty (even though I know it works).
   James Moody	Adv Workstations Div ; IBM Austin, 2502	  
		vnet: MOODY at AUSVM6
   outside ->	..!!ibmchs!auschs!!moody


S.27 ADDU setup and usage.

To use ADDU on PC/DOS systems, the RT needs the DOS Server program (pci) lpp installed, and started from the /etc/rc.include startup script.

[ I was requested to add this entry, but I have absolutely no experience with this product. Open for some kind soul to fill it in with knowledge. - MW ]

S.28 - How to set up print queues on AIX V2 and general printing setup and control notes.

How to increase the number of printers over eight.

S.29 Accessing remote printers via TCP/IP.

Sharing your printers with other systems (lpd daemon).

To use remote printers on another system will require you to have the TCP/IP component installed and configured, and to manually edit the /etc/qconfig file for the remote printers.


  1. Queue stanza names MUST be a maximum of three characters.
  2. Device stanza names must be a maximum of six characters.
  3. Queues names are shared among systems, not device entries.
  4. More than one queue can point to a single device.
To utilize a printer on system george that has a queue name of lp0 requires the following entries in the /etc/qconfig file. The printer on this system sam will be called rp0.
rp0: argname=rp0

drp0: friend = TRUE
      backend = /usr/lpp/tcpip/etc/lprbe -pserver=george -pqueue=lp0 
If the remote system is NOT a AIX system, add -naix to the command line arguments for the lprbe backend statement.

The lprbe backend also supports user filters with the -filter=line flag. For more information on this, and the available filters, see the Interface program for TCP/IP manual.

S.30 Using 9332 (SCSI) disk drives with AIX.

Coming soon... ??????

S.31 Making a backup of the VRM minidisk.

To take a backup of your installed VRM, use the command:
   cvid /dev/fd0
This command will backup your current VRM and create a TAILORED VRM install diskette, which you can use to re-install your VRM. This is especially helpful for those who have altered the standard VRM install with their own drivers or re-ordered the lpost file order.

You must have superuser authority and already initialized diskettes!

S.32 - How to increase the number of pty devices over 16.

(Includes kernel rebuild instructions, and some tuning notes.)

The number of available ptys sets total number of available simultaneous xterms + rlogins + telnets. Both xterm and rlogin use ptys that are in a getty disabled state.

You have two ways of defining the limits on the number of ptys:

Kernel pty Customization

By default, the kernel is configured with 16 ptys. You can change this number and rebuild the kernel to adjust the number of possible ptys. Use the following steps to change the number of possible ptys. Edit the /etc/master file:
  1. Modify the ptybuffers attribute in the sysparms stanza.
    sysparms:           # see NOTES2 below
       ptybuffers = 16  # modify to 64
       charlists = 64   # see below on value 
  2. Modify the maxminor attribute in the uptc and upts stanzas.
         major = 9
         maxminor = 16  # modify to 64
         prefix = ptc
         routines = open,close,read,write,ioctl,init,select,revoke
         mandatory = true
         major = 7
         maxminor = 16  # modify to 64
         prefix = pts
         routines = open,close,read,write,ioctl,init,select,revoke
         mandatory = true
  3. validate all sysparms values in /etc/master, and then rebuild the kernel. See NOTES2 below on steps.
Each pty uses some kernel memory. Other system parameters (such as the number of processes and charlists) should be tuned to reflect the additional ptys. Each pty implies at least two processes in use: one for control and one for the slave.

As you increase the number of ptys, you should also increase the number of charlists. Each charlist (or cblock) has space for 64 characters. Try to have a minimum of three or four charlists for each pty to be in use at the same time. For ptys that are heavily used, increasing the number of charlists may improve performance.

It is possible to run out of charlists and hang the system.
If an X Server is hidden by another virtual terminal, and there are processes (such as xterm) writing to that server, and if the sockets to the server fill up, the ptys may fill up on the slave-to-master path and use all the charlists. The blockage can be resolved by showing the X Server, allowing its display backlog to disappear and freeing the used charlists.
To avoid running out of charlists, provide enough charlists so that xterm slave processes can block on output without using up all the free charlists. This means you should provide approximately five additional charlists (about 300 characters) for each pty. The charlists are defined by the charlists attribute in the sysparms stanza of the /etc/master file.

System pty Customization

Each device is declared in a stanza of /etc/system. Use the devices command to add devices to the system. The devices command adds devices to the configuration files and makes a special device node in /dev. Many programs other than X-Windows use ptys. Most of the other programs require the use of a getty that supports login. You may have more ptys in the kernel than you have defined by devices.
The maximum number of ptys is 256 (the maximum number of minor devices per major device). Ordinarily, you should not use devices to create more than 64 ptys.

The above information is quoted from the X-Windows Guide and Reference, pg 2-18 and 2-19.

The charlists sysparms value should approximately be: 64 minimum, or #pty * 5

If you will be making use of the additional login/rlogin/xterm capability, you will HAVE to increase the following parameters in the sysparms stanza of /etc/master.

   procs = 60     Sets total number of processes.  suggested value:
                  60 + ( 2 * #ptys )  + #xservers + #hft devices +
                    #nfsd + #biod + #tty ports

   kprocs = 5     Sets number of kernel processes. Suggested value:
                  5 + #xservers 

   maxprocs = 40  Maximum number of processes per user.
                  may need more, if users have lots of xterms open.

   filetab = 250  Sets the total number of open file table entries.
                  suggested minimum value:
                  100 + (3 * procs)

                  better value:
                  100 + (6 * procs)

   inodetab = 250    Make the same as filetab.
Changing any of these values requires a kernel rebuild. To rebuild the kernel, follow these steps:
  1. login as root.
  2. Make sure you have the Install/Maintenance diskette handy to correct a botched kernel build!
  3. make sure /usr has enough free space to rebuild.
  4.    cd /usr/sys
  5. compile new kernel:
  6. save old kernel:
       cd /
       cp -p /unix /unix.keep
  7. copy new kernel to root:
       cd /usr/sys
       cp unix.std /unix
  8. reboot the system:
       shutdown -rf 0
  9. after system comes back up, add any needed pty devices using the devices command.

Last Update: 20-Oct-2013, M.Kraemer