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 FAQ - Software questions, Part 2 of 3 on software issues when using AIX V2.2.x on IBM RT (615x) computers. Plus general information, hints and tips. Keywords: IBM RT PC software FAQ 6150 6151 6152 AIX VRM AOS MACH PICK Message-ID: Date: 5 Jul 94 03:57:24 GMT Expires: 17 Aug 94 03:56:49 GMT References: Sender: markw@antimatr.hou.tx.us Reply-To: aix-rt@antimatr.hou.tx.us Followup-To: comp.sys.ibm.pc.rt Lines: 1098 Approved: news-answers-request@MIT.Edu Supersedes: Xref: news.lth.se comp.sys.ibm.pc.rt:2922 comp.unix.aix:41902 comp.answers:6162 news.answers:24715 Archive-name: ibm-rt-faq/aix-v2/software/part2 Last-modified: Wed May 18 00:07:21 CDT 1994 Version: 1.2 Frequently Asked Questions for: AIX V2.2.1 on IBM RT systems. System Software topics for AIX/RT. Part 2 of 3 parts. The AIX V2 FAQ currently consists of EIGHT parts in 5 topic areas: AIX V2 FAQ Index and acknowledgements AIX V2 OS Specific hardware issues - in one part (currently). AIX V2 Software questions - in three parts. (This FAQ) AIX V2 Problem Questions and answers - two parts. AIX V2 Porting software notes - in one part currently. See the AIX V2 FAQ index posting for a complete index of the AIX FAQ postings. ================================================================================ 2.0 Software questions (continued). 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. ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== Submitter: "Andrew J V Yeomans" Date: Mon, 25 Apr 94 15:23:44 BST [ I have made a few minor corrections and added some spacing for clarity to a few parts of this submission. - MW ] Crucial step is to change inetlen/r_inetlen to 1500 - otherwise if you interwork with other vendors many things seem to work, but you get network errors, hangs, etc. (The s/w engineers thought wrongly that inetlen should include the header bytes). TCP/IP setup:- vi /etc/master: node="\"?????"\" (Used if kernel rebuilt) chparm nodename=????? (Modifies kernel image) vi /etc/hosts: Add machine names. Ideally add timeserver and nameserver. vi /etc/hosts.equiv: Add any equivalent hostnames. If required. Be aware of security issues with this. vi /etc/rc.include: Uncomment '# sh /etc/rc.tcpip' line vi /etc/rc.tcpip: Change hostname (use full domain name) If NOT using either routing daemons gated or routed, add any needed static routes after setting the hostname. Example: Add 'route add default aaa.bbb.ccc.ddd' to set a gateway IP address. If using distributed services: Add '/usr/bin/hostid `hostname`'. match value in /etc/hosts. vi /etc/net Check/add your network subnetmask to a proper value. Example: 'subnetmask = 255.255.252.0' Change inetlen = 1500, r_inetlen = 1500 on any ethernet interfaces. (needed for NFS to Sun, RS/6000, etc) devices: For telnet logins, must have ptydevs with ae=true, tt=ibm6153, logger=true. For remote execution and X windows, must have ptydevs with ae=false, logger=false. Check Ethernet ('baseband') adapter links: address links as below, interrupt level 4, interrupt rate 18.3 ms normally. Add adapter net0 with addresses matching links: Links: W10 W11 W12 W13 W10 W11 W12 W13 |. |. |. |. __ __ |. |. A15 A16 A17 A18 A15 A16 A17 A18 off off off off on on off off Addresses: rsa = 80000 rsa = 98000 rea = 81fff rea = 99fff brsa = 82000 brsa = 9a000 brea = 87fff brea = 9ffff il1 = 3 il1 = 3 sh /etc/rc.tcpip to start TCP/IP. sh /etc/tcp.clean to stop TCP/IP. ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== ------------------------------ S.18 - How to set up SLIP - TCP/IP over serial lines. Open for adoption and filling in. ------------------------------ S.19 - Configuring NFS on AIX V2. - 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. ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== Submitter: "Andrew J V Yeomans" Date: Mon, 25 Apr 94 15:23:44 BST [ I have made a few minor corrections and added some spacing for clarity to a few parts of this submission. - MW ] [ Warning: Syntax errors in any /etc/rc* file, or /etc/filesystems can potentially make your system not boot up properly, be careful. - MW ] NIS/NFS setup:- vi /etc/rc.nfs: Uncomment NIS and yppasswd lines Set NIS domainname vi /etc/rc.include: Uncomment '# sh /etc/rc.nfs' line vi /etc/passwd: Add line '+::0:0:NIS passwords::' at end. (Note does not work with dummy password +:*:..) vi /etc/group: Add line '+:::' at end. (Or copy from master, to allow root to log in even if NIS not running). [ Note this well.. If you do NOT have group under NIS control, root will be able to login EVEN if network/nis disruption is occuring, otherwise even root logins will hang waiting on NIS server response! - MW ] vi /etc/exports: Create with list of filesystems to be exported and optional flags. vi /etc/filesystems: Manually add nfs filesystems to be mounted, e.g. /home/stc: dev = /home/stc nodename = stc1 type = nfs vfs = nfs mount = true check = false free = true sh /etc/rc.nfs to start NFS/NIS. sh /etc/nfs.clean to stop NFS/NIS. Note nfs mount command is 'mount -v nfs -n hostname hostdir localdir'. 'mount hostname:hostdir localdir' format is not supported. [ If you have the nfs mounts listed in /etc/filesystems, mounts can also be performed by 'mount localdir'. Note also: If you have mount=true, system boot up can hang waiting for nfs server responses. Setting this to false, then issuing 'mount -t nfs' command later can help speed up booting. - MW ] ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== ------------------------------ S.20 - Known outstanding problems with AIX V2, unfixed by IBM. Even with the final update disks applied to the AIX 2.2.1 system there are some unfortunate bugs still lurking. Some can be corrected by replacing the offending code with Public Domain replacements. Others will require more work for repair. * 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). ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== Submitter: "Andrew J V Yeomans" Date: Mon, 25 Apr 94 15:23:44 BST I've got IBM PC-DOS 5.02 to work on an RT. I used DOS 3.3 fdisk to create the pseudo-hard disk of 32 Mb, so that the AIX dosread/doswrite/dos commands would work on it. Only problem; I get grave accent instead of backslash (PCSIM 'wires' these keys together in software, for international keyboard). I failed to get PC-DOS 6 to work. It nearly gets there, but hangs near the end of installation. ==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**== ------------------------------ S.23 - Features of the AIX bourne shell. * 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 ] ================================================================================ *** FAQ Continued in software part 3 *** =============== end of ibm-rt-faq/aix-v2/software/part2 ======================== -- 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 -- 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.