	 k
 O0O0by name         by name         BUILD           d   	kH      A                                                ./               A          A          
k> ܝ m            O0O0O0   -                ./lpp_name               m          m          4 R S bos.sysmgt {
bos.sysmgt.nim.spot 4.1.4.0 01 N U en_US Network Install Manager - SPOT
[
*prereq bos.sysmgt.nim.spot 4.1.3.0
%
/usr/lib/boot/network 32
/usr/lpp/SAVESPACE 32
/usr/lib/objrepos 8
INSTWORK 56 16
%
%
%
IX52536  423 AIX 4.1.4.0 Maintenance Level
IX52914  1 RC.DIAG NEEDS TO LINK RSDDLOAD LOAD MODULE TO THE SPOT.
4.1.4.0_AIX_ML  369 AIX 4.1.4.0 Maintenance Level
AIX41ML  423 Latest AIX 4.1 Maintenance Level
%
]
}
 	k\      A                                                ./usr            A          A          
k{      A                                                ./usr/lpp                A          A          k:      A                                                ./usr/lpp/bos.sysmgt/bos.sysmgt.nim.spot/4.1.4.0                 A          A          k5 ܝ m          	  O0O0O0   -          	      ./usr/lpp/bos.sysmgt/bos.sysmgt.nim.spot/4.1.4.0/liblpp.a                m          m          <aiaff>
2146        0           68          1536        0           22          190         0           808789913   300         300         644         9   productid `
bos.sysmgt 5765-39300
269         582         68          810433302   300         300         644         29  bos.sysmgt.nim.spot.copyright `
 Licensed Materials - Property of IBM

 576539300
   (C) Copyright International Business Machines Corp. 1993, 1995.

 All rights reserved.
 US Government Users Restricted Rights - Use, duplication or disclosure
 restricted by GSA ADP Schedule Contract with IBM Corp.

   474         1176        190         810543551   300         300         644         29  bos.sysmgt.nim.spot.inventory `
/usr/lib/boot/network/rc.bos_inst:
          owner = root
          group = system
          mode = 555
          type = FILE
          class = apply,inventory,bos.sysmgt.nim.spot
          size = 4403
          checksum = "52687     5 "

/usr/lib/boot/network/rc.diag:
          owner = root
          group = system
          mode = 555
          type = FILE
          class = apply,inventory,bos.sysmgt.nim.spot
          size = 4524
          checksum = "40089     5 "

67          1358        582         810543551   300         300         644         24  bos.sysmgt.nim.spot.size`
/usr/lib/boot/network 32
/usr/lpp/SAVESPACE 32
/usr/lib/objrepos 8
 66          1536        1176        810543551   300         300         644         22  bos.sysmgt.nim.spot.al`
./usr/lib/boot/network/rc.bos_inst
./usr/lib/boot/network/rc.diag
491         2146        1358        810543550   300         300         644         27  bos.sysmgt.nim.spot.fixdata `
fix:
	name = IX52914
	abstract = RC.DIAG NEEDS TO LINK RSDDLOAD LOAD MODULE TO THE SPOT.
	type = f
	filesets = "bos.sysmgt.nim.spot:4.1.3.1\n\
"
	symptom = " After creating a spot on a NIM server, attempts to boot in\n\
 service mode will result in flashing 888. This is due to\n\
 missing rsddload module on the spot, causing the tty\n\
 configuration to fail, thus diagnostic pre-test will also fail.\n\
 The fix is to find the load module for the tty then link it to\n\
 the spot. \n\
"

 230         0           1536        0           0           0           0           0   `
6           68          190         582         1176        1358        1536        productid bos.sysmgt.nim.spot.copyright bos.sysmgt.nim.spot.inventory bos.sysmgt.nim.spot.size bos.sysmgt.nim.spot.al bos.sysmgt.nim.spot.fixdata       kꈾ | m          3  O0B0JO0   -          3      ./usr/lib/boot/network/rc.bos_inst               m          m          # @(#)19  1.22  src/bos/usr/lib/boot/network/rc.bos_inst.sh, cmdnim, bos41C, 9535A 8/25/95 17:18:53
#
#   COMPONENT_NAME: CMDNIM
#
#   FUNCTIONS: SubSet
#		mount_from_list
#
#   ORIGINS: 27, 83
#
#
#   (C) COPYRIGHT International Business Machines Corp. 1993, 1995
#   All Rights Reserved
#   Licensed Materials - Property of IBM
#   US Government Users Restricted Rights - Use, duplication or
#   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
#   LEVEL 1, 5 Years Bull Confidential Information
#
# This script is to be run as a "dot" script from within rc.boot only.
# Function: BOS installation configuration on network booted machine.

# NOTE: Since the rc.diag file is very similar to this file, please check
# to see if changes made to either file are appropriate for the other.

mount_from_list()
{
${NIM_DEBUG}

	# Mount anything else from the info file
	# format of each stanza is:
	#		<hostname>:<remote dir>:<local mntpnt>
	if [ -n "${NIM_MOUNTS}" ]
	then
		${SHOWLED} 0x610
		OIFS="$IFS"
		for mount_args in ${NIM_MOUNTS}
		do
			IFS=':'
			set -- ${mount_args}
			IFS="$OIFS"

			# make sure local mount point exists
			if [ ! -d "${3}" ]
			then
				/SPOT/usr/bin/mkdir -p ${3} || loopled 0x611
			fi

			mount $1:$2 $3 || loopled 0x611

		done
	fi
}

SubSet()
{
set +x

# This function creates links for selected device types and classes.
# This provides a means to control which devices are configured, which
# saves time and system resources.  Links are from the remotely mounted
# filesystem which is mounted over /SPOT to the /usr/lib/methods directory.

for i in 3353c088 3353c188 3353c288 3353c388 8efc 8fba 8ff4 ascsi bbl colorgda \
	fd fda fga gga graygda hga hispd3d hscsi ide0 ide1 isa_keyboard \
	keyboard keyboard_2 kma lft ncr810 nep ppr pscsi rbypci s1a s1a_1 \
	s1a_3 s2a s2a_1 s2a_3 s3a_3 scsi serdasda serdasdc sga sga_bus sio \
	sio_1 sio_2 sio_3 ssa ssar sys tty vscsi wfg wga
do
	odmget -q type=$i PdDv
done | egrep "Change|Configure" >/tmp/list1

for i in bus disk keyboard lvm pdisk tape
do
	odmget -q class=$i PdDv
done | egrep "Change|Configure|Define" >>/tmp/list1

odmget -q "uniquetype = adapter/mca/ppr and attribute = cfg_method_load" PdAt| \
	egrep "values" >> /tmp/list1

odmget -q "uniquetype like adapter/*sio/* and attribute = load_module" PdAt| \
	egrep "values" >> /tmp/list1

# sort it with unique option to prevent duplicates
sort -u /tmp/list1 |
	awk '$3 != "\"\"" {
		gsub(/"/, "", $3);
		gsub("/etc/", "/usr/lib/", $3);
		print "/SPOT" $3;
	}' > /tmp/list2

rm /tmp/list1
ln -fs $(cat /tmp/list2) /usr/lib/methods
rm /tmp/list2
}

##################### MAIN ########################
#
# -----------------------  PHASE ONE
#
${NIM_DEBUG}

case "$PHASE" in
	1)
	# update the Mstate
	/SPOT/usr/sbin/nimclient -S booting

	mount_from_list
	${SHOWLED} 0x622
set +x
	/SPOT/usr/bin/rm -fr /etc/init /usr/bin /usr/lib/drivers \
		/usr/lib/microcode /usr/lib/netsvc /usr/sbin

	/SPOT/usr/bin/ln -s /SPOT/usr/* /usr
	ln -fs /SPOT/usr/lib/!(libc.a|libs.a) /usr/lib
	ln -s /SPOT/usr/lib/boot/ssh /etc/init
${NIM_DEBUG}

	SubSet
	strload -f /dev/null
	cfgmgr -f -v
	${SHOWLED} 0x622
set +x
	# now link to the full databases
	ln -fs /usr/lib/objrepos/* /etc/objrepos
	ln -s /SPOT/usr/lib/methods/cfgcon /SPOT/usr/lib/methods/startlft \
		/SPOT/usr/lib/methods/starttty /usr/lib/methods
${NIM_DEBUG}
	SubSet
	export DEV_PKGNAME=ALL
	cfgmgr -s -v

	# do this link at the end of this phase because ksh has libs.a
	# open and we don't want multiple copies in memory at the same
	# time.  After this phase ends, init will restart ksh and ksh
	# will load the linked copy and the in-core copy will be removed
	#
	# we cannot do the same thing for libc.a because init has libc.a
	# open and init doesn't get restarted until phase 3 newroot
	ln -fs /SPOT/usr/lib/libs.a.min /usr/lib/libs.a

	${SHOWLED} 0x622
	;;

#
# -----------------------  PHASE TWO
#
	2)

set +x
	unset fd_invoker loopled
	shift $#

	rm -f /sbin/rc.boot

${NIM_DEBUG}

	# set TCP timeouts to reasonable values (default is 2 hours!!!)
	/SPOT/usr/sbin/no -o tcp_keepintvl=150
	/SPOT/usr/sbin/no -o tcp_keepidle=1200

	# the next three lines are only for testing.  for actual installs,
	# these three lines will be replaced by the exec of bi_main
#	/usr/lib/methods/cfgcon
#	PS1='RAMFS> '; export PS1
#	exec /usr/bin/ksh

	${SHOWLED} 0xfff
	exec /usr/lpp/bosinst/bi_main
	;;
esac
ials k | m            O0Yo30JO0   -                ./usr/lib/boot/network/rc.diag n         m          m          # @(#)78	1.8  src/bos/usr/lib/boot/network/rc.diag.sh, cmddiag, bos41C, 9533B 8/15/95 09:30:39
#
#   COMPONENT_NAME: CMDDIAG
#
#   FUNCTIONS: SubSet
#		mount_from_list
#
#   ORIGINS: 27
#
#
#   (C) COPYRIGHT International Business Machines Corp. 1993, 1995
#   All Rights Reserved
#   Licensed Materials - Property of IBM
#   US Government Users Restricted Rights - Use, duplication or
#   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
#
# This script is to be run as a "dot" script from within rc.boot only.
# Function: BOS installation configuration on network booted machine.
#

mount_from_list()
{
${NIM_DEBUG}

	# Mount anything else from the info file
	# format of each stanza is:
	#		<hostname>:<remote dir>:<local mntpnt>
	if [ -n "${NIM_MOUNTS}" ]
	then
		${SHOWLED} 0x610
		OIFS="$IFS"
		for mount_args in ${NIM_MOUNTS}
		do
			IFS=':'
			set -- ${mount_args}
			IFS="$OIFS"

			# make sure local mount point exists
			if [ ! -d "${3}" ]
			then
				/SPOT/usr/bin/mkdir -p ${3} || loopled 0x611
			fi

			mount $1:$2 $3 || loopled 0x611

		done
	fi
}

SubSet()
{
set +x

# This function creates links for selected device types and classes.
# This provides a means to control which devices are configured, which
# saves time and system resources.  Links are from the remotely mounted
# filesystem which is mounted over /SPOT to the /usr/lib/methods directory.
#
# NOTE: This list of devices MUST be kept in sync with the other rc.* files
# used for network boot/install.

for i in 8efc 8fba 8ff4 ascsi colorgda fd fda graygda hispd3d hscsi keyboard \
	keyboard_2 kma lft nep ppr pscsi s1a s1a_1 s1a_3 s2a s2a_1 s2a_3 s3a_3 \
	scsi serdasda serdasdc sga sga_bus sio sio_1 sio_2 sio_3 \
	ssa ssar sys tty vscsi wga
do
	odmget -q type=$i PdDv
done | egrep "Change|Configure" >/tmp/list1

# Disk, tape and lvm are not included in the following list. The disk and
# tape are configured if not already before testing.

for i in bus keyboard
do
	odmget -q class=$i PdDv
done | egrep "Change|Configure|Define" >>/tmp/list1

odmget -q "attribute = cfg_method_load" PdAt | egrep "values" >> /tmp/list1

odmget -q "uniquetype like adapter/*sio/* and attribute = load_module" PdAt| \
        egrep "values" >> /tmp/list1

# sort it with unique option to prevent duplicates
sort -u /tmp/list1 |
	awk '$3 != "\"\"" {
		gsub(/"/, "", $3);
		gsub("/etc/", "/usr/lib/", $3);
		print "/SPOT" $3;
	}' > /tmp/list2

rm /tmp/list1
ln -fs $(cat /tmp/list2) /usr/lib/methods
rm /tmp/list2
}

##################### MAIN ########################
#
# -----------------------  PHASE ONE
#
${NIM_DEBUG}

case "$PHASE" in
	1)
	# update the Mstate
	/SPOT/usr/sbin/nimclient -S booting

	mount_from_list
	${SHOWLED} 0x622
set +x
	/SPOT/usr/bin/rm -fr /etc/init /usr/bin /usr/lib/drivers \
		/usr/lib/microcode /usr/lib/netsvc /usr/sbin

	/SPOT/usr/bin/ln -s /SPOT/usr/* /usr
	ln -fs /SPOT/usr/lib/!(libc.a|libs.a) /usr/lib
	ln -s /SPOT/usr/lib/boot/ssh /etc/init
${NIM_DEBUG}

	strload -f /dev/null
	cfgmgr -f -v
	${SHOWLED} 0x622
set +x
	# now link to the full databases
	ln -fs /usr/lib/objrepos/* /etc/objrepos
	ln -s /SPOT/usr/lib/methods/cfgcon /SPOT/usr/lib/methods/startlft \
		/SPOT/usr/lib/methods/starttty /usr/lib/methods
${NIM_DEBUG}
	SubSet
	cfgmgr -s -v
	ln -s /SPOT/usr/lib/methods/* /usr/lib/methods

	# do this link at the end of this phase because ksh has libs.a
	# open and we don't want multiple copies in memory at the same
	# time.  After this phase ends, init will restart ksh and ksh
	# will load the linked copy and the in-core copy will be removed
	#
	# we cannot do the same thing for libc.a because init has libc.a
	# open and init doesn't get restarted until phase 3 newroot
	ln -fs /SPOT/usr/lib/libs.a.min /usr/lib/libs.a

	${SHOWLED} 0x622
	;;

#
# -----------------------  PHASE TWO
#
	2)

set +x
	unset fd_invoker loopled
	shift $#

	rm -f /sbin/rc.boot

	# configure the console and
	# copy the empty diagnostic object classes over to
	# the RAM filesystem from the remotely mounted system.
	# then execute the diagnostic pretests before running diag.
	/usr/lib/methods/cfgcon
	${SHOWLED} 0xfff
	for i in CDiagDev TMInput MenuGoal FRUB FRUs DAVars
	do
		cp /usr/lpp/diagnostics/obj/$i /etc/objrepos/$i
	done
	mkdir -p /etc/lpp/diagnostics/data
	/usr/lib/methods/startrcm >/dev/console 2>&1
	/usr/lib/methods/cfgrcm -l rcm0 >/dev/console 2>&1
	/usr/lpp/diagnostics/bin/diagpt </dev/console >/dev/console 2>&1
	exec /usr/lpp/diagnostics/bin/diagipl </dev/console >/dev/console 2>&1
	;;
esac
ule k

	ill load the linked copy and the in-core copy will be removed
	#
	# we cannot do the same thing for libc.a because init has libc.a
	# open and init doesn't get restarted until phase 3 newroot
	ln -fs /SPOT/usr/lib/libs.a.min /usr/lib/libs.a

	${SHOWLED} 0x622
	;;

#
# -----------------------  PHASE TWO
#
	2)

set +x
	u