	 k6_ z4z4by name         by name         BUILD           d   	kH      A                                                ./               A          A          
k A# m            u4y4y4   	     %        ./lpp_name               m          m          4 R S bos.sysmgt {
bos.sysmgt.nim.spot 4.1.5.3 01 N U en_US Network Install Manager - SPOT
[
%
/usr/lib/boot/network 32
/usr/lpp/SAVESPACE 32
/usr/lib/objrepos 8
INSTWORK 72 32
%
%
%
IX65262  1 SSA disks not recognized in 4.1.5 NIM bos_inst.
IX67446  1 TTY CONFIGURED AT WRONG PORT AFTER NIM PRESERVATION INSTALL.
IX72448  3 Support for future graphics adapters
IX73411  1 CCET:Can't select a console during 415 nim install /w sagebrush
%
]
}
     	k\      A                                                ./usr            A          A          
k{      A                                                ./usr/lpp                A          A          k      A                                                ./usr/lpp/bos.sysmgt/bos.sysmgt.nim.spot/4.1.5.3                 A          A          kQ -# m          .  v4V4V4   	     %  .      ./usr/lpp/bos.sysmgt/bos.sysmgt.nim.spot/4.1.5.3/liblpp.a                m          m          <aiaff>
11674       0           68          1538        0           22          190         0           808789913   300         300         640         9   productid `
bos.sysmgt 5765-39300
269         582         68          881882789   300         300         640         29  bos.sysmgt.nim.spot.copyright `
 Licensed Materials - Property of IBM

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

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

   474         1176        190         881885269   300         300         640         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 = 4728
          checksum = "02349     5 "

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

67          1360        582         881885269   300         300         640         24  bos.sysmgt.nim.spot.size`
/usr/lib/boot/network 32
/usr/lpp/SAVESPACE 32
/usr/lib/objrepos 8
   66          1538        1176        881885269   300         300         640         22  bos.sysmgt.nim.spot.al`
./usr/lib/boot/network/rc.bos_inst
./usr/lib/boot/network/rc.diag
10015       11674       1360        881885263   300         300         640         27  bos.sysmgt.nim.spot.fixdata `
fix:
	name = IX65262
	abstract = SSA disks not recognized in 4.1.5 NIM bos_inst.
	type = f
	filesets = "bos.sysmgt.nim.spot:4.1.5.1\n\
"
	symptom = " SSA disks will not be selectable as target disks for a BOS\n\
 install using 4.1.5 NIM.\n\
"

fix:
	name = IX67446
	abstract = TTY CONFIGURED AT WRONG PORT AFTER NIM PRESERVATION INSTALL.
	type = f
	filesets = "bos.sysmgt.nim.spot:4.1.5.2\n\
"
	symptom = " After performing a NIM preservation\n\
 install from 3.2.5 to 4.1.5, tty1\n\
 is left configured on serial port 2.\n\
"

fix:
	name = IX72448
	abstract = for future graphics adapters
	type = f
	filesets = "bos.adt.graphics:4.1.5.2\n\
bos.rte.devices_msg:4.1.5.3\n\
bos.sysmgt.nim.spot:4.1.5.3\n\
"
	symptom = " Dropping n-2 code for GXT120P.\n\
 # SOLUTION - Description of the fix to the problem\n\
 #------------------------------------------------------------->|\n\
 START_SOLUTION\n\
 Dropping n-2 code for GXT120P.\n\
 STOP_SOLUTION\n\
 # NEW_FILES - Files being created in all releases\n\
 #------------------------------------------------\n\
 src/bos/kernext/disp/pcimga/Makefile\n\
 src/bos/kernext/disp/pcimga/config/cfg_b_diag.c\n\
 src/bos/kernext/disp/pcimga/config/cfg_t_diag.c\n\
 src/bos/kernext/disp/pcimga/config/mga_close.c\n\
 src/bos/kernext/disp/pcimga/config/mga_config.c\n\
 src/bos/kernext/disp/pcimga/config/mga_ddc.c\n\
 src/bos/kernext/disp/pcimga/config/mga_define.c\n\
 src/bos/kernext/disp/pcimga/config/mga_enable.c\n\
 src/bos/kernext/disp/pcimga/config/mga_ioctl.c\n\
 src/bos/kernext/disp/pcimga/config/mga_monitor.c\n\
 src/bos/kernext/disp/pcimga/config/mga_open.c\n\
 src/bos/kernext/disp/pcimga/inc/Makefile\n\
 src/bos/kernext/disp/pcimga/inc/mga.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_INCLUDES.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_funct.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_hw.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_ksr.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_monitor.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_monitor_data.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_ras.h\n\
 src/bos/kernext/disp/pcimga/inc/mga_regs.h\n\
 src/bos/kernext/disp/pcimga/inc/mgaddf.h\n\
 src/bos/kernext/disp/pcimga/inc/mgadds.h\n\
 src/bos/kernext/disp/pcimga/inc/mgaenv.h\n\
 src/bos/kernext/disp/pcimga/inc/mgaldat.h\n\
 src/bos/kernext/disp/pcimga/inc/mgamemtrc.h\n\
 src/bos/kernext/disp/pcimga/inc/mgatrc.h\n\
 src/bos/kernext/disp/pcimga/intr/mga_intr.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_copyps.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_crtc.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_delay.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_draw.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_err.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_font.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_ksr_diag.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_moveit.s\n\
 src/bos/kernext/disp/pcimga/ksr/mga_reset.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttact.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttcfl.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttclr.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttcpl.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttdact.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttdefc.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttdpm.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttinit.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttmovc.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttscr.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vttterm.c\n\
 src/bos/kernext/disp/pcimga/ksr/mga_vtttext.c\n\
 src/bos/kernext/disp/pcimga/ksr/rw_pci_cfg.c\n\
 src/bos/kernext/disp/pcimga/mgadd.exp\n\
 src/bos/kernext/disp/pcimga/mgadd_pin.exp\n\
 src/bos/kernext/disp/pcimga/pm/mga_pm.c\n\
 src/bos/kernext/disp/pcimga/ras/mga_memtrc.c\n\
 src/bos/kernext/disp/pcimga/ras/mga_trace.c\n\
 src/bos/kernext/disp/pcimga/rcm/mga_ddf.c\n\
 src/bos/kernext/disp/pcimga/rcm/mga_devchar.c\n\
 src/bos/kernext/disp/pcimga/rcm/mga_makegp.c\n\
 src/bos/objclass/2b101a05.add\n\
 src/bos/usr/include/graphics/pcimga/Makefile\n\
 src/bos/usr/lib/methods/cfg_mga/Makefile\n\
 src/bos/usr/lib/methods/cfg_mga/cfgmga.c\n\
 src/packages/devices/pci/2b101a05/Makefile\n\
 src/packages/devices/pci/2b101a05/X11/Makefile\n\
 src/packages/devices/pci/2b101a05/X11/packdep.mk\n\
 src/packages/devices/pci/2b101a05/X11/devices.pci.2b101a05.X11.il\n\
 src/packages/devices/pci/2b101a05/X11/devices.pci.2b101a05.X11.lp\n\
 src/packages/devices/pci/2b101a05/X11/devices.pci.2b101a05.X11.cr\n\
 src/packages/devices/pci/2b101a05/X11/usr/devices.pci.2b101a05.X11.prereq.S\n\
 src/packages/devices/pci/2b101a05/rte/Makefile\n\
 src/packages/devices/pci/2b101a05/rte/devices.pci.2b101a05.rte.lp\n\
 src/packages/devices/pci/2b101a05/rte/devices.pci.2b101a05.rte.il\n\
 src/packages/devices/pci/2b101a05/rte/packdep.mk\n\
 src/packages/devices/pci/2b101a05/rte/devices.pci.2b101a05.rte.cr\n\
 src/packages/devices/pci/2b101a05/rte/usr/devices.pci.2b101a05.rte.prereq.S\n\
 src/packages/devices/pci/2b101a05/rte/usr/devices.pci.2b101a05.rte.pre_d.sh\n\
 src/packages/devices/pci/2b101a05/rte/usr/devices.pci.2b101a05.rte.force\n\
 # CHANGED_FILES - Files changed in all releases\n\
 #----------------------------------------------\n\
 src/bos/kernext/disp/trace/gshkid.h GS_HKWD_set_2\n\
 src/bos/usr/lib/methods/common/devices.msg none\n\
 # EFFECTS - Effects of changes to release \"bos41M\"\n\
 #-------------------------------------------------\n\
 src/bos/kernext/disp/trace/gshkid.h (GS_HKWD_set_2)\n\
     ship/power/usr/include/graphics/gshkid.h bos.adt.graphics\n\
 src/bos/usr/lib/methods/common/devices.msg (none)\n\
     Affects no shipped files.\n\
 >> 42G TRACK NOT REQUIRED <<\n\
     <Note by wkuo (Kuo, Wei), 1997/09/23 15:27:50, action: modify>\n\
 Changes made by Kuo, W. (Wei) for SURF Board are: Marked 41Mserv,.\n\
 Old Priority:  \n\
 New Priority:  41Mserv\n\
     <Note by wkuo (Kuo, Wei), 1997/09/23 15:28:05, action: note>\n\
 bos41M approved by Kuo, W. (Wei) for SURF Board\n\
     <Note by wkuo (Kuo, Wei), 1997/09/23 15:28:09, action: note>\n\
 rspc41M approved by Kuo, W. (Wei) for SURF Board\n\
     <Note by jennie (Dietrich, Jennifer R. T.), 1997/09/23 17:06:31, action: note>\n\
 pkg41M approved by Jennie Dietrich for SURF Board\n\
     <Note by wkuo (Kuo, Wei), 1997/09/29 15:26:45, action: note>\n\
 gos41M approved by Kuo, W. (Wei) for SURF Board\n\
     <Note by scuderi (Scuderi, Anthony C.), 1997/10/14 07:37:12, action: note>\n\
 APPROVED_BY:  Scuderi, Anthony C. (scuderi)\n\
 APPROVE_DATE: 10/14/97\n\
 APPROVED_RELEASE: gos41M\n\
     <Note by btims (Tims, Bill C.), 1997/10/14 08:23:37, action: note>\n\
 APPROVED_BY:  Tims, Bill C. (btims)\n\
 APPROVE_DATE: 10/14/97\n\
 APPROVED_RELEASE: bos41M\n\
     <Note by btims (Tims, Bill C.), 1997/10/14 08:29:17, action: note>\n\
 APPROVED_BY:  Tims, Bill C. (btims)\n\
 APPROVE_DATE: 10/14/97\n\
 APPROVED_RELEASE: pkg41M\n\
     <Note by btims (Tims, Bill C.), 1997/10/14 08:43:12, action: note>\n\
 APPROVED_BY:  Tims, Bill C. (btims)\n\
 APPROVE_DATE: 10/14/97\n\
 APPROVED_RELEASE: rspc41M\n\
     <Note by scuderi (Scuderi, Anthony C.), 1997/10/14 09:39:49, action: note>\n\
 TX_LOG: 41M Create scuderi(scuderi@scuderi.austin.ibm.com) 1997/10/14 09:39 bos41M pkg41M rspc41M\n\
     <Note by btims (Tims, Bill C.), 1997/10/14 09:48:19, action: note>\n\
 TX_LOG: 41M Edit btims(btims@tims.austin.ibm.com) 1997/10/14 09:47 bos41M pkg41M rspc41M\n\
     <Note by scuderi (Scuderi, Anthony C.), 1997/10/14 09:53:48, action: note>\n\
 TX_LOG: 41M Delete scuderi(scuderi@scuderi.austin.ibm.com) 1997/10/14 09:53 bos41M pkg41M rspc41M\n\
     <Note by scuderi (Scuderi, Anthony C.), 1997/10/14 10:00:12, action: note>\n\
 TX_LOG: 41M Create scuderi(scuderi@scuderi.austin.ibm.com) 1997/10/14 09:59 bos41M gos41M pkg41M rspc41M\n\
     <Note by wkuo (Kuo, Wei), 1997/10/14 14:29:47, action: note>\n\
 TX_LOG: 41M Approve wkuo(wkuo@wkuo.austin.ibm.com) 1997/10/14 14:29 bos41M gos41M pkg41M rspc41M\n\
     <Note by wkuo (Kuo, Wei), 1997/10/14 14:33:17, action: modify>\n\
 ada generated note : (-c = \'\')\n\
   rpapar -needs_apar -family aix -defect 236783 -version 41M (rc = 0)\n\
 APAR_aix_41 = needs_apar\n\
 .\n\
 Old Reference: \n\
 New Reference: none_none\n\
     <Note by aix (AIX Family), 1997/10/14 14:41:38, action: note>\n\
 Level HOT.236783.gdd in release bos41M has been assigned to leedp by user wkuo.\n\
     <Note by aix (AIX Family), 1997/10/14 14:45:21, action: note>\n\
 Level HOT.236783.gdd in release gos41M has been assigned to leedp by user wkuo.\n\
     <Note by aix (AIX Family), 1997/10/14 14:45:41, action: note>\n\
 Level HOT.236783.gdd in release rspc41M has been assigned to leedp by user wkuo.\n\
     <Note by jmwhite (White, Janie Matush), 1997/10/22 10:07:31, action: note>\n\
 When this builds on 41M, it will generate an APAR, since it ships to\n\
 existing filesets.  Do you really want customers to see your\n\
 abstract (which mentions 41M - customers don\'t know what that is),\n\
 or symptom and solution (mentions \"n-2\").  You should change these.\n\
 Since the APAR won\'t actually provide all the support needed for sagebrush\n\
 on 41M (the APAR won\'t ship the new install images), it will be real\n\
 misleading.  It might be better to just make that text real ambiguous -\n\
 something like \"support for future graphics adapters\".\n\
     <Note by scuderi (Scuderi, Anthony C.), 1997/10/22 10:20:53, action: modify>\n\
 Old Abstract: Drop GXT120P to 41M\n\
 New Abstract: Support for future graphics adapters\n\
     <Note by scuderi (Scuderi, Anthony C.), 1997/10/22 10:22:22, action: note>\n\
 # SYMPTOM - What symptom(s) will the customer experience?\n\
 #------------------------------------------------------------->|\n\
 START_SYMPTON\n\
 Support for future graphics adapters.\n\
 STOP_SYMPTOM\n\
"

fix:
	name = IX73411
	abstract = CCET:Can\'t select a console during 415 nim install /w sagebrush
	type = f
	filesets = "bos.sysmgt.nim.spot:4.1.5.3\n\
"
	symptom = " sagebrush graphics adapter is not configured during network\n\
 install and network boot diagnostics\n\
"

   230         0           1538        0           0           0           0           0   `
6           68          190         582         1176        1360        1538        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 ved bykꖽ  m          x  U4t4t4         @  x      ./usr/lib/boot/network/rc.bos_inst               m          m          # @(#)19  1.22.1.10  src/bos/usr/lib/boot/network/rc.bos_inst.sh, cmdnim, bos41M, s9750B4 11/18/97 16:31:37
#
#   COMPONENT_NAME: CMDNIM
#
#   FUNCTIONS: SubSet
#		mount_from_list
#
#   ORIGINS: 27, 83
#
#
#   (C) COPYRIGHT International Business Machines Corp. 1993, 1997
#   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 14103c00 33531188 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 kma_2 lft 2b101a05 \
	mint 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 \
	smint ssa ssar sys tty vscsi wfg wga
do
	odmget -q type=$i PdDv
done | egrep "Change|Configure|Define" >/tmp/list1

for i in bus disk keyboard lvm pdisk tape
do
	odmget -q class=$i PdDv
done | egrep "Change|Configure|Define|Unconfigure" >>/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

# Link over Unconfigure and Undefine methods for
# tty so diagnostics pre-test can cleanup any
# tty ports created during its run

odmget -q"type=tty" PdDv | egrep "Unconfigure" >> /tmp/list1
odmget -q"type=tty" PdDv | egrep "Undefine" >> /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
km  m            U4t4t4         B        ./usr/lib/boot/network/rc.diag n         m          m          # @(#)78	1.8.1.13  src/bos/usr/lib/boot/network/rc.diag.sh, cmddiag, bos41M, s9750B4 11/18/97 16:31:44
#
#   COMPONENT_NAME: CMDDIAG
#
#   FUNCTIONS: SubSet
#		mount_from_list
#
#   ORIGINS: 27
#
#
#   (C) COPYRIGHT International Business Machines Corp. 1993, 1997
#   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 14103c00 33531188 3353c088 3353c188 3353c288 3353c388 8efc 8fba \
	8ff4 ascsi bbl colorgda fd fda fga gga graygda hga hispd3d hscsi \
	isa_keyboard keyboard keyboard_2 kma kma_2 lft 2b101a05 mint 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 smint ssa ssar \
	sys tty vscsi wga scsd
do
	odmget -q type=$i PdDv
done | egrep "Change|Configure|Define" >/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

# Link over Unconfigure and Undefine methods for
# tty so diagnostics pre-test can cleanup any
# tty ports created during its run

odmget -q"type=tty" PdDv | egrep "Unconfigure" >> /tmp/list1
odmget -q"type=tty" PdDv | egrep "Undefine" >> /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
	if [ -x /usr/lib/methods/cfggxme ]
	then
		/usr/lib/methods/cfggxme -l gxme0 >/dev/console 2>&1
	fi
	/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
ake sukbSc.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