mirror of
https://github.com/moibenko/mtx.git
synced 2026-01-03 10:55:16 +00:00
151 lines
3.4 KiB
Bash
Executable File
151 lines
3.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright 2001 Enhanced Software Technologies Inc.
|
|
# All Rights Reserved
|
|
#
|
|
# This software is licensed under the terms of the Free Software Foundation's
|
|
# General Public License, version 2. See http://www.fsf.org for more
|
|
# inforation on the General Public License. It is released for public use in
|
|
# the hope that others will find it useful. Please contact eric@estinc.com
|
|
# if you have problems. Also check out our backup products at
|
|
# http://www.estinc.com (grin).
|
|
#
|
|
# usage: config_sgen_solaris.sh check|[un]install
|
|
#
|
|
# This configures sgen under Solaris (we hope! :-). Note that this
|
|
# *CAN* do a reboot of the system. Do NOT call this function unless
|
|
# you are willing to let it do a reboot of the system! Also note that
|
|
# this *must* be run as user 'root', since it does highly grokety things.
|
|
|
|
|
|
mode="$1"
|
|
cvs upd
|
|
SGEN="/kernel/drv/sgen"
|
|
SGEN_CONF="/kernel/drv/sgen.conf"
|
|
|
|
do_check() {
|
|
if test ! -f $SGEN_CONF; then
|
|
# sgen.conf not installed...
|
|
return 1
|
|
fi
|
|
|
|
changer_type_count=`grep "changer" $SGEN_CONF | grep -v "^#" | wc -l`
|
|
target_count=`grep "target=" $SGEN_CONF | grep -v "^#" | wc -l`
|
|
|
|
if test $changer_type_count = 0 -o $target_count = 0; then
|
|
# sgen.conf not configured
|
|
return 1
|
|
fi
|
|
|
|
# sgen.conf installed, and configured
|
|
return 0
|
|
}
|
|
|
|
do_install() {
|
|
|
|
# see if already installed
|
|
do_check
|
|
if test $? = 0; then
|
|
echo "sgen already configured, skipping"
|
|
return 0 # successfully installed (?)
|
|
fi
|
|
|
|
if test ! -f $SGEN; then
|
|
echo "sgen driver not installed, aborting"
|
|
return 1
|
|
fi
|
|
|
|
echo "configuring sgen driver..."
|
|
|
|
echo 'device-type-config-list="changer"; # BRU-PRO' >>$SGEN_CONF
|
|
target=0
|
|
while test $target -le 15; do
|
|
echo "name=\"sgen\" class=\"scsi\" target=$target lun=0; # BRU-PRO" >>$SGEN_CONF
|
|
target=`expr $target + 1`
|
|
done
|
|
|
|
echo "Attempting to reload driver..."
|
|
rem_drv sgen >/dev/null 2>&1
|
|
add_drv sgen
|
|
if test "$?" != "0"; then
|
|
# failed
|
|
touch /reconfigure
|
|
echo "Driver was successfully configured, but could not be re-loaded."
|
|
echo "The system must be rebooted for the driver changes to take effect."
|
|
|
|
ans=""
|
|
while test "$ans" = ""; do
|
|
printf "Do you want to reboot now (shutdown -g 1 -y -i 6)? [Y/n] "
|
|
read ans
|
|
|
|
if test "$ans" = "Y"; then
|
|
ans="y"
|
|
fi
|
|
|
|
if test "$ans" = "N"; then
|
|
ans="n"
|
|
fi
|
|
|
|
if test "$ans" != "y" -a "$ans" != "n"; then
|
|
echo "Please enter 'y' or 'n'"
|
|
ans=""
|
|
fi
|
|
done
|
|
|
|
if test "$ans" = "y"; then
|
|
shutdown -g 1 -y -i 6
|
|
# will be killed by reboot...
|
|
while true; do
|
|
echo "Waiting for reboot..."
|
|
sleep 300
|
|
done
|
|
fi
|
|
|
|
# not rebooted, exit with error
|
|
return 2
|
|
fi
|
|
|
|
# successful
|
|
return 0
|
|
}
|
|
|
|
do_uninstall() {
|
|
do_check
|
|
if test $? = 1; then
|
|
echo "sgen not configured, skipping"
|
|
return 0 # successfully uninstalled (?)
|
|
fi
|
|
|
|
printf "removing BRU-PRO configuration from $SGEN_CONF..."
|
|
grep -v "# BRU-PRO" $SGEN_CONF > ${SGEN_CONF}.$$ || return 1
|
|
cat ${SGEN_CONF}.$$ >${SGEN_CONF} || return 1
|
|
rm -f ${SGEN_CONF}.$$ >/dev/null || return 1
|
|
printf "done\n"
|
|
|
|
touch /reconfigure
|
|
printf "Devices will be reconfigured at next reboot.\n"
|
|
return 0
|
|
}
|
|
|
|
uname | grep SunOS >/dev/null 2>&1
|
|
if test $? != 0; then
|
|
echo "$0: not on Solaris, ABORT!"
|
|
exit 99
|
|
fi
|
|
|
|
case "$mode" in
|
|
check)
|
|
do_check
|
|
;;
|
|
install)
|
|
do_install
|
|
;;
|
|
uninstall)
|
|
do_uninstall
|
|
;;
|
|
*)
|
|
echo "usage: $0 check|[un]install"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit $? |