home *** CD-ROM | disk | FTP | other *** search
- Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!sdd.hp.com!swrinde!cs.utexas.edu!mavrick!basto@cactus.org
- From: basto@cactus.org (Luis Basto)
- Newsgroups: comp.unix.aix,news.answers,comp.answers
- Subject: AIX Frequently Asked Questions (Part 2 of 3)
- Summary: This posting contains a list of Frequently Asked Questions
- and their answers about AIX, IBM's version of Unix.
- Keywords: AIX RS/6000 questions answers
- Message-ID: <1452@mavrick.UUCP>
- Date: 16 Aug 93 05:11:10 GMT
- Expires: 15 Sep 93 01:23:45 GMT
- Sender: luis@mavrick.UUCP
- Reply-To: basto@cactus.org (Luis Basto)
- Followup-To: comp.unix.aix
- Lines: 1325
- Approved: news-answers-request@MIT.Edu
- Supersedes: <1442@mavrick.UUCP>
- Xref: senator-bedfellow.mit.edu comp.unix.aix:28917 news.answers:11418 comp.answers:1613
-
- Archive-name: aix-faq/part2
- Last-modified: August 15, 1993
- Version: 2.40
-
-
- Version: $Id: aix.faq,v 2.40 93/08/15 basto $
-
- Frequently Asked Questions to AIX 3.x and IBM RS/6000
- _____________________________________________________
-
- 1.200: Some info about tape backups
- From: Craig Anderson
-
- The following supplements the information on rmt devices in
- InfoExplorer. It is based on my own personal experience with IBM tape
- drives running on AIX 3.1. No warranty is expressed or implied.
-
- CONFIGURING THROUGH SMIT:
- BLOCK size (0=variable length) (ALL)
- Sets the tape block size. When reading, the block size must be
- set to the block size set when the tape was written. When
- using some commands, tapes written with ANY block size can be
- read if the block size is set to 0 (variable length) (see
- "BLOCK SIZES" below).
-
- Use DEVICE BUFFERS during writes (ALL)
- Set to yes, the device will buffer data internally on writes.
- This greatly improves performance, but under certain cases may
- be undesirable since the data is not written to tape before
- returning a good indication.
-
- Use EXTENDED file marks (8mm only)
- Extended file marks take up much more space than short (or
- non-extended) file marks. But extended file marks can be
- overwritten, allowing data not at the beginning of tape to be
- overwritten (see "FILE MARKS" below).
-
- RETENSION on tape change or reset (1/4" only)
- If set to "no" then the tape will not be retentioned
- automatically when the tape is inserted. Note that this will
- take effect only after the device is used.
-
-
- FILE MARKS:
- Tape devices support multiple tape files. Tape files are the
- result of a backup/cpio/tar/dd type command, where the device is
- opened, written to, and closed. Because tapes allow large
- quantities of data to be written on a single tape, several backups
- (that is, tape files), may be combined on one physical tape.
- Between each tape file is a "tape file mark" or simply "file
- mark". These file marks are used by the device driver to indicate
- where one tape file ends and another begins.
-
- B E
- <------- O O ------->
- T T
- __ ____________________________ _______________
- physical | \ | | \ |physical
- beginning| \ | tape | \ | end
- of | \ | file | \ | of
- tape | \ | mark | \ | tape
- |_____\________|_______|__________\_________|
-
- Note that there is a distinction between the beginning of tape
- (BOT) side of a file mark and the end of tape (EOT) side of a file
- mark. If the head is on the BOT side of a file- mark, "tctl fsf
- 1" command will move only to the EOT side of the same file mark.
-
- With the 1/4" tape drive, writing can only take place
- sequentially, or after blank tape has been detected. You cannot
- write over data on the tape (except at BOT). If you wish to add
- data to a tape which has been written and then rewound you should
- space forward file mark until an error occurs. Only then can
- you start writing again.
-
- With an 8mm tape drive, writing can only take place before blank
- tape, an EXTENDED file mark, or at BOT. Thus if several backups
- have been made on one tape and you wish to overwrite one of the
- backups, position the tape to the place you wish to start writing
- and issue the following commands:
- tctl bsf 1
- tctl eof 1
- The first command skips back to the BOT side of the same file
- mark. The second command rewrites the file mark (writing is
- allowed before extended file marks). The erase head will erase
- data ahead of the write head, so that after writing the file mark
- the head will be positioned before blank tape. Only after this
- may you start writing over data in the middle of the tape. (All
- data beyond where you are currently writing will be lost). Note
- that you cannot write over short file marks. In order for this to
- work, the tape must have been written with extended file marks
- (use smit to change this).
-
- With the 9-track drive writing can take place anywhere on the
- tape although overwriting single blocks of data is not supported.
-
- On the 8mm drive extended filemarks use 2.2 megabytes of tape and
- can take up to 8.5 seconds to write. Short filemarks use 184K
- and take up to 1.5 seconds to write.
-
- BLOCK SIZES:
- When data is written to tape it is written in blocks. The blocks
- on a tape are separated by inter-record gaps. It is important to
- understand the structure of the written tape in order to
- understand the problems which can occur with changing block
- sizes.
-
- In fixed block size mode all blocks on the tape are the same
- size. They are the size of the block size set in the device
- configuration. All read()s and write()s to the tape drive must be
- a multiple of the fixed block size.
-
- In fixed block mode a read() will return as many blocks as needed
- to satisfy the read() request. If a file mark is encountered
- while reading the tape only the data up until the file mark will
- be returned.
-
- It is not possible for the tape drive to read a tape whose block
- size is not the same as the block size in the device
- configuration. (Unless the device configuration is in variable
- size blocks.)
-
- In variable block size (0) mode, the blocks written on the tape
- are the size of the read() and write() requests to the device
- driver. In this case, the actual block sizes on the tape can be
- changed using the options to the backup commands (tar -C, cpio -C,
- backup -C).
-
- In variable mode, read() requests greater than size of the block
- on the tape will return only the data from the next block on the
- tape. It is this feature that allows tapes written in any block
- size (fixed or variable) to read with the dd command (the output
- from the dd command may be piped to restore, tar, or cpio for
- example.) Note that backup, tar, and cpio cannot read all tapes
- by using a large block size because they assume there is an error
- if they get a short read().
- dd ibs=128k obs=16k if=/dev/rmt0 | ...
-
- The tape head is always positioned at an inter-record gap, file
- mark, or blank tape after reading or writing.
-
- With the 8mm tape drive, using a fixed block size which is not a
- multiple of 1K is inefficient. The 8mm tape drive always writes
- internally in 1K blocks. It simulates the effect of variable
- block sizes, but, for example, using a fixed block size of 512
- bytes (or using variable block size and write()ing 512 bytes at a
- time) wastes one half of the tape capacity and gives only one half
- the maximum transfer rate.
-
-
- EXCHANGING DATA WITH NON-UNIX AND OTHER VENDORS MACHINES:
- Many tape drives support both variable and fixed block sizes.
-
- Variable block mode writes block sizes the size of the write
- command issued (tar and backup specify this with the -b option).
- In fixed mode, block sizes are fixed and all writes must be a
- multiple of the fixed block size.
-
- Unix often internally chops larger reads and writes up into
- manageable pieces (often 65535, 65534, or 65532 bytes) before
- doing the actual reads and writes. This means reads and writes of
- 64K bytes are often broken up into a 65535 byte record and a 1
- byte record (In fixed mode the write will fail). Block sizes >=
- 64K (-C128 and greater) should be avoided for this reason. AIX
- does not break up read and write requests, but be aware of the
- situation on other machines.
-
- If the tape is written in an unknown block size then set the
- device configuration in smit to use variable size blocks, use the
- "dd" command with a large input block size, and pipe it to the
- restore command. For example:
- chdev -l rmt0 -a block_size=0
- dd if=/dev/rmt0 ibs=128k obs=16k | tar -tvf-
-
-
- 1.201: How do I do remote backup?
-
- There seems to be several ways of doing this. I found the following works:
-
- tar -b1 -cf - . | rsh REMOTEHOST "dd ibs=512 obs=1024 of=/dev/TAPEDEVICE"
-
-
- From: kraemerf@franvm3.VNET.IBM.COM (Frank Kraemer)
-
- mksysb will not back up to remote tape devices. Frank provided the
- following script to do remote backups.
-
- [Editor's note: I've verified this script works fine. However, it may be slow
- for large filesystems since it creates a temp file of filenames in /tmp.]
-
- #!/bin/ksh
- # @(#) Create a backup tape of the private user data.
- #=================================================================#
- # Script : usave.sh #
- # Author : F. Kraemer #
- # Date : 92/02/19 #
- # Update : 92/10/29 #
- # Info : the ultimative backup script #
- # Example: usave.sh /dev/rmt0 - save to local tape #
- # usave.sh /save/save.me - save to local file #
- # usave.sh /tmp/pipe - save to remote tape #
- #-----------------------------------------------------------------#
- PS4="(+) "
- #set -x
- PROG=$(basename $0)
- HOST=$(hostname)
- TODAY=$(date +%H:%M:%S)
- #-----------------------------------------------------------------#
- # cleanup #
- #-----------------------------------------------------------------#
- cleanup ()
- {
- ec=$1
- error=$2
- case "$ec"
- in
- "$USAGE_EC") # usage error
- error="Usage:\t$PROG DeviceName\n" 1>&2
- ;;
- "$NOTAP_EC") # Tape error
- error="error:\t$PROG: $DEVICE is not available on the system.\n" 1>&2
- ;;
- "$LISTE_EC") # list error
- error="error:\t$PROG: could not create tar list for $LOGNAME.\n" 1>&2
- ;;
- "$NOTAR_EC") # tar command error
- error="error:\t$PROG: tar command failed.\n" 1>&2
- ;;
- "$PIPEP_EC") # pipe error
- error="error:\t$PROG: mknod command failed.\n" 1>&2
- ;;
- "$NORSH_EC") # rsh error
- error="error:\t$PROG: rsh - Remote Shell command failed.\n" 1>&2
- ;;
- "$RHOST_EC") # remote host error
- error="error:\t$PROG: Remote Host unknown.\n" 1>&2
- ;;
- *)
- ;;
- esac
- case "$DEVICE"
- in
- #
- # Fix the block size if $DEVICE is a tape device
- #
- /dev/rmt[0-9]*)
- echo "\n\t$PROG: Rewinding tape to begin.........(please wait)\n"
- tctl -f $DEVICE rewind 2>/dev/null
- ;;
- *) ;;
- esac
- rm -f ${LIST} ${PIPE} 2>/dev/null
- [ -n "$error" ] && echo "\n${error}\n"
- trap '' 0 1 2 15
- exit "$ec"
- }
- #-----------------------------------------------------------------#
- # Variables. #
- #-----------------------------------------------------------------#
- USAGE_EC=1 # exit code for usage error
- NOMNT_EC=2 # exit code wrong device name
- NOTAP_EC=3 # exit code no tape available
- LISTE_EC=4 # exit code backup list error
- NOTAR_EC=5 # exit code for wrong tar
- TRAPP_EC=6 # exit code for trap
- PIPEP_EC=7 # exit code for pipe
- RHOST_EC=8 # exit code for bad ping
- NORSH_EC=9 # exit code for bad rsh
- DEVICE="$1" # device to tar into
- LIST="/tmp/.tar.$LOGNAME.$$" #
- REMOTEH="" # Remote host for backup
- REMOTET="" # Remote tape for backup
- tapedev= #
- PIPE="/tmp/pipe" # Pipe for remote backup
- #-----------------------------------------------------------------#
- # main() #
- #-----------------------------------------------------------------#
- tput clear
- echo "\n\t$PROG started from $LOGNAME@$HOST on $TERM at $TODAY.\n"
- rm -f $LIST 2>/dev/null
- #-----------------------------------------------------------------#
- # Trap on exit/interrupt/break to clean up #
- #-----------------------------------------------------------------#
- trap "cleanup $TRAPP_EC \"Abnormal program termination. $PROG"\" 0 1 2 15
- #-----------------------------------------------------------------#
- # Check command options #
- #-----------------------------------------------------------------#
- [ "$#" -ne 1 ] && cleanup "$USAGE_EC" ""
- #-----------------------------------------------------------------#
- # Check device name #
- #-----------------------------------------------------------------#
- [ `expr "$DEVICE" : "[/]"` -eq 0 ] && cleanup "$NOMNT_EC" \
- "$PROG: Backup device or file name must start with a '/'."
- #-----------------------------------------------------------------#
- # Check tape device. #
- #-----------------------------------------------------------------#
- case "$DEVICE"
- in
- #
- # Fix the block size if $DEVICE is a tape device
- #
- /dev/rmt[0-9]*)
- #
- echo "\n\t$PROG: Verify backup media ($DEVICE)............\n"
- #
- # see if a low or high density tape device was specified
- # (eg rmt0.1)
- density="`expr $DEVICE : \
- "/dev/rmt[0-9]*\.\([0-9]*\)"`"
- #
- # strip /dev/ from device name and
- # get the base name (eg translate:
- # /dev/rmt0.2 to rmt0)
- #
- tapedev="`expr $DEVICE : \
- "/dev/\(rmt[0-9]*\)[\.]*[0-9]*"`"
- #
- # Check if the tape is defined in the system.
- lsdev -C -c tape -S Available -F "name" | grep $tapedev >/dev/null 2>&1
- rc=$?
- [ "$rc" -ne 0 ] && cleanup "$NOTAP_EC" ""
- #
- # Restore old tape name.
- #
- [ "${density:-1}" -lt 4 ] && density=1 || density=5
- DEVICE="/dev/${tapedev}.${density}"
- echo "\n\t$PROG: Insert a tape in ($DEVICE)........(press enter)\n"
- read TEMP
- echo "\n\t$PROG: Rewinding tape to begin...........(please wait)\n"
- tctl -f $DEVICE rewind 2>/dev/null
- ;;
- #
- # Backup is done on remote host. The remote shell facility
- # must be set up and running.
- #
- ${PIPE}*)
- #
- echo "\n\t$PROG: Assuming remote backup via network.\n"
- echo "\t$PROG: Enter name of Remote Host ===> \c"
- read REMOTEH
- echo "\n\t$PROG: Pinging Remote Host to test connection.\n"
- ping ${REMOTEH} 1 1 >/dev/null 2>&1
- rc=$? # give up unknown host
- [ "$rc" -ne 0 ] && cleanup "$RHOST_EC" ""
- JUNK=$(rsh ${REMOTEH} "/usr/sbin/lsdev -C -c tape -S Available")
- rc=$? # give up rsh failed
- [ "$rc" -ne 0 ] && cleanup "$NORSH_EC" ""
- echo "\t$PROG: Available Tapes on ${REMOTEH} are :\n\n\t\t${JUNK}\n"
- echo "\t$PROG: Enter name of Remote Tape (e.g. /dev/rmt0) ===> \c"
- read REMOTET
- echo "\n\t$PROG: Insert tape on ${REMOTEH} in ${REMOTET}..(press enter)"
- read TEMP
- echo "\t$PROG: Rewinding Remote Tape ${REMOTET} on ${REMOTEH}.\n"
- rsh ${REMOTEH} "tctl -f ${REMOTET} rewind"
- rc=$? # give up rsh failed
- [ "$rc" -ne 0 ] && cleanup "$NOTAP_EC" ""
- rm -f ${PIPE} 2>/dev/null
- mknod ${PIPE} p
- rc=$? # give up mknod failed
- [ "$rc" -ne 0 ] && cleanup "$PIPEP_EC" ""
- cat ${DEVICE} | rsh ${REMOTEH} "dd of=${REMOTET} obs=100b 2>/dev/null" &
- ;;
- *) ;;
- esac
- #-----------------------------------------------------------------#
- # Prepare the list. #
- #-----------------------------------------------------------------#
- echo "\n\t$PROG: Create list of files to be saved...."
- find $HOME -print > $LIST
- rc=$?
- [ "$rc" -ne 0 ] && cleanup "$LISTE_EC" ""
- #-----------------------------------------------------------------#
- # tar the files. #
- #-----------------------------------------------------------------#
- echo "\n\t$PROG: Changing current directory to (/)...."
- cd / > /dev/null 2>&1
- echo "\n\t$PROG: Running tar format backup from user ($LOGNAME)...."
- tar -cvf "$DEVICE" -L "$LIST"
- rc="$?"
- [ "$rc" -ne 0 ] && cleanup "$NOTAR_EC" ""
- #-----------------------------------------------------------------#
- # Backup completed #
- #-----------------------------------------------------------------#
- TODAY=$(date +%H:%M:%S)
- echo "\n\t$PROG ended at $TODAY............................\n\n"
- cleanup 0
- #-----------------------------------------------------------------#
- # EOF #
- #-----------------------------------------------------------------#
-
-
- 1.202: How do I backup a multi-disk volume group?
- From: pack@acd.ucar.edu (Daniel Packman)
-
- [ Editor's note: I have not verified this procedure. I would actually
- recommend NOT to have one volume group span multiple disks unless you
- really need such big logical volumes. ]
-
- 1. If you have a set of three or more disks in a volume group.
- (typically 3 for 5xx machines with three internal drives;
- with only two, the procedures outlined here have to be modified
- to ignore the fact that you don't have a quorum in the volume group)
-
- 2. If one drive has failed (usually only one fails at a time :-) )
-
- It is possible to go through a service boot and (if we say the volume
- group is called rootvg and one of the 2 good disks on it is called hdisk0):
-
- importvg -y rootvg hdisk0
- varyonvg -f -n -m1 rootvg
-
- These commands will work, but give error messages. If you wish to mount
- a user filesystem, say /u on logical volume /dev/lv00, then
-
- mount -f /dev/lv00 /v
-
- will work only if the jfslog, the journaled file system log device, is not
- on the damaged disk. If it is, you must (and can in any case) mount the
- filesystem read-only:
-
- mount -f -r /dev/lv00 /v
-
- This crucial and rather obvious point baffled several level 3 support
- personnel at Austin as well as myself for almost a week. Once the file
- system(s) of interest are available, then they can be saved to tape for
- restoration later. Of course, one can expect only about two thirds of a
- filesystem to be recoverable if it spans all 3 physical disks. One
- other point to remember is that the standard boot procedure from floppy
- includes the restore command but does not include the backup command.
-
- *****************************************************************************
- * If you do not have other RS6000 machines at your site is is imperative *
- * that you either build a bootable tape which includes either restore or *
- * tar or cpio (a bootable floppy set will not have enough space) or at the *
- * very least copy onto a spare floppy backup, cpio, or tar. The floppy *
- * should be created with backup -ivq so that its contents can be read into *
- * the memory resident system after booting. *
- *****************************************************************************
-
- All is not lost if tar, cpio or backup are available on an undamaged
- disk that can be mounted. Since tar and cpio are in /bin, they may both
- very well be unavailable.
-
- It is a very good idea for those who have tape devices to build a
- bootable tape with their desired extra commands in it. Follow the
- instructions from IBM but add your desired commands to the following
- three files:
-
- /usr/lpp/bosinst/tape2
- /usr/lpp/bosinst/diskette/boot2
- /usr/lpp/bosinst/diskette/inslist
-
- If you have anything other than a minimum memory configuration, you
- should be able to add many commands.
-
-
- 1.203: How do I put multiple backups on a single 8mm tape?
- From: kerm@mcnc.org (Cary E. Burnette)
-
- There are two possible solutions to this, which both use the /dev/rmt0.1
- device which is non-rewinding.
-
- SOLUTION #1
- -----------
-
- To put multiple backups on a single tape, use /dev/rmt0.1, which is a
- no-rewind device, using either rdump or backup (both by name & inode
- work). Using rdump or backup "byinode" both generate the message that
- the tape is rewinding but actually do not. This is an example that
- would work on my system:
-
- # rsh remote1 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
- # rsh remote2 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
- # tctl -f /dev/rmt0.1 rewind # rewinds the tape
-
- where I am implementing the command from host.
- To restore a table of contents of the first I would use
-
- # restore -f /dev/rmt0.1 -s1 -tv
-
- where the -s1 flag tells restore to go to the first record it comes
- across on the tape. To get the second type in exactly the same once
- again. Basically -s(Number) stands for - go to Number record from this
- spot. It works pretty well.
-
-
- SOLUTION #2
- -----------
-
- Steve Knodle
- Educational Resources Center
- Clarkson University
-
- I use:
- ------------------- Dump.sh --------------------
- CONTENTSFILE=`date |dd conv=lcase |sed -e 's/19//' |awk '{print $6 $2 $3}'`
- set -x
- LEVEL=$1
- shift
-
- backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /
- backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /usr
- backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /u
- tctl -f /dev/rmt0 rewind
-
- touch /usr/local/dumps/Contents.$CONTENTSFILE
- echo "Dumping /" >>/usr/local/dumps/Contents.$CONTENTSFILE
- restore -t -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
- echo "Dumping /usr" >>/usr/local/dumps/Contents.$CONTENTSFILE
- restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
- echo "Dumping /u" >>/usr/local/dumps/Contents.$CONTENTSFILE
- restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
- tctl -f /dev/rmt0 rewind
-
- I process the table-of-contents first by a little program that does
- common prefix encoding, and then compress.
-
- This gives a table of contents file I can keep on-line until the tape
- is reused.
-
-
- 1.204: How can I make an exact duplicate of a tape over the network?
-
- The challenge here is not to have to create a temporary file (disk space
- limitation) and work across heterogeneous networks.
-
- This script might work:
-
- LOCAL=/dev/tape_dev
- REMOTE=/dev/tape_dev
- dd if=$LOCAL ibs=64k obs=512 | rsh remote_host dd ibs=512 obs=64k of=$REMOTE
-
-
- From: pack@acd.ucar.edu (Daniel Packman)
-
- Daniel provides the following perl script to convert from the known
- world's function codes to AIX for compatibility.
-
- #!/bin/perl
- # Wrapper to convert input rmt requests to
- # AIX 3.2 ioctl numbers. We pass on all commands we don't understand
- # I0 MTWEOF -> I10 STWEOF write and end-of-file record
- # I1 MTFSF -> I11 STFSF forward space file
- # I2 MTBSF -> I12 STRSF reverse space file
- # I3 MTFSR -> I13 STFSR forward space record
- # I4 MTBSR -> I14 STRSR reverse space record
- # I5 MTREW -> I6 STREW rewind
- # I6 MTOFFL -> I5 STOFFL rewind and unload tape
- # I7 MTNOP -> I0 (no-op? should ignore following count)
- # I8 MTRETEN-> I8 STRETEN retension tape, leave at load point
- # I9 MTERASE-> I7 STERASE erase tape, leave at load point
- #I10 MTEOM (position to end of media ... no ibm equivalent?)
- #I11 MTNBSF (backward space file to BOF ... no ibm equivalent?)
- @iocs = (10,11,12,13,14,6,5,0,8,7);
- open(RMT,"|/usr/sbin/rmt") || die "Can't open pipe to rmt\n";
- select(RMT);
- $| = 1;
- while (<STDIN>) {
- s/(^I)(\d$)/I$iocs[$2]/;
- exit 0 if $_ =~ /^[Qq]/;
- print RMT $_ ; }
- exit 0;
-
- ______________________________________________________________________________
- 1.300: Some info about the memory management system
- From: Michael Coggins (MCOG@CHVM1.VNET.IBM.COM).
-
- The following questions are answered in this document:
- 1. Does AIX use more paging space than other unix systems?
- 2. How much paging space do I need?
- 3. Why does vmstat show no free RAM pages?
- 4. Since vmstat shows no free RAM pages, am I out of RAM?
- 5. Shouldn't the "avm" and the "fre" fields from vmstat add up to
- something?
- 6. Why does the "fre" field from vmstat sometimes show lots of free
- RAM pages?
- 7. Is the vmstat "fre" field useful?
-
-
- 1. Does AIX use more paging space than other unix systems?
-
- Under many scenarios, AIX requires more paging space than other unix
- systems. The AIX VMM implements a technique called "early allocation of
- paging space". When a page is allocated in RAM, and it is not a
- "client" (NFS) or a "persistent" (disk file) storage page, then it is
- considered a "working" storage page. Working storage pages are commonly
- an application's stack, data, and any shared memory segments. So, when
- a program's stack or data area is increased, and RAM is accessed, the
- VMM will allocate space in RAM and space on the paging device. This
- means that even before RAM is exhausted, paging space is used. This
- does not happen on many other unix systems, although they do keep track
- of total VM used.
-
- Example 1:
- Workstation with 64mb RAM is running only one small application that
- accesses only a few small files. Everything fits into RAM, including
- all accessed data. On AIX, some paging space will already be used. On
- other unix systems, paging space will be 100 percent free. Clearly,
- this is an example that shows where we use more paging space than the
- other machines.
-
- Example 2:
- Same machine as above, except we are running in an environment where
- many applications are running, and RAM is "overcommitted" (there is not
- enough RAM). Also, in this environment, the system is running
- applications that are started, run, left idle, and not in constant use.
- A session of FRAME running in a window, for example. What happens is
- that eventually (theoretically) all applications will be paged out at
- least once. On the AIX system and the other systems the total paging
- requirements will be the same (assuming similar malloc algorithm). The
- major difference is that the AIX system allocated the paging space pages
- before they were actually needed, and the other systems did not allocate
- them until they were needed. However, most other systems have an
- internal variable that gets incremented as virtual memory pages are
- used. AIX does not do this. This can cause the AIX system to run out
- of paging space (virtual memory), even though malloc() continues to
- return memory. This "feature" allows sparse memory segments to work,
- but requires that all normal users of malloc() (sbrk()) know how much
- virtual memory will be available (actually impossible), and to handle a
- paging space low condition. A big problem. There are some pretty
- obvious pros and cons to both methods of doing Virtual Memory.
-
- 2. How much paging space do I need?
-
- Concerning the rule of thumb of having 2 times RAM for paging space:
- this is rather simplistic, as are most "rules of thumb". If the machine
- is in a "persistent storage environment", meaning that they have a few
- small programs, and lots of data, they may not need even as much as 1
- times RAM for paging space. For example, a 1GB database server running
- on a RISC System/6000 with 256MB of RAM, and only running about 50MB of
- "working" storage does not need 512MB of paging space, or even 256MB of
- paging space. They only need the amount of paging space that will allow
- all their working storage to be paged out to disk. This is because the
- 1GB database is mostly "persistent storage", and will require little or
- no paging space. Excessive paging space may simply mean wasted disk
- space. However, avoid insufficient paging space. Tip: Don't have more
- than one paging space per disk. Tip: Put lots of RAM in your System -
- it will use it.
-
- 3. Why does vmstat show no free RAM pages?
-
- AIX uses RAM as a possibly huge disk buffer. If you read a file in the
- morning, that file is read into RAM, and left there. If no other
- programs need that RAM, that file will be left in RAM until the machine
- is halted. This means that if you need the file again, access will be
- quick. If you need that RAM, the system will simply use the pages the
- file was using. The pages were flushed back to disk earlier. This
- means that you can get a huge speedup in disk access if you have enough
- RAM. For example, a 200MB database will just ease into RAM if you have
- a 256MB system.
-
- 4. Since vmstat shows no free RAM pages, am I out of RAM?
-
- Probably not. Since disk files will be "mapped" into RAM, if vmstat
- shows lots of RAM pages FREE, then you probably have too much RAM (not
- usual on a RISC System/6000)!
-
- 5. Shouldn't the "avm" and the "fre" fields from vmstat add up to something?
-
- No. The "avm" field tells you how much "Active Virtual Memory" AIX
- thinks you are using. This will closely match the amount of paging
- space you are using. This number has *ABSOLUTELY* nothing to do with
- the amount of RAM you are using, and does *NOT* include your mapped
- files (disk files).
-
- 6. Why does the "fre" field from vmstat sometimes show lots of free
- RAM pages?
-
- This will happen after an application that used a lot of RAM via "working"
- storage (not NFS storage, and not disk file or "persistent" storage) exits.
- When RAM pages that were used by working storage (a program's stack and
- data area) are no longer needed, there is no need to leave them around.
- AIX completely frees these RAM pages. The time to access these pages
- versus a RAM page holding a "sync'd" mapped file is almost identical.
- Therefore, there is no need to periodically "flush" RAM.
-
- 7. Is the vmstat "fre" field useful?
-
- The vmstat "fre" field represents the number of free page frames. If
- the number is consistently small (less than 500 pages), this is normal.
- If the number is consistently large (greater than 4000 pages), then you
- have more memory than you need in this machine.
-
-
- 1.301: How much should I trust the ps memory reports?
- From: chukran@austin.VNET.IBM.COM
-
- Using "ps vg" gives a per process tally of memory usage for each running
- process. Several fields give memory usage in different units, but these
- numbers do not tell the whole story on where all the memory goes.
-
- First of all, the man page for ps does not give an accurate description
- of the memory related fields. Here is a better description:
-
- RSS - This tells how much RAM resident memory is currently being used
- for the text and data segments for a particular process in units of
- kilobytes. (this value will always be a multiple of 4 since memory is
- allocated in 4 KB pages).
-
- %MEM - This is the fraction of RSS divided by the total size of RAM for
- a particular process. Since RSS is some subset of the total resident
- memory usage for a process, the %MEM value will also be lower than actual.
-
- TRS - This tells how much RAM resident memory is currently being used
- for the text segment for a particular process in units of kilobytes.
- This will always be less than or equal to RSS.
-
- SIZE - This tells how much paging space is allocated for this process
- for the text and data segments in units of kilobytes. If the executable
- file is on a local filesystem, the page space usage for text is zero.
- If the executable is on an NFS filesystem, the page space usage will be
- nonzero. This number may be greater than RSS, or it may not, depending
- on how much of the process is paged in. The reason RSS can be larger is
- that RSS counts text whereas SIZE does not.
-
- TSIZ - This field is absolutely bogus because it is not a multiple of 4
- and does not correlate to any of the other fields.
-
- These fields only report on a process text and data segments. Segment
- size which cannot be interrogated at this time are:
-
- Text portion of shared libraries (segment 13)
-
- Files that are in use. Open files are cached in memory as
- individual segments. The traditional kernel cache buffer
- scheme is not used in AIX 3.
-
- Shared data segments created with shmat.
-
- Kernel segments such as kernel segment 0, kernel extension
- segments, and virtual memory management segments.
-
- Speaking of kernel segments, the %MEM and RSS report for process zero
- are totally bogus for AIX 3.1. The reason why RSS is so big is that the
- kernel segment zero is counted twice. For AIX 3.2, this has been
- changed, but the whole story is still not known. The RSS value for
- process 0 will report a very small number of the swapper private data
- segment. It does not report the size of the kernel segment 0, where the
- swapper code lives.
-
- In summary, ps is not a very good tool to measure system memory usage.
- It can give you some idea where some of the memory goes, but it leaves
- too many questions unanswered about the total usage.
-
- ______________________________________________________________________________
- 1.400: How do I make an informative prompt in the shell?
-
- In the Korn Shell (ksh), the PS1 variable is expanded each time it is
- printed, so you can use:
-
- $ myhost=`hostname`
- $ PS1='$LOGNAME@$myhost $PWD \$ '
-
- to get, e.g.
-
- bengsig@ieibm1 /u/bengsig $
-
- In the C-shell, use:
-
- % set myhost=`hostname`
- % alias cd 'chdir \!*' > /dev/null; set prompt="$LOGNAME@$myhost $cwd % "'
- % cd
-
- to get, e.g.
-
- bengsig@dkunix9 /u/bengsig/aixfaq %
-
- There is no easy solution in the Bourne Shell. Use the Korn Shell instead.
-
-
- 1.401: How do I set up ksh for emacs mode command line editing?
- From: scotte@cdsac.uucp (L. Scott Emmons)
-
- The ksh has an undocumented way of binding the arrowkeys to the emacs
- line editing commands. In your .kshrc, add:
-
- alias __A=^P
- alias __B=^N
- alias __C=^F
- alias __D=^B
- alias __H=^A
-
- Note that "^P" (et al) must be the actual control sequence.
-
- Type "set -o emacs" or put this line in your .profile.
-
- Also, you MUST have PTF U406855 for this to work in AIX 3.2. The APAR #
- for the problem is IX25982, which may have been superceded.
-
-
- 1.402: Listing files with ls causes a core dump
- From: John F Haugh II
-
- Scenario: a directory that is shared by N users (N >= 200).
- Run 'ls -l' in that directory. It goes for a while, then
- Seg fault(coredump)!
- It only occurs when the usernames are displayed (almost every file
- is owned by a different person). The -g and -n options work fine;
- only -l and -o (which shows owner and not group) cause it.
-
- I believe that this problem was corrected by U407548.
- If you have that many users that you are having core dump problems (it
- took over 200 ...), you might also want to look into getting the PTF
- that fixes IX31403. That APAR deals with large numbers of accounts and
- performance problems associated with looking them up.
-
-
- 1.403: How do I put my own text into InfoExplorer?
-
- With AIX 3.1, you cannot do it. AIX 3.2 has a product called
- InfoCrafter that allows you to do that.
-
-
- 1.404: InfoExplorer ASCII key bindings
- From: mycroft@hal.gnu.ai.mit.edu (Charles Hannum)
-
- If you just press 'Return' when it starts up, with 'Basic Screen
- Operations' highlighted, you'll get some help.
-
- If you look long enough, you'll find a page named 'Using Keys and Key
- Sequences in the InfoExplorer ASCII Interface'. It describes the key
- sequences and actions. Here are a few to get you started.
-
- Keys Action
-
- Ctrl-W Moves between the Navigation screen and the Reading screen.
- If the Navigation screen is displayed, you can press Ctrl-W to display
- the Reading screen. If the Reading screen is displayed, you can press
- Ctrl-W to display the Navigation screen.
-
- Ctrl-O Makes the menu bar active or inactive. If your text cursor is
- located in the text area of the screen, you can press Ctrl-O to make the
- menu bar active. If the menu bar is already active, you can press
- Ctrl-O to make it inactive, which moves the text cursor to the text area.
-
- Tab Moves to the next menu bar option in the menu bar. If a pull-down
- menu is not displayed and you press the Right Arrow key, the next menu
- bar option is displayed in reverse video.
-
-
- 1.405: How can I add new man pages to the system?
- From: horst@faui63.informatik.uni-erlangen.de (Horst Luehrsen)
-
- Put the man pages in /usr/man, e.g. /usr/man/man1/tcsh.1 for the tcsh
- man page. Unter AIX 3.1.10, /usr/lib/makewhatis can be used to update
- the makewhatis-database /usr/man/whatis so apropos and whatis know about
- the added manpages. /usr/lib/makewhatis should be available on all 3.2
- versions.
-
- ______________________________________________________________________________
- 1.500 Which release of X11 do I have?
-
- Run 'lslpp -h X11rte.obj'.
- If your output has a line similar to:
-
- 01.02.0000.0000 COMPLETE COMMIT 03/04/93 02:05:11 root
-
- you have X11 R4. If your output has a line similar to:
-
- U491068 01.02.0003.0000 COMPLETE COMMIT 07/28/93 12:50:42 root
-
- you have X11 R5.
- Some people also call these AIXwindows 1.2.0 and 1.2.3.
-
-
- 1.501: How to prevent ctrl-alt-backspace from killing the X session
-
- Start X with 'xinit -T' to disable ctrl-alt-backspace from stopping X.
-
-
- 1.502: Who has a termcap/terminfo source for the HFT console?
-
- The console used on the RISC System/6000, PS/2 and RT can be used as a
- terminal on another system with the termcap below. You can find this
- and other termcaps in /lib/libtermcap/termcap.src, including IBM
- specific ones. The terminfo sources are stored in /usr/lib/terminfo/*.ti.
- This termcap can also be used from an aixterm window.
-
- hf|hft|hft-c|ibm8512|ibm8513|IBM_High_Function_Terminal:\
- :co#80:li#25:am:ht:\
- :cm=\E[%i%d;%dH:ti=\E[25;1H:te=\E[20h:\
- :nd=\E[C:up=\E[A:do=^J:ho=\E[H:\
- :bs:sf=\E[S:ec=\E[%dX:\
- :cl=\E[H\E[J:cd=\E[J:ce=\E[K:\
- :AL=\E[%dL:DL=\E[%dM:al=\E[L:dl=\E[M:\
- :im=\E[4h:ei=\E[4l:mi:\
- :dm=\E[4h:ed=\E[4l:\
- :so=\E[7m:se=\E[m:ul=\E[4m:ue=\E[m:\
- :md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:\
- :as=^N:ae=^O:sc=\E[s:rc=\E[u:\
- :kl=\E[D:kb=^H:kr=\E[C:ku=\E[A:kd=\E[B:kh=\E[H:\
- :kn#10:k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
- :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k0=\E[010q:\
- :is=\Eb\E[m^O\E[?7h:rs=\Eb\E[m^O\E[?7h\E[H\E[J:
-
-
- 1.503: How can I look at PostScript files? Why is "dpsexec" so lousy?
- From: VRBASS@ATLVMIC1 (Vance R. Bass)
-
- You can look at PostScript files using either "xpreview" (which
- comes with the operating system in the optionally installable text
- formatting services) or you can get Ghostscript and Ghostview from a
- comp.sources.x server and build it yourself.
-
- >From the "xpreview" man page:
- The xpreview command is an AIXwindows 1.2- and Motif 1.1-based application
- that displays output from the troff command on an AIXwindows display. The
- The troff command output file must be prepared for any one of the devX100,
- devX100K or devpsc devices. The xpreview command also displays PostScript
- language files that begin with %! (percent sign and exclamation mark).
-
- "dpsexec" is NOT intended to be a full-service document browser, but
- rather a simple DPS code debugger. If you insist on using it, you can
- edit your PS code to remove the "showpage" (which will reset dpsexec
- and clear the window) to view single-page files. It does not handle
- multi-page files gracefully.
-
-
- 1.504: unix:0 vs `hostname`:0
-
- 1.) Is there any way to get the machine to check its local host table
- first without renaming resolv.conf?
-
- From: mcguire@selway.umt.edu (Charles J McGuire)
-
- Not that I know of. Under SunOS and Ultrix you can specify, check
- /etc/hosts, then NIS, then DNS. On our AIX machines, I have a cron job
- that checks the integrity of both the primary and secondary
- nameservers every 5 minutes. If they're gone, the cron pgm renames
- resolv.conf. The pgm continues to check the servers. When they're
- back, it moves resolv.conf back. Even with this arrangement, I need
- to configure two resolv.conf files that switch the order of the
- primary and secondary servers if the primary goes away. If the
- primary is unavailable, queries can still take a while to time out on
- the primary, before querying the secondary. This method is not very
- elegant, but it does the job. Things are a little unstable during the
- transitions depending on when the servers go away relative to when the
- cron pgm runs - not to mention slight differences in clock times.
-
- 2.) How do you tell X applications where you are if the console display
- is unix:0?
-
- From: crow@waterloo.austin.ibm.com (David L. Crow)
-
- I would suggest that if you have R5, use ":<display>.<screen>". I do
- not believe that R4 clients will understand :0, so I would suggest
- unix:0 for them.
-
- Without specifying unix or the hostname, you will get the fastest
- transport mechanism. While currently there are only two transport
- methods in the AIXwindows X server (Unix sockets and TCP sockets),
- many vendors are looking at using shared memory as a transport method.
- If you use :0 (or :0.0 or :1, etc.), then you should get the best
- performance regardless of the available transport methods.
-
- 3.) Is there a significant performance penalty incurred by
- using `hostname`:0 as DISPLAY?
-
- Yes! Using unix:0, you are using Unix sockets. These are much faster
- than their TCP socket counterparts.
-
-
- 1.505: VT100 key bindings for aixterm
- From: haedener@iac.unibe.ch (Konrad Haedener)
-
- Add this to your .Xdefaults file and start your VAX session with
- 'aixterm -v -name vt100 -e telnet MYVAXHOST'
-
- -----
- vt100.foreground: Wheat
- vt100.background: MidnightBlue
- vt100.font: Rom14.500
- vt100.geometry: 80x25+0+0
- vt100.vt102: true
- vt100.fullcursor: false
- vt100.pointerColor: coral
- vt100.cursorColor: gray100
- vt100.translations: <Key>F1: string(0x1b) string("OP") \n\
- <Key>F2: string(0x1b) string("OQ") \n\
- <Key>F3: string(0x1b) string("OR") \n\
- <Key>F4: string(0x1b) string("OS") \n\
- <Key>KP_0: string(0x1b) string("Op") \n\
- <Key>KP_1: string(0x1b) string("Oq") \n\
- <Key>KP_2: string(0x1b) string("Or") \n\
- <Key>KP_3: string(0x1b) string("Os") \n\
- <Key>KP_4: string(0x1b) string("Ot") \n\
- <Key>KP_5: string(0x1b) string("Ou") \n\
- <Key>KP_6: string(0x1b) string("Ov") \n\
- <Key>KP_7: string(0x1b) string("Ow") \n\
- <Key>KP_8: string(0x1b) string("Ox") \n\
- <Key>KP_9: string(0x1b) string("Oy") \n\
- <Key>KP_Divide: string(0x1b) string("OQ") \n\
- <Key>KP_Multiply: string(0x1b) string("OR") \n\
- <Key>KP_Subtract: string(0x1b) string("OS") \n\
- <Key>KP_Add: string(0x1b) string("Om") \n\
- <Key>KP_Enter: string(0x1b) string("OM") \n\
- <Key>KP_Decimal: string(0x1b) string("On") \n\
- <Key>Next: string(0x1b) string("Ol") \n\
- <Key>Left: string(0x1b) string("OD") \n\
- <Key>Up: string(0x1b) string("OA") \n\
- <Key>Right: string(0x1b) string("OC") \n\
- <Key>BackSpace : string(0x7f) \n\
- <Key>Down: string(0x1b) string("OB")
-
- You should also add
-
- XENVIRONMENT=$HOME/.Xdefaults
- export XENVIRONMENT
-
- to your .profile.
-
- ______________________________________________________________________________
- 1.600: My named dies frequently, why?
-
- Running on 3.2, named dies frequently on network's primary name server.
-
- From: jpe@ee.egr.duke.edu (John P. Eisenmenger)
-
- Try the following:
-
- stopsrc -s named # stop running named
- setenv MALLOCTYPE 3.1 # use 3.1 memory allocation algorithm
- /etc/named ... # don't use smit to start named
-
- You might be able to use startsrc/smit after setting MALLOCTYPE and get
- the same effect, but I'm not sure.
-
- [According to John, the problem is malloc() in the named code. He
- also suggests using Berkeley's bind, which he has ported and can be
- ftp'ed from ftp.egr.duke.edu, /archives/network/bind-4.8.3.tar.Z. -ed]
-
- Two ptfs should fix this problem. Get U412332 and U414752.
-
-
- 1.601: How do I trace ethernet packets on an AIX system?
- From: afx@muc.ibm.de (Andreas Siegert)
-
- Do the following:
-
- iptrace -i en0 /tmp/ipt
-
- The iptrace backgrounds. Find its process id and kill it when you are
- ready. Then run
-
- ipreport -rns /tmp/ipt >/tmp/ipr
-
- and look at the output. The current version of Info does not document
- the r, n and s options but they are quite useful for layering the output.
-
-
- 1.602 What is the authorized way of starting automount at boot time?
- From: curt@ekhadafi.austin.ibm.com (Curt Finch)
-
- I put this in my /etc/inittab:
-
- automount:2:once:/usr/etc/automount -T -T -T -v >/tmp/au.se 2>&1
-
- I hereby dub it authorized.
-
-
- 1.603: How do I set a tty port for both dial-in and dial-out?
-
- Set the mode of the tty to be either 'shared' or 'delayed'.
-
-
- 1.604: How to move or copy whole directory trees across a network
-
- The following command will move an entire directory tree across a network
- while preserving permissions, uids and gids.
-
- $rsh RemoteHost "cd TargetDir; tar -cBf - ." | tar -xvBf -
-
- Explanation:
-
- The tar-create is rsh'd to the remote system and is written to
- stdout (the pipe).
-
- The local system is extracting the tar that is being read from
- stdin (the pipe).
-
-
- 1.605: How can I send mail to hosts that cannot be pinged?
- From: jupiter.sun.csd.unb.ca!dedourek (John DeDourek)
-
- AIX 3.2 as shipped is configured to only send mail to mail addresses
- which include a host name. Many organizations use a mail address whose
- "host name" part is not a host name (technically an MX name). To change
- the configuration of the AIX mailer, login as root. Then edit the file
- /etc/sendmail.cf to remove the comment marker ("# ") at the beginning of
- the line which reads:
- # OK MX
-
- Now rebuild the machine readable form of the configuration with
- sendmail -bz
-
- and finally restart signal sendmail to load the new configuration by one
- of the following:
- reboot
- or
- stopsrc -s sendmail
- startsrc -s sendmail
- or
- kill -1 `cat /etc/sendmail.pid`
-
-
- 1.606: How to setup dialup SLIP
- From: marvin@tornado.oche.de (Christian Bode)
-
- If you don't have problems with slattach you should have PTF
- bos.obj 3.2.0.0.U411505 installed. I assume that you did the right
- ifconfig commands to setup your slip-device (for example sl0).
-
- 1. Create a group called slip.
-
- 2. Create a user slip with smit like this:
- [Entry Fields]
- * User NAME [slip]
- ADMINISTRATIVE User? true
- User ID []
- LOGIN user? true
- PRIMARY group [slip]
- Group SET [slip]
- ADMINISTRATIVE groups [system]
- SU groups [slip]
- HOME directory [/home/slip]
- Initial PROGRAM [/bin/sh]
- User INFORMATION [SLIP-Dialup]
- Another user can SU to user? false
- User can RLOGIN? true
- TRUSTED PATH? nosak
- Valid TTYs [/dev/tty1]
- AUDIT classes []
- PRIMARY authentication method [SYSTEM]
- SECONDARY authentication method [NONE]
- Max FILE size [2097151]
- Max CPU time [-1]
- Max DATA segment [262144]
- Max STACK size [65536]
- Max CORE file size [2048]
- Max physical MEMORY [65536]
- File creation UMASK [022]
- EXPIRATION date (MMDDhhmmyy) [0]
-
- 3. Create a tty with getty on it:
- Add a TTY
- [Entry Fields]
- TTY type tty
- TTY interface rs232
- Description Asynchronous Terminal
- Parent adapter sa0
- * PORT number [s1]
- BAUD rate [38400]
- PARITY [none]
- BITS per character [8]
- Number of STOP BITS [1]
- TERMINAL type [dumb]
- STATE to be configured at boot time [available]
- DMA on
- Read Trigger 0,1,2,3
- Transmit buffer count [16]
- Name of initial program to run [/etc/getty]
-
- Note: The following attributes are only applicable if /etc/getty is
- specified as the initial program to run.
-
- Enable program? respawn
- Run level 2
- Enable LOGIN share
- TIME before advancing to next port setting [0]
- STTY attributes for RUN TIME [hupcl,cread,brkint>
- STTY attributes for LOGIN [hupcl,cread,echoe,>
- RUN shell activity manager no
- Optional LOGGER name []
-
- 4. Change the hardware characteristics so that it uses NO XON/XOFF handshake
-
- 5. Here is the the .profile for User slip to manage dialups
-
- PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:/usr/local/bin:.
-
- ENV=$HOME/.kshrc
- HISTSIZE=128
-
- export PATH ENV HISTSIZE
- #
- # Search for a LCK-File for our tty if there is one
- #
-
- if test -f /etc/locks/LCK..tty1
- then
- SHPID=`cat /etc/locks/LCK..tty1`
- else
- echo `date` " No LCK-File !!!" >>slip.log
- exit 64
- fi
-
- #
- # Search for our own Shell to get the PID for checking against LCK-File
- #
-
- SH2PID=`ps -aef |
- sed -n -e 's/^ *slip *\([0-9][0-9]*\) .*-sh *$/\1/p`
-
- #
- # Is it the the same PID as in the LCK File so that we can start working ??
- #
-
- if test $SHPID = $SH2PID
- then
- # remove the LCK-File because slattach does not like it.
- rm -rf /etc/locks/LCK..tty1
- # Add RTS/CTS Handshakeing to our own tty
- stty add rts
- # Startup slattach. Slattach has to have mode 4755 to be started up !!!
- /usr/sbin/slattach tty1
- # Just say that we are up.
- echo `date` " Starting up slip-daemon " >>slip.log
- # leave slattach enough time to startup
- sleep 4
- else
- # Something must be wrong with the LCK-File
- SH3PID=`ps -aef | awk ' {print $2}' | grep $SHPID`
-
- if test ."$SH3PID" = .""
- then
- SH3PID="NO_SUCH_PROCESS"
- fi
-
- if test $SHPID = $SH3PID
- then
- # There is a living process which owns the LCK-File !!
- echo `date` " Can't remove LCK-File, not owner !!!" >>slip.log
- exit 64
- else
- # Who the hell didn't remove the LCK-File (should never happen)
- echo `date` " LCK-File with no owner found !!!" >>slip.log
- exit 64
- fi
- fi
-
- # Get the pid of slattch so that we can kill him later on.
- SLPID=`ps -aef |
- sed -n -e 's/^ *slip *\([0-9][0-9]*\) .*-.*\/usr\/sbin\/slattach tty1 *$/\1/p`
-
- # Kill slattach if we get a signal 1 (Carrier Lost ? / Otherside-slattach
- terminated )
- trap "kill $SLPID; exit 0" 1
-
- # We will have a nice sleep and nice dreamings
- while sleep 256
- do
- :
- done
-
- ______________________________________________________________________________
- 1.900: SCSI-1 and SCSI-2 "interoperability" got you confused?
- From: drr
-
- A. SCSI-1 devices are supported on a SCSI-2 adapter. This
- config will provide SCSI-1 performance.
-
- B. SCSI-2 devices are supported on a SCSI-1 adapter. This
- config will provide SCSI-1 performance.
-
- C. A mix of SCSI-2 and SCSI-1 devices are supported on a SCSI-1
- adapter. All devices will have SCSI-1 performance.
-
- D. A mix of SCSI-2 and SCSI-1 devices are supported on a SCSI-2
- adapter. SCSI-2 devices will have SCSI-2 performance (10 MB/sec)
- and SCSI-1 devices will have SCSI-1 performance (4-5 MB/sec).
-
-
- 1.901: How to get your keyboard back after unplugging it from the 6000
- From: Mickey Coggins and Anne Serre
-
- When you unplug your keyboard from a running system, and plug it back
- in, the key mapping is wrong. For example, keys like Caps Lock and Ctrl
- don't work as designed.
-
- Solution: Type at the command line
-
- /usr/lpp/diagnostics/da/dkbd
-
- Your screen goes black, you hear a few beeps, and your keyboard is reset.
- It works with any environment, Xwindows, hft, NLS...
-
-
- 1.902: How do I set up pcsim, the DOS emulator?
-
- You must have a bootable DOS diskette to install pcsim. Either DOS 3.3,
- 4.x, or 5.0 will work. IBM do not officially support DOS 5.0 for pcsim
- but I have no problems with it. Just don't try to be fancy with the UMB
- and memory manager stuff.
-
- With a bootable DOS disk in the drive, do:
- $touch /u/dosdrive (this is the AIX file for DOS emulation)
- $pcsim -Adiskette 3 -Cdrive /u/dosdrive
- You would now get an A prompt. Type:
- A> fdisk
- Create the virtual C drive of whatever size you choose. Make it large
- enough for your needs since you cannot enlarge it later.
- A> format c: /s (to format the virtual C drive)
- Now exit from pcsim with ESCpcsim (Esc key followed by pcsim).
-
- Now create a simprof file. Following is a starter:
-
- Adiskette : 3
- Cdrive :/u/dosdrive
- lpt1 : name of printer queue
- refresh : 50
- dmode : V
- mouse : com1
-
- You can now start pcsim anytime by typing pcsim. Make sure no floppies
- are in the drive. For further information, refer to publication
- SC23-2452, Personal Computer Simulator/6000 Guide and Reference.
-
-
- 1.903: How do I transfer files between AIX and DOS disks?
-
- In one of the bos extensions are commands for transferring files between
- DOS diskettes and AIX. The commands are dosread, doswrite, dosdir, dosdel,
- and dosformat. Many users have mentioned that the mtools package from
- prep.ai.mit.edu is better than the native AIX programs.
-
-