postinstall revision 7c478bd95313f5f23a4c958a745db2134aa03244
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
#
#
# postinstall script for SUNWos86r package.
#
# check_add_drv() checks if the module has an entry in
# etc/name_to_major. If not, it simply calls add_drv with the arguments
# given. If there is such an entry in name_to_major file, it adds
# entries in driver_aliases driver_classes and minor_perm if necessary.
# The syntax of this function is the same as add_drv.
{
basedir=/
alias=""
class=""
OPTIND=1
cmd="add_drv"
while getopts i:b:m:c:n opt
do
i ) ADD_ALIAS=1
alias=$OPTARG
;;
m ) ADD_MINOR=1
;;
c) ADD_CLASS=1
;;
;;
n) IS_NET_DRIVER=1
;;
\?) echo "check_add_drv can not handle this option"
return
;;
esac
done
drvname=$1
if [ $? -ne 0 ]
then
eval $cmd
else
# entry already in name_to_major, add alias, class, minorperm
# if necessary
if [ $ADD_ALIAS = 1 ]
then
do
if [ $? -ne 0 ]
then
fi
done
fi
if [ $ADD_CLASS = 1 ]
then
if [ $? -ne 0 ]
then
fi
fi
if [ $ADD_MINOR = 1 ]
then
if [ $? -ne 0 ]
then
echo $minorentry >> $basedir/etc/minor_perm
fi
fi
fi
if [ $IS_NET_DRIVER -eq 1 ]
then
CLONE_MAJ=$2
DRIVER_MAJ=$2
ln -s ../$CLONE_DEVICE $basedir/dev/$drvname
fi
}
# check_rem_drv() checks if the module has an entry in
# etc/name_to_major. If so, it simply calls rem_drv with the arguments
# given to remove the driver from the system. The syntax of this
# function is the same as rem_drv.
{
basedir=/
OPTIND=1
cmd="rem_drv"
while getopts b: opt
do
;;
\?) echo "check_rem_drv can not handle this option"
return
;;
esac
done
drvname=$1
if [ $? -eq 0 ]
then
eval $cmd
fi
}
#
# Update entries in the /etc/driver_classes for drivers which change
# from class "scsi" to class "dada".
#
{
nawk "
BEGIN {
drv[\"chs\"] = 1
}
/^#/ || /^$/ {
print
next
}
drv[\$1] > 0 {
\$2 = \"dada\"
}
{ printf \"%s\t%s\n\", \$1, \$2 }" ${BASEDIR}/etc/driver_classes > /tmp/d.$$
cp /tmp/d.$$ ${BASEDIR}/etc/driver_classes
}
# Platform-specific drivers
case "${ARCH}" in
i386)
check_add_drv -b "${BASEDIR}" \
-i '"pci1011,2" "pci1011,9" "pci1011,14" "pci1011,19" "pci1109,1400" "pci1109,2400" "pci10b8,2001" "pci2646,1"' \
check_add_drv -b "${BASEDIR}" -i \
'"pci10b7,9000" "pci10b7,9001" "pci10b7,9004" "pci10b7,9005" "pci10b7,9006" "pci10b7,9050" "pci10b7,9051" "pci10b7,9055" "pci10b7,9056" "pci10b7,9200" "pci10b7,9800" "pci10b7,9805"' \
check_add_drv -b "${BASEDIR}" \
-i '"pci1022,2000" "pci103c,104c"' \
check_add_drv -b "${BASEDIR}" \
-i '"pci1011,21" "pci1014,22"' \
check_add_drv -b "${BASEDIR}" \
-c dada -i '"pci1014,2e"' \
check_add_drv -b "${BASEDIR}" \
-c scsi \
-i '"pci1000,1" "pci1000,2" "pci1000,3" "pci1000,4" "pci1000,6" "pci1000,c" "pci1000,f" "pci1000,8f" ' \
check_add_drv -b "${BASEDIR}" \
-i '"pci8086,1029" "pci8086,1229" "pci8086,1229.8086.1009" "pci8086,1229.8086.100c" "pci8086,1229.8086.1012" "pci8086,1229.8086.1013" "pci8086,1229.8086.1015" "pci8086,1229.8086.1016" "pci8086,1229.8086.1017" "pci8086,1030" "pci8086,1031" "pci8086,1032" "pci8086,1038" "pci8086,1039" "pci8086,103d" "pci8086,2449"' \
check_add_drv -b "${BASEDIR}" \
-i '"pci10b8,5"' \
# The sd driver should be installed to the system before rcs9.sh
# is called.
check_add_drv -b "${BASEDIR}" \
-m '* 0640 root sys' \
-i '"scsiclass,00"' \
# Call the rcs9.sh script to update necessary files in case of upgrade
# for the PCI physical device pathname change from 2.4.
#
# Also used to preserve escd.rf (devconf configuration information)
# saved on floppy during an install boot.
#
then
fi
#
# If there is no data in OWconfig, remove it.
#
while read pathname
do
if [ ! -s $pathname ]; then
fi
done
;;
esac
# Remove erroneous entry for Symbios Logic 53c875/95 (ncrs)
exit 0