From: faq-rt@antimatr.hou.tx.us (Mark Whetzel) Newsgroups: comp.sys.ibm.pc.rt,comp.unix.aix,comp.answers,news.answers Subject: COMP.SYS.IBM.PC.RT: - AIX V2 - Part 2 of 4 - Frequently Asked Questions (and their answers) and general information, hints and tips for using AIX V2.2.x on IBM RT (615x) computers. Keywords: IBM RT PC software FAQ 6150 6151 6152 AIX VRM AOS MACH PICK Message-ID: Date: 2 Mar 94 11:03:49 GMT Expires: 15 Apr 94 11:03:30 GMT References: Sender: markw@antimatr.hou.tx.us Reply-To: aix-rt@antimatr.hou.tx.us Followup-To: comp.sys.ibm.pc.rt Lines: 2887 Approved: news-answers-request@MIT.Edu Supersedes: Xref: news.lth.se comp.sys.ibm.pc.rt:2629 comp.unix.aix:35177 comp.answers:3981 news.answers:18602 Archive-name: ibm-rt-faq/aix-v2/part2 Last-modified: Tue Mar 1 06:19:18 CST 1994 Version: 1.0 Frequently Asked Questions for: AIX V2.2.1 on IBM RT systems. Part 2 of 4 parts. System Software topics for AIX/RT. See part 1 for a complete index of the AIX FAQ postings. ================================================================================ ------------------------------ 2.0 Software questions. S.1 - What is AIX? The operating system is called AIX, for Advanced Interactve 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: * Editors: vi, ed, INed. * Shells: - Enhanced Bourne shell - C shell - DOS services, a shell allowing users to use IBM PC DOS-like commands accessing both AIX and DOS files. * Library routines: - Expanded curses library. - Expanded terminfo library. - Routines for DOS services. - Shared libraries, allowing run-time linking of user-written routines. * Kernel: - Extended inter-process communication (semaphores, messages, shared memory) - Enhanced signals. - Multiple concurrent group access. - Filesystem enhancements such as file syncronization and trunication. - Enhanced process managment to explot the 40-bit address space. - Page fault handling on demand. - Fork enhancement. - Memory mapped files. * International Character Support. * Graphics - Grapics Development toolkit. - Advanced Display Graphics support library. * User interface - Enhanced instllation, device configuration, and system customization. - Useibility Services, a point-and-select interface to AIX commands. * Optimizing C Compiler. * Other functinal enhancements: - Generalized queueing system for job and print queue managment. - File system extensions for minidisk devices. - I/O managment extensions including: - Dynamiclly configured device drivers. - Support for virtual terminals and SNA sessions. - Generic device independent device drivers. - Multiple virtual termainal support on the native consoles. - Support for logical disks (minidisks) - Error log collection and analysis, trace recording and dump facilities. Portions of the above were quoted from IBM RT Personal Computer General Information book, Second Edition (July 1987) GC23-0783-1. ------------------------------ S.2 - 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 envionment 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 emualtes 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.3 - The RT will not boot from floppy, but does boot from the internal hard disks, why? Also VRM unique keyboard sequences. As shipped by IBM, the only diskettes that are bootable are: - Diagnostic diskette #1 - VRM Install diskette #1 - Any VRM backup diskettes made with the 'cvid' command, has diskette #1 as a bootable floppy. The AIX Install/maintence 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/Maintence 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/maintence 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 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). cntl-Action Change active display to command virtual terminal (if defined). Shift-Action Change active display screen to previous virtual terminal (if any). Cntl-Alt-a Select diskette 0 as alternate IPL device. Cntl-Alt-b Select diskette 1 as alternate IPL device. Cntl-Alt-c Select fixed disk 0 as alternate IPL device. Cntl-Alt-d Select fixed disk 1 as alternate IPL device. Cntl-Alt-e Select fixed disk 2 as alternate IPL device. Cntl-Alt-Delete Restart the co-processor. Cntl-Alt-Action Exit the co-processor. Cntl-Alt-Home Restart a virtual machine Cntl-Alt-End Dump first virtual machine data. Cntl-Alt-NumPad 4 Activate the VRM debugger. Cntl-Alt-NumPad 7 Dump all of memory to diskette. Cntl-Alt-NumPad 8 Dump VRM data to diskette. Cntl-Alt-NumPad 6 Hard IPL the entire system. Cntl-Alt-Pause Soft IPL the entire system. ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== Submitter: James Moody Date: 13 Mar 90 17:59:30 GMT Your machine is experiecing the "can't boot from diskette" bug. The first thing to try is this: Boot the machine. Hit the key sequence ctl-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 ctl-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.4 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 LOTS of work! - MW ] AIX V2 - Advanced Interactive Executive Vendor: International Business Machines Systems: IBM PC RT 6150 and 6151 Announced: Jan 1, 1986 (AIX V1.0) Available: Not generally, discontinued on June 1, 1991. Last Version: V2.2.1 Update level 1779 (opsys). Distribution: Binary format only, on installp disks. See section S.5 below. Information source: IBM announcement letters 286-004, 286-011 and 286-259 Note: Other versions of AIX exist for other platforms: AIX V1.3 - IBM PS/2 and compatible 80386 processors. AIX/ESA - IBM 3090 mainframes AIX V3.2 - IBM Risc/System 6000 processors. AOS - Academic Operating System Vendor: IBM Available: Not generally. Originally from IBM, but most academic instutions that have RT systems and Berkley source liscenses were able to get the full source. Last Version: AOS43 Dec88 ? Distribution: Source Information: IBM Announcement letter xxx-xxx, RPQ P83008 Program Number 5799-WZQ and usenet news information. BSD/RENO - ? Vendor: Berkley? Available: Unknown. This version is a combination of the AOS drivers and low level support routines, with the RENO distribution of BSD. Never made generally available. Found at academic instutions that have access to both AOS and RENO sources. Version: Reno? Distribution: Source? Information source: Netnews discussions. MACH - ? Vendor: Mt. Xinu ? Available: ? Version: msd 2.6 ? Distribution: ? Information source: Gleaned from Netnews posting May 21, 1991 PICK - (Named after author Dick Pick, of PICK Systems, Inc.) Licensee: Seattle OS, Inc., PICK Systems, Inc. Major shareholder. Systems: IBM Series/1 and IBM PC RT Completed: 1982 and 1987, respectively Processor: IBM series/1 and PC RT Available: Unknown Version: ? Distribution: Unknown, Binary system images? Information source: Exploring the PICK Operating System By Jonathan E. Sisk and Steve VanArsdale Hayden Books, Second Edition 1989 ISBN 0-672-48412-9 Note: PICK is available for a variety of processor hardware and platforms including, but not limited to: IBM PC/XT/AT/RT/Series-1 and IBM 4331/4361/303x/9370 (PICK/370), Intel 8086/80286/80385, Motorola MC68000/68020 (several vendors), Zilog Z8000 (ADDS Mentor), HP 3000, Microdata, Nixdorf 8890 VM. ------------------------------ S.5 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 liscensed copy of AIX, that I know of. Most liscensed 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 seperate section for this! See section S.21 for OEM software. - MW ] ------------------------------ S.6 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 seperate 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.7 Contents of the AIX V2.2.1 distribution diskettes. Shown in this list is the number of disks comprising a full distrubution 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 (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. # 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, ect.. > badly placed: tar, tic, chroot, proto, prof, and the /usr/lib/terminfo/* files. * 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, ect.. - dos to unix conversion utilities. convert, filetype, ect.. * Extended Programming Support (extp) - adb, cflow, cxref, dbx, dump, lex, yacc, ect.. > 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, ect.. * vi editor (vied) - vi, ctags, edit, expreserve, exrecover. * Games (game) - usual character based simple games, including 'fortune'. * Sendmail (send) - sendmail binary, mailstats, ect.. > 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, ect.. * 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, ect.. * HFT Examples Programs (hft) - /usr/lib/samples/hft - /usr/lib/vtm fonts for hft displays. 2 Virtual Resource Manager Device Driver (vtmdd) - Seperate 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) Note: 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 liscensed 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.8 - Maintence? What updates are available for AIX? IBM offical 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 instutions 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. 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 offical were never automatically shipped to customers. Only if they called with a problem were any updates sent out. The earliler 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 supposedly are supposed to include ALL prior earlier maintence, completely superceeding all prior maintence. 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 ] WARNING: 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 maintence. That update disk pair shows up in the opsys maintence 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.. DO NOT APPLY BREAKS NFS 1757 U400857 MPP 12/01/89 9 coreq(U400849,U400843) 1758 2705 U400876 MPP 12/21/89 ? sup(U400751,U400727,U400722) pre(U400828,U400849,U400843) New INSTALL/MAINT diskette U400893 doc only dup(U400876) 2706 U400991 MPP 03/28/90 15 sup(U400876,U400751,U400727) pre(U400980,U400889) (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 1770 ? MPP ? ? EFIX BAD DO NOT APPLY! 1772 U401227 MPP 11/05/90 12 sup(U401139,U401041,U400991, U400876,U400751 U400727) pre(U401046,U401168,U401169, U401123) PE(IX08395,IX08240) 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 -- sup(U400722,U400727,U400751, U401041,U401075 U401227, U401293) 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) U400844 1732 U400843 Xwin 12/01/89 3 coreq(U400751) U401187 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) coreq(U400876) 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) coreq(AIX2.2.1) 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 1732 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 -- pre(U401168) 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) coreq(U400751) 1113 U400890 NFS11 01/02/90 1 sup(U400865,U400864) coreq(U400876) 1115 U400983 NFS11 04/12/90 1 sup(U400890,U400865) 1116 U401043 NFS11 05/07/90 1 sup(U400893,U400890,U400865, U400764) coreq(U401041) 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) Note: 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.9 - 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 deamons 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. WARNING: 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 a 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 procesure for installing updates has the added bonus, in that if a update fails to install, it will be automaticlly 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. It *IS* possible for the update to be only paritially 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: /unix.YYDDD.nnn 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 comitted. 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: - No special processing needed. - Special processing required. 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 automaticlly shutdown and reboot, which means that you have to login again, killall, pdisable, and then when ready, comit the update. Changes or installation of these products or updates will force a kernel rebuild: - Block I/O Drivers - Ethernet Drivers - SCSI drivers - 3270 Device support - VRM device drivers Additional updates are not allowed to be installed until any prior update has been comitted. If you are useing 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 .. ect... Note: 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. DANGER: DO NOT use 'installp' with update disks, and vis 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 sutable 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 WARNING: 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: - update disks: /usr/lpp.update with a file name of 'updt.yyddd.nnn' where yyddd is the Julian day and nnn is a relative number. The resulting file may then be renamed to something easy to remember, and the updatep utility can be directed to that file by: updatep -a -d/usr/lpp.update/filename - product install disks: /usr/lpp.install with a file name of 'programname.vv.rr' where programname is a partial program name and vv and rr are numbers of the version and release of the product. This file will be in the proper format for use with: installp -d/usr/lpp.install/filename NOTE: 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. * First or new installation process WARNING: The installation procedure outlined below assumes either that you do not have any software currently installed on your machine, or that you do not wish to save any of the files on your machine. If you wish to save any files or minidisks, refer to the reinstallation section. You should have in front of you the manual: "Installing and Customizing the AIX Operating System." Step 1: Planning your minidisks. Complete the minidisk worksheet as described in the manual, chapter 1. There are some excelent worksheets that will give you the approximate needed sizes of the system filesystems when including most of the optional product areas. These charts also show which filesystems that the product installation will be placing modules. Selecting the sizes of your minidisks depends on how much of the base AIX V2 system you decide to install, the size of the hard drives that you are installing to, and how much space you will desire for any of your own user areas and additional application software. The '/vrm' filesystem will need at least 3800 blocks. I recommend more if you are making any alterations of the vrm filesystem. I personally use around 5000 blocks. I, however, have been doing some VRM hacking, and this leaves me about 1000 blocks to spare. In normal use the '/vrm' space is static, so any extra will be wasted. The size of root (/) will vary a lot. Make sure that you have enough space for at least two copies of the kernel (/unix) for update handling. A working *MINIMUM* would be around 2600 to 3000 blocks free. More if you can spare it. A useful size of root will vary from 28000 to 34000 blocks, or more depending on your needs and system usage. The size of /usr will vary the most, and really depends on how much of the optional products you install. To have X11, TCP/IP and NFS will require in the range of 60000 to 150000 blocks. Space is used for temporary areas for mail (/usr/spool/mqueue) and storage of mail before being read (/usr/mail). Additional space will be needed for printing (/usr/spool/lpd and /usr/spool/qdaemon), and system temporary space (/usr/tmp). UUCP usage will also need storage space in /usr/spool/uucp. Sizing '/tmp' will depend on the amount of space you will want for editing, compiler work space, temporary mail files and work areas. A good working minimum is 5000 to 10000 blocks. User accounts by default use '/u' for home directories but can be placeed in any user filesystem, and thus will vary considerably accorting to your needs. Minimum space is 1000 blocks. Note: I have managed to install AIX V2.2.1 on two 40Mb disks, but it had no dump space, bare minimum pagespace (equal to system real memory), and a bare minimum /u, and only the base OS + TCP/IP installed. Not a very useful system. Step 2: Install VRM. Boot with the first VRM diskette and follow the instructions as described in the manual, chapters 2 and 3. I have found that this procedure works best: - Set the date and time, AND timezone *FIRST*. This will make all the rest of the installed files with the correct date, and the NVRAM clock will be proper GMT time according to your entered local time. - Choose the option 'change current choices and install'. This option will allow you to select the sizes of the VRM and initial Pagespace area. Step 3: Installing the Base System Program. Boot with the Install/Maintenance diskette and follow the instructions as described in the manual, chapter 4. The Base System Program must be installed before installing any other operating system component. I have found that this procedure works best: - Choose the option 'change current choices and install'. This option will allow you to select the sizes of all the base OS filesystems: /tmp, /usr, /, /u, and the dump space. - Use the menus of displayed filesystems to set the sizes of all the areas. Once a size is chosen, re-sizing it at this point is easy, after install, it is hard, so make good choices now. :-) After completing the disk sizing, the install process will proceed reading the eight disk set of base OS, and all filesystems will be sized and checked. You will also be prompted for an initial userid to be created. It will also ask if you want to have that user auto-logged in, or to run in complete multi-user mode. Step 4: Installing additional operating system programs. In addition to the Base System Program, the AIX operating system includes programs such as Extended Services, Multi-user Services and Usability Services. Use the "installp" command to install these additional programs and follow the instructions as described in the manual, chapter 5. Products you should consider installing: - Extended services sections: - Administriative support (for tar and cpio) - Extended programming support (compilers, sed and awk) - Sendmail - UUCP - if modem attached to usenet, or others. - Multi-user services sections: - System activity recording - Interworkstation commands (some scripts want the 'id' command) - GSL - for sure needed if running IBM X11 product. - VRM Device drivers sections: - Baseband adapter (if using ethernet) - SCSI adapter (if using the IBM RT SCSI adapter) - Token-Ring adapter (if using that card) - TCP/IP - if attached to a network. Required for X11. When you finished installing the additional programs, delete any leftover '/unixYYDDD.###' files using the "del" command. Step 5: Updating operating system programs. After you installed the optional programs included with AIX, you *MUST* apply the changes included on the base product Update Diskettes. Use the "updatep -ac" command and follow carefully the instructions as described in the manual, chapter 5 page 5-15. Step 6: Add any optional Licensed product to the system. After you have a running, installed system, might I suggest a backup of the system? Next, install any other products you need, such as: NFS, X11, special compiers, or other programs. Step 7: Update system to current maintence level. After much use and experience with AIX V2, I have found that the system is most useful if at least the following updates are installed, if not at the last issued update level: - 2706 For the base OS and the other base products. - 1734 For TCP/IP - 1738 For X11 AIXWindows. - 1116 For NFS 1.1 - 1204 For NFS 1.2. Note: 1773, the sucessor to 2706 is required for installing the NFS 1.2 product. Step 7: Installing applications. You have now installed the AIX operating system, and your system is ready to use. If you have additional programs to install, follow the installation procedure as described in the publications provided with these products. * Re-installation process. Save any of your tailored system configuration files, and any special files you require. The following list is some suggestions: /etc/rc.include /etc/passwd /etc/group /etc/security/* /etc/hosts /etc/filesystems /usr/adm/sendmail/* /usr/adm/uucp/* /u/* ATTENTION!! This list might NOT be complete !!! Reinstall the VRM and the AIX Base System Program. The AIX installation process destroys the /(root), /usr and /tmp minidisks. If you change any of the characteristics of the /u minidisk, it will also be destroyed. Reinstall any additional programs from the set that you had on your previous system that you desire. Enter "mdrc" (minidisk recall command) to restore your user-defined minidisks. Restore the system files that you had backed up from your previous system. Note: You must NOT directly replace /etc/filesystems from your backup. It is only for reference purposes. It would need to be merged with your newly installed /etc/filesystems if you have any NFS mounts in it. Shutdown the system and reboot with --. [ This section may need more work. Any other ideas/changes? - MW] ------------------------------ S.12 - Compiler usage questons? 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.c or cc -DSYSV and/or -DUSG -O -o foo.c Note: 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. cc -DBSD -DBSD_INCLUDES -DBSD_REMAP_SIGNAL_TO_SIGVEC \ -O -o foo.c -lbsd Note: 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. 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'. Note: 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 rouding applies to constant folding in all applicable passes of the compiler. -yp Rounds towards positive infinity. -yz Rounds towards zero. -z Use the libm.a version of the following transcendental functions, instad of calls to the AIX kernel, or AFPA. acos, asin, atan, atan2, cos, exp, log, log10, sin, sqrt, tan. 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.xx for porting notes for the compiler, and information on using that compiler. ------------------------------ S.13 - How to managage serial ports. NOTE: 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 automaticlly detect any attached serial port hardware and present them in the "Following adapters are available" menu. devices add ttydev tty <..Following adapters available menu displayed> < a 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, ect..) 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. * penable - causes the getty to run all the time, and it will present a login banner when the port detects carrier, and modem ready. The 'penable' command also keeps the port locked all the time. This command changes the port operation to be the same as the options devices panel 'ae' set to 'true'. * pdelay - causes the getty to raise DTR, and wait for carrier before presenting the login herald, AND to WAIT to 'lock' the port from other users (if necessary) UNTIL some characters are actually recived on the port. Some systems call this a 'uugetty'. This command changes the port operation to be the same as the devices panel 'ae' set to 'delay'. * pshare - is similar to pdelay, but it locks the port immediately on recipt of carrier. (least useful of the options) Same as the devices panel 'ae' set to 'share'. * pdisable - causes the getty to be halted for this port, freeing the port for usage by other programs. DTR will be dropped, and if a modem is attached and configured correcty, will hang up any user dialed in, and prevent the modem from answering the line. Same as the devices panel 'ae' set to 'false'. To stop ALL tty ports at once, use 'pdisable -a'. NOTE: 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: device: option = value The following options can be of assitance with UUCP setup lock= true. This stanza is CRITICAL for a shared dial-in/dial-out bi-directional use port. No command adds this stanza, and it is not added by default, but without it, port locking will not be handled coorecty amoung the getty,cu,ate and uucico programs. enabled = Set by devices to the value of the 'ae' field. values: true, delay, share, or false. Corresponding to penable, pdelay, pshare or pdisable. speed= Initial port speed. Not documented is the fact that a comma delimited list of speeds is availabe and that getty will rotate thru the list presenting the hearald in the specified speed on recipt of a 'break' signal. parity= parity to use, set by devices command, values: odd,even,none,mark and space. Can also be a comma delimited list like 'speed' above. hearld= The chracter string presented by the getty for a login greeting. term= Sets the string that the TERM envionment variable will be set to upon successful login. logmodes= Port characteristics during login processing. runmodes= Port characteristics set after login complete. 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 S121=000 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 "addusers" 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. WARNING: 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 on the /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 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 Description: 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. NOTE: 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: guest: password = * restrictions = nologin george: 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). Note: 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. password: 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. NOTE: 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. Note: 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 suporting IBM documentation is located in the "Managing the AIX Operating System" manual number SC23-2008, Chapter 9. An excelent reference book is the "Managing UUCP and Usenet" book by O'Reilly & Associates ISBN 0-937175-93-5. This book is an excelent UUCP reference, but AIX/RT requires a few special notes: 1) All the control files for BNU are located in '/usr/adm/uucp' instead of the '/usr/lib/uucp' or '/etc/uucp' directories. 2) Login accounts created for UUCP should be in group 'uucp'. I like to use uid numbers between 100 and 199 for uucp use. (Uids over 200 normally start the standard user range of uids). The gid 5 is the uucp group, and the accounts should be in that group. 3) Port AND getty control is done via the 'devices' command, or the port control commands 'pstart,pdelay,pshare,pdisable and penable'. See section S.13 on serial port managment. There is no '/etc/inittab' (as SYSV) or '/etc/ttys' (BSD/Xenix), or '/etc/gettytab' (SunOS). AIX/RT has a unique file called '/etc/ports'. That file is discssed in more detail below. 4) Serial devices have two names for each port that are quite helpful, for example the first serial port is called tty0, and has the following device special files: /dev/tty0 - standard port, and open blocks until carrier detect is true. /dev/ltty0 - Has the equivlent of 'clocal' set and allows open to complete without carrier. When setting up the 'Devices' control file, use the /dev/ltty# entry so that uucico can open the port and be able to send dial string characters. This is critical, as the modem MUST be setup to only have CD (Carrier Detect) true only when a real carrier is detected from the remote end. Most hayes compatible modems when shipped from the factory have CD forced true at all times. This is trouble for uucico, as it cannot detect when a session has failed, and when to hangup. 5) To use the RT to program a modem soft switches, add the tty device with the modems default port speed and parity, ect... Edit the /usr/adm/uucp/Devices file and uncomment or add an entry called 'Direct'. # ---A direct line so 'cu -ltty0' will work # Direct tty0 - 9600 direct Direct ltty0 - 2400 direct Then use 'cu -l ltty0' to connect using the cu command. You can now use cu to use the various 'AT' commands of the modems to program the modem. As different modems use different soft register values, be sure to check your modem documentation for the proper values to use. These register settings described below are for an ATI2400e modem your modem should have equivlent settings for these functions. Some the common settings needed are: S0=1 Number of rings to answer.. (If call out only, you can leave this to zero to never answer the phone.) &E0 Echo off in command mode. NOTE: This will make command strings typed with cu not to be echoed back by the local modem. Use the cu flag '-h' to turn on programmed echo (half-duplex). &C0 Carrier follows true carrier. 6) See section S.13 for general serial port control and setup. See also Q.8 and Q.9 in the Questions section on additional notes on speed settings and bi-directional ports. The following /etc/ports options can be of assitance with getting UUCP setup and operating correctly: lock= You MUST add 'lock=true'. This stanza is CRITICAL for a shared dial-in/dial-out bi-directional use port. No command adds this stanza, and it is not added by default, but without it, port locking will not be handled correctly amoung the getty, login, cu, ct and uucico programs. NOTE: The 'ate' command regardless of update level still does not understand shared use ports. You MUST pdisable the port prior to using ate. enabled= Set by devices to the value of the 'ae' field. values: true, delay, share, or false. Corresponding to penable, pdelay, pshare or pdisable. hearld= You will most likely want to add this entry to shorten the login prompt. The default stanza has a long string of newline characters, and this can confuse some uucico chat scripts. ------------------------------ S.17 - Setting up networking on an RT running AIX V2. General steps needed: - If not installed, install TCP/IP portion of OS. - Install any VRM driver(s) needed. - Add hardware adapter (token-ring, ethernet, X.25) to system. - Define adapter to system with devices. - Edit /etc/net to set IP address and interface characteristics. - Edit /etc/hosts to set hostname to IP address association, and if needed, domain name server address(s). - Edit the /etc/rc.tcpip file for full system domain name (if needed), and if necessary, static routes. Uncomment needed services. - Uncomment the startup of interfaces and networking line in the file '/etc/rc.include' file. ------------------------------ 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. - Different versions of NFS for AIX V2. - Known unfixed problems with NFS 1.1 on AIX V2. - Known unfixed problems with NFS 1.2 on AIX V2. Coming soon ?????? ------------------------------ 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. * Opsys: - ate command will not work on bi-directional ports. Port must be in a disabled state for it to open the serial port. - syslog function call will not format variable parameters for more than three variables. * TCP/IP: - named daemon is very old, based on BIND vX.X. - With 'telnet' terminal type negoation is not always correct after update 1773. 1779 corrects some of the problems, but not all. [ 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. * Applix IA. * Dyalog/APL. * Interactive Systems INmail/INnet/FTP * Interleaf Inc. Workstation Publishing system. * INGRES DBMS * Oracle DBMS * RM/COBOL * RS/1 * Rabbit Systems NETWORK 3270-PLUS, and RJE-PLUS. * Samna+ * Solomon Sstems SOLOMON III Accounting package. * SQL/RT * Sytos/6157 Tape Utilities. * UNIRAS * WordPerfect V4.2. [ 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. * Getting DOS/pcsim ready: 1. Use the "installp" program to install the pcsim LPP. For AIX 2.2.1, only the latest release level of pcsim 1.1.1 will function correctly. 2. Prepare the DOS 3.1 diskettes and one empty diskette (1.2 MB) IBM PC-DOS 3.3 will also work. 3. Create the working environment: - Create a simulator user (ex. simuser) Or use an existing non-root userid. 4. Customize the simulator: - login as simuser - create a file to be used a the 'C:' drive by PC DOS: touch cdrive - type: pcsim - fill out the selection menu Make the 'PC virtual hard disk point to that created file called 'cdrive'. - save your customization 5. Start the simulator: - put the DOS Start diskette in the top floppy drive. This is drive 'A:' to the simulator by default. - select START on the pcsim menu PC DOS will be loaded from the floppy at this point. If the boot fails, in true IBM PC flavor, you will be dropped into the 'ROM' basic. - If all goes well, the PC DOS prompt A> appears. 6. Install DOS on the simulated hard disk: - type FDISK to create a DOS partition. - type FORMAT C:/S to format the DOS partition - use the SELECT command to customize DOS (for Germany: select 049 gr) This step will require the empty diskette. - create the DOS library (C: MKDIR DOS) - copy the DOS diskette on the disk: copy a:*.* c:\DOS 7. Reboot DOS from 'PC' virtual hard disk: - remove any diskette from the diskette-drive - reboot pcsim with -<(right)alt>- NOTE: if you use a color display, make sure to define a BLACK background and a white foreground, and you won't have color problems! * Simulator devices The PC Simulator supports: - CGA, EGA and APA displays (incl. megapel) - the serial ports There are two main rules to follow in dealing with simulator devices which are not supported by AIX: 1. The Simulator cannot support devices that share interrupt levels. 2. The Simulator does not support devices that use alternate DMA. * Simulator applications The following is a short list of applications that have been tested by IBM at the release of the simulator product. [This was collected from some ORIGINAL IBM documentation, some of this information is now very out of date. - MW ] IBM DOS 3.3 IBM Displaywrite 4 Version 1.02 IBM Storyboard Plus Version 1.01, Update 01 dBase III Plus Version 1.1 Chartmaster Version 6.21 PFS: First Choice Version 2.01 Wordperfect Version 4.2 Lotus 1-2-3 Version 2.01 Microsoft Windows Version 2.03 Flight Simulator Version 2.0 * Defining an adapter to AIX and PCSIM Allocating an adapter to the Simulator is a three step process: - You define it to AIX using devices by adding a device of type 'simdev', say simdev0. - You define it to PCSIM using the simdev command. For example, 'simdev -a simdev0'. - You ALLOCATE the device to a session using the -adev0 flag from the command line when you start the Simulator or by selecting dev0 from the list of devices you may allocate from the menu. You will need to select a display for the Simulator to use in addition to your allocated adapter. This is because the Simulator needs to create a process to receive keystrokes. Only the later version 1.1.1 of the simulator supports an X-window as a simulator display. You will need PC software that knows to drive that display adapter. Note: To verify that the adapter has been properly defined and allocated you can use DEBUG to display adapter memory. For example: C>DEBUG -d c600:0 C600:0000 FF FF FF FF ... Define the adapter as described above and allocate it. If the RT does not have the adapter present, you get a series of 'FF' values when DEBUG reads from the I/O bus. When the adapter is present, DEBUG would read whatever is in the video buffer on the adapter. NOTE: 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). ------------------------------ S.23 - Features of the AIX bourne shell. * Path resolution function The AIX Bourne shell has a builtin command called "type" which returns the complete path of the evoked AIX function. Example: "type ls" -> "ls is /bin/ls" * Use of the HFT console command editing keys can make the bourne shell easier to use. Use the command 'stty enhedit' to turn on the enhanced edit functions of the hft console. With this enabled, the cursor keys and function keys F1 thru F3 perform command recall functions and command line editing. The function keys perform similar to the IBM PC DOS command editing keys: F1 - copy one character at a time from the last command buffer. F2 - Search for the character in the command line that is pressed immediately after the F2 key. F3 - copy command buffer to end of line. delete - delete character out of the enhanced buffer, shifting the command line one character to the left from the current cursor position, until end of line. insert - turn on insert mode on the command buffer up arrow, down arrow - scroll forward or backward thru the command buffer. right arrow - functions like F1 key, copies on character at a time. NOTE: 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. * The number of minidisks is limited as follows: max 64 minidisks per system max 47 minidisks per disk unit * You can use the VRM Maintenance Facility (VMF) to repair a varity of minidisk problems. It is described in the "AIX Problem Determination Guide", appendix A. * If you have a minidisk that is on a disk that is a duplicate IODN number the system will have problems determining which minidisk to use. To delete such a minidisk with VRM, do the following: - Boot with the VRM diskette. - Take the option of the maintenance menu. - Use the "qi" command and note the IODN of the minidisk, AND the drive number, of which you want to delete. - type "dlmd " where is the concerned IODN number. and is the assocaited drive number. (1 thru 3) - hit - type "quit" ------------------------------ 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. NOTE: Pagespace minidisks cannot be on SCSI disks, as the SCSI drivers are not loaded unitl 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. WARNING: 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. I compiled this as 'lsvm' lsvm.c main() { 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); } ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== Submitter: moody@austin.ibm.com 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> mars@duteca.tudelft.nl () 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 volatile int dangerflag; void free(); int main() { int size, *ptr; void handler(); char *MALLOC(); /* ensure your favorite program catches sigdanger */ signal(SIGDANGER,handler); /************************************************************* 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; return(p); getout: /* There isn't enough space available */ free(p); 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 aesnet: moody@moody.austin.ibm.com vnet: MOODY at AUSVM6 outside -> ..!cs.utexas.edu!ibmchs!auschs!moody.austin.ibm.com!moody ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== ------------------------------ S.27 - ADDU setup and useage. 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. * The devices command will add the physical printer device to the system, and under normal conditions, it will configure the queueing system to use the newly added printer. The following printers represent those currently supported by AIX 2.2.1: 5152 - IBM PC Graphics Printer 5182 - IBM PC Colour Printer 3852 - IBM PC Colour Jetprinter 5201 - IBM PC Quietwriter Printer Model 1 - IBM PC Quietwriter Printer Model 2 5202 - IBM PC Quietwriter Printer III 4201 - IBM Proprinter II & III (Serial or Parallel) 4202 - IBM Proprinter II & III XL (Serial or Parallel) 4224 - IBM 4224 Printer (Serial) 4216 - IBM Personal Pageprinter Model 20 (Postscript) opp - Other Parallel Printer - for non-IBM Printers osp - Other Serial Printer - for non-IBM Printers 3812 - IBM Pageprinter The following printers can also be configured for use on the 6150: 5204 - IBM Quickwriter (4201 serial and 5202 parallel) 4216 - IBM Personal Pageprinter Model 010 (4201 serial and parallel) The opp and osp devices can run quite a few non-IBM printers very easily with the proper setup of both the printer and AIX V2. * NOTE: If devices is used to CHANGE a printer configuration information then it is necessary to recreate the device driver by issuing the following commands: vrmconfig -d lpX vrmconfig -a lpX Where lpX is the name of the relevant device. * The printing and queue control commands used are rather unique to AIX/RT. The following commands show BSD commands and their AIX/RT equivlent. BSD AIX/RT lpq print -q Displays the status of the printers and printer queues. lprm xx print -ca xx Cancels a print request for the file 'xx'. lpr -Plp1 xx print lp1 xx Specifies that file 'xx' should be printed on the printer lp1 rather than the default printer. * In BSD the 'lpc' command is an interactive command used to alter the printing system. In AIX/RT this is replaced by several different command flags. Only the root account or members of the system group can use these flags. print -dd lp1 Takes the print queue lp1 down. All devices on this queue are shown as OFF by print -q. print -du lp1 As above but turns the queue back on. print -dg filename Kills the qdaemon after the file is printed. This is the only clean way of killing the qdaemon. * The following are some handy print command examples: print -nc=3 filename Prints 3 copies of a file print -no filename Notifies you that the file has finished printing. print -tl=TITLE filename Prints TITLE on the first page of the document. Also shown from the print -q command. print -cp filename Copies the file to the /usr/spool/qdamon space, instead of using the actual file for printing. You can edit it while waiting for the current copy to print. print -su=user1 -ca job1 This command allows a user to remove another users print job from the queue. Only system group members can use this flag. print -pr=nn filename Causes the print job to take the priority specified by the 'nn' parameter when queued. System group users can use priorities 1-30 and other users can use 1-20. print -ap=nn filename Alters the priority of a queued print job to 'nn'. This allows jobs to be moved up and down the queue as seen by the 'print -q' command. * Another very useful feature of the "print" command is that it can be used to provide parameters to the stanard backend 'piobe'. For example, when adding a Quietwriter III in devices there are many parameters that can be changed. Among the various parameters are "lm", "pq" and "psd" for setting Left Margin, Print Quality and Paper Source Drawer. Rather than setting these in devices and changing them each time they need altering, it is possible to enter print commands in the following way: $ print -lm=3 -pw=letter -psd=2 filename This has the effect of dynamically changing the margin, print quality and paper source drawer for the period of this print job only. The printer reverts to the previous settings immediately after the job has completed. * There are two special flags for the printing system that can be very helpful: -plot This flag allows files to pass through the backend without change. Embedded control codes will not be altered by the backend. -strip Removes all control codes in the text before passing it through to the printer. It is possible to pass 'piobe' these parameters in two ways. For permanent changes, they can be put into the /etc/qconfig file in the device stanza as normal parameters to 'piobe'. Alternatively they can be passed with the print command. $ print -plot lp1 file.with.codes This will print the file 'file.with.codes' on the printer associated with the lp1 queue but with the -plot option. * The /etc/qconfig fle can be edited to alter print queue and device characteristics. Although the 'print' command will act on the changes without further action, it is necessary to reload the qdaemon with the modified /etc/qconfig information. This is achieved by issuing the 'print -rr' command which forces the qdaemon to reread the information. * Some stanzas in this file describe queues and other stanzas describe devices. Every queue stanza requires that one or more device stanzas immediately follow it in the file. The first queue stanza describes the default queue. The print command uses this queue if no queue parameter is provided. * The /etc/qconfig file with one printer defined will look something like this: lp0: argname = lp0 device = dlp0 dlp0: file = /dev/lp0 access = both backend = /usr/lpd/piobe -statusfile -pname=lp1 -device=d4201ss2 -profile=/etc/ddi/sprinter bsh: argname = bsh friend = FALSE discipline = fcfs device = bshdev bshdev: backend = /bin/sh The first stanza (labelled lp0:) describes the argument name for this print queue and the device name. The label lp0: is the name of the queue and the argname (also lp0 in this case) is the name used by the 'print' command to select this queue. The label and the argname need not be the same. Note: Queue names MUST be a maximum of three characters (lp0 in the example above). The 'device' entry stanza (dlp0 in the example) has a maximum length of six characters. * A single queue can be used to service more than one device for a particular queue. For example, if there are two identical printers attached to the system then it may be desirable to have them both on the same queue. This would enable users to send jobs to be printed and if one printer was busy then the job could be printed on the alternate printer. This can be achieved as follows: - Add both printers with devices. The assume the first one is lp0, and the second is lp1. - Edit /etc/qconfig and delete the lp1 'queue' stanza and edit the lp0 queue stanza to select both devices: Locate the line: device = dlp0 associated with the lp0 queue and change it so that both device stanzas are referenced by that queue entry. lp0: argname = lp0 device = dlp0,dlp1 dlp0: file = /dev/lp0 access = both backend = /usr/lpd/piobe -statusfile -pname=lp1 -device=d4201ss2 -profile=/etc/ddi/sprinter dlp1: file = /dev/lp1 backend = /usr/lpd/piobe -statusfile -pname=lp1 -device=d4201ss2 -profile=/etc/ddi/sprinter If it is necessary to access either of the devices individually, this can still be achieved using the following format: print filename lp0:0 (Selects dlp0) print filename lp0:1 (Selects dlp1) * In the default /etc/qconfig file there are two stanzas, bsh and bshdev. These form the queue characteristics for the background shell. The background shell isn't actually used for printing, but may be used for queuing jobs to be executed on the system. For example, to run a program called PROG, that can only be executed by one user at a time (eg for load implications), you would enter: print bsh PROG These stanzas can be removed if not needed, to prevent 'print -q' from displaying bsh information, or inadvertant use. * Working with more than 8 printers The AIX 2.2 device driver supports up to 16 printers. There are some manual steps that need to be taken to get other portions of the system to also work with more than 8 printers. For "devices" support: we need to change the /etc/master file. For every stanza related to a printer device (those which have the keyword "prefix = lp"), change the value of the "maxminor" keyword from 8 to 16. To cause this change to go into effect, a kernel rebuild is neessary. For "qdaemon" support: when these printers actually get added, a stanza for the printer is added to the /etc/qconfig file. The qdaemon only supports 3-character queue names. So when the 10th printer gets added, modify the created stanza names, with an editor. The "argname" and "device" keywords, and the "-pname" flag as follows: Typical example: --------------- lp10: argname = lp10 device = dlp10 dlp10: file = /dev/lp10 backend = /usr/lpd/piobe -pname=lp10 -device=d5152mp Is changed to become: -------------------- lpa: argname = lpa device = dlpa dlpa: file = /dev/lp10 backend = /usr/lpd/piobe -pname=lpa -device=d5152mp The reason for this alteration is that the printer device driver supports 16 printers, but the qdaemon, who reads the qconfig file, only supports queue names of 3 bytes or less. Because the lp10 - lp15 are 4 byte queue names they need to be amended to 3 bytes. Note "/dev/lp10" is the device special file name and does not need to be changed. * There are a number of fields that may be included in the print queue stanza (lp0: in the example below) and the device stanza (dlp0). lp0: argname = lp0 device = dlp0 acctfile = /usr/adm/qacct (or any other filename) discipline = fcfs (or sjn) friend = TRUE (or FALSE) up = TRUE (or FALSE) dlp0: file = /dev/lp0 backend = /usr/lpd/piobe -statusfile -pname=lp1 \ -device=d4201ss1 -profile=/etc/ddi/sprinter access = write (or both, or FALSE) align = TRUE (or FALSE) feed = 3 (or never) header = always (or never, or group) trailer = always (or never, or group) The fields shown above can be used to customise the output and queue characteristics of each printer. It is important to note that some are entered in the print queue stanza and some are entered in the device stanza. If any field is placed in the wrong stanza then an error message will occur in the form of: error in config file /etc/qconfig, line 6 illegal field name for queue stanza PRINT (FATAL ERROR): error from digester /usr/lpd/digest Please notify system administrator. This error will also occur if there is no blank line between stanzas. > Fields in the print queue stanza (lp0): argname Identifies the queue name identifier used by the 'print' command. This can be changed to a more meaningful name such as 'argname = draft' device Identifies the the symbolic name that refers to the following device stanza(s). acctfile Identifies the file used to save print accounting information. If the named file does not exist, no accounting is done. FALSE, the default, indicates suppressed accounting. The information provided is user number, user name and number of pages printed. discipline Defines the scheduling algorithm used by the queue. The default 'fcfs' means 'first come, first served'. The other option, 'sjn', specifies shortest job next. friend Indicates whether the backend updates the status file and responds to terminate signals. TRUE is the default, FALSE indicates that it does not. A friendly backend (like 'piobe') will provide status information as seen by 'print -q' whereas an unfriendly one (like 'cat') does not. up Defines the state of the queue. TRUE, the default indicates that it is running, FALSE indicates that it is not. This is used when a printer becomes unavailable for a period of time (eg maintenance) and it is not relevant to delete the device from the system. > Fields in the device stanza (dlp0:) access Defines the type of access the 'backend' has to the file specified in the 'file' field. The value of access is 'write' if the backend has write access to the file or 'both' if it has read/write access. If the value of access is FALSE this field is ignored. align Specifies whether the backend sends a form feed before starting the job if the printer was idle. (Default - FALSE) feed Specifies the number of separator pages to print if the device becomes idle. The default, 'never', indicates that no separator pages should be printed. header Specifies whether a header page prints before each job. The default, 'never', indicates no header pages at all, 'always' means print a header page before each job and 'group' means before each group of jobs for the same user. trailer Operats the same as 'header' but puts trailer pages after the users output rather than than preceding it. * Using Flow Control with serial printers. AIX/RT can communicate serially with printers at up to 19200 baud. If a large file is being printed then the printer buffer will often fill up because the printer cannot print as fast as the system is transmitting. To prevent the subsequent loss of characters some form of flow control must be implemented. There are two main types of flow control used with serial printers. One, "dtr" uses hardware and the other, "Xon/Xoff" uses software. + dtr Flow Control The dtr (Data Terminal Ready) flow control method uses one of the pins in the RS232C wire to indicate to the RT that the printer buffer is full and that no more data is to be sent. It uses the same pin to indicate that the buffer is no longer full and that more data can be sent to the printer. If you examing the printer cable diagram show in section H.xx of the harware FAQ, for a printer cable, you will see that Pin 20 on the printer end of the cable is the "dtr" pin per RS-232 standards. This pin is connected to Pin 8 on the RT end, Clear To Send (CTS). If your printer uses dtr then you must specify pro=dc in the devices program when you add the printer. Also, ixp (Include Xon/Xoff Protocol) MUST be set to false in devices since this ignores the 'pro' setting if ixp is set to TRUE. This tells the RT to look at the CTS pin which is connected to 'dtr' on the printer for dtr flow control (NOT the "dtr" pin of the RT side). A common mistake is to set "pro=dtr" in devices when the printer is using dtr. This, however tells the RT to look at the dtr pin (Pin 2) which is connected to CD and DSR using the standard printer cable. Since CD and DSR will always be high, the RT never has reason to believe that the buffer is full and lost data and error messages occur. + XON/XOFF Flow Control Xon/Xoff is more straight forward than dtr. It uses the Receive and Transmit lines and a couple of special characters to indicate the status of the buffers. When data is being sent down the transmit line from the RT and the buffer fills, the printer sends a special code down its transmit line, which the RT receives and interprets as Xoff. The RT then waits until the printer sends an Xon character before it sends more data to the printer. The normal values for Xon and Xoff are 11 and 13 (HEX) respectively. To set up a printer to use Xon/Xoff it is necessary to set "ixp" to true in devices. As mentioned this ignores the "pro" parameter. * In AIX the "splp" command is used for changing the device driver characteristics of both parallel and serial printers. Basically, each printer is set up using the "devices" command which edits all the relevant "/etc/ddi/xxxx" files and configures the device driver. If the print command is used to output files then splp will not be necessary. However, for redirection of files to the device, it may be necessary to alter the device driver settings (eg +plot to pass a file through without altering it in any way). The "splp" command can be used by superuser or any user in the system group to alter the characteristics of a printer device driver interactively. It can also be used to display the current characteristics of a serial or parallel printer device driver. Note: When the "print" command is used with the piobe backend, splp is set to +plot during the printing. Therefore any splp parameters set by the user are ignored. If a file is redirected (e.g. cat filename >/dev/lp0) then the splp settings are active. To display the device driver characteristics of the lp1 printer issue the "splp /dev/lp1" command: # splp /dev/lp1 indent = 0, width = 80, length = 66, timer = 60 seconds +bs +cr +ff +nl +tb -cap -wrap -plot -sync -err -fontinit serial printer: -parenb -parodd -cstopb exta cs8 Parameters can be changed with the splp command in the following form: splp /dev/lp1 width=132 Note: splp will not work for serial printers unless CD is high on the printer port. Therefore the printer must be on-line before the "splp" command is issued. When using splp from the "/etc/rc.include". file so it is important to bear this in mind. NOTE: To include parameters such as "plot" in the "splp" command you must use "+plot" to turn the parameter on and "-plot" to turn the parameter off. This is different to the "piobe" command where the "-" indicates that the parameter is included. * If the '-cp' flag is used with the print command or if output is piped to print, temporary storage of the file to be printed is kept in /usr/spool/qdaemon. For this reason, it is essential that the '/usr' minidisk is large enough to hold the files that are going to be printed. Remote print requests via the lpd daemon are also received in /usr/spool/lpd until queued, then they are stored in /usr/spool/qdaemon. * More documentation on the printing subsystems can be found in: Using the AIX Operating System Chapter 2 - Printing Files The print command is described with it's flags and their meanings and examples are given. Managing the AIX Operating System Chapter 3 - Using the Queuing System This section deals with parts of the queuing system; print, qdaemon, backend and qconfig. It covers these in some depth. Chapter 4 - Managing Printers This short section discusses piobe and the ways in which print can be controlled by the user. ------------------------------ 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 insalled and configured, and to manually edit the /etc/qconfig file for the remote printers. Notes: 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 qconfig file. The printer on this system 'sam' will be called 'rp0'. rp0: argname=rp0 device=drp0 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. * To be allow other systems to utilitze your printers for remote printing is a three step process. 1) Make sure the remote system IP address and name are known. If you are not using domain name service or NIS(YP), make sure that the remote hostname and IP address are listed in /etc/hosts. 2) Insure that the 'lpd' daemon is started. To have it started at boot time, edit /etc/rc.tcpip and uncomment the three lines after 'Start up Print Daemon': # Start up Print Daemon #if [ -f /usr/lpp/tcpip/etc/lpd ]; then # /usr/lpp/tcpip/etc/lpd & echo " lpd\c" >/dev/console #fi Note: The LOCAL printing daemon 'qdaemon' MUST also be started to use remote printing. The 'lpd' daemon just hands off received remote printing requests and files and queues them in the local queues controlled by the qdaemon. 3) Systems allowed to print on your printers MUST be listed in the access file read by the 'lpd' daemon. This file is '/etc/hosts.lpd'. It is a simple ascii file with one line for each hostname that will be using your print queues. Note: If you change this file with 'lpd' running, send a 'kill -2 ' to cause the daemon to re-read the /etc/hosts.lpd file for new authorized hostnames. If using domain name service AND the remote system is NOT in your domain the full domain name of the system MUST be entered. * If using remote printing make sure that TCP/IP updates are installed: - IX03872 located on update 1733 or later, security problems with the lpd daemon. - IX06162 located on update 1734 or later, lpd not cleaning up /usr/spool/lpd temporary files. ------------------------------ 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! ================================================================================ Posted around the first of each month to comp.sys.ibm.pc.rt, and to comp.unix.aix. This FAQ is dedicated to use of the AIX Version 2 operating system, running on the IBM RISC processor known as the RT. The RT is known also as an IBM model 6150 or 6151 machine. For AIX RT submissions E-mail to: aix-rt@antimatr.hou.tx.us For AOS RT submissions E-mail to: aos-rt@antimatr.hou.tx.us For MACH RT submissions E-mail to: mach-rt@antimatr.hou.tx.us For general Q&A submissions (hardware and other stuff) E-mail to: faq-rt@antimatr.hou.tx.us Other comments and correctons should be sent to the author: Mark Whetzel DOMAIN addr: markw@antimatr.hou.tx.us BANG address: ..!uhnix1!lobster!antimatr!markw Daytime work number 8AM-5PM M-F CST VOICE: (713) 963-2544 *** FAQ Continued in part 3 *** ===================== end of ibm-rt-faq/aix-v2/part2 =========================== -- AIX..... NOT just another UNIX. (tm) Mark Whetzel | My own RT system.. My own thoughts.. DOMAIN: markw@antimatr.hou.tx.us | IBM RT/135 running AIX 2.2.1 UUCP ..!menudo!lobster!antimatr!markw | comp.sys.ibm.pc.rt FAQ maintainer.