78 lines
2.4 KiB
Bash
78 lines
2.4 KiB
Bash
#! /sbin/sh
|
|
#Tag 0x00000f00
|
|
|
|
# Check for devices that should exist after a reboot; to catch
|
|
# devices installed (or removed) since the last system boot.
|
|
# Must follow autoconfig, as the devices may have loadable drivers.
|
|
# "$Revision: 1.23 $"
|
|
|
|
case "$1" in
|
|
'start')
|
|
|
|
cd /dev
|
|
|
|
# create plp devices before running ioconfig in case permissions
|
|
# are changed in /etc/ioperms
|
|
|
|
if [ -d "/hw/parallel" -a ! -L /dev/plp ]; then
|
|
/sbin/suattr -C CAP_DEVICE_MGT+ipe -c "./MAKEDEV plp" 2>&1 | logger -t MAKEDEV_plp &
|
|
fi
|
|
#
|
|
# Before generating any devices, run ioconfig.
|
|
# -2 option tells ioconfig to prune down the hwgraph file tree walk.
|
|
#
|
|
/sbin/suattr -C CAP_MAC_READ,CAP_MAC_WRITE,CAP_MKNOD+ipe -c "/sbin/ioconfig -f /hw"
|
|
|
|
# we always do this now, so that all the tape devices get made, automatically
|
|
# not just the first one on the system. It also removes any tape
|
|
# devices that are no longer present. Tape devices that are OK aren't modified
|
|
/sbin/suattr -C CAP_DEVICE_MGT+ipe -c "./MAKEDEV tape" 2>&1 | logger -t MAKEDEV_tape &
|
|
|
|
# Create tty and input device symlinks
|
|
/sbin/suattr -C CAP_DEVICE_MGT+ipe -c "./MAKEDEV ttys" 2>&1 | logger -t MAKEDEV_ttys &
|
|
|
|
# same for floppies, since we now make /dev/rdsk/fds* only for
|
|
# actually installed floppies.
|
|
hinv -c disk | ( IFS="$IFS:" ; while read d dr s r m u targ o s c ctlr rest; do
|
|
if [ "$d" = Disk -a "$dr" = drive -a "$r" = removable -a "$m" = media -a "$s" = SCSI ] ; then
|
|
if [ ! -c /dev/rdsk/fds${ctlr}d${targ}.3.5 ] ; then
|
|
echo Creating floppy devices
|
|
/sbin/suattr -C CAP_DEVICE_MGT+ipe -c "./MAKEDEV fds" 2>&1 | logger -t MAKEDEV_fds &
|
|
break
|
|
fi
|
|
fi
|
|
done )
|
|
|
|
# if a diskless inst is done, we need to make audio devices here
|
|
# since kdsp is loadable now and does not show up in hinv when
|
|
# MAKEDEV is run out of /etc/bcheckrc after a diskless inst.
|
|
case "`hinv -c audio`" {
|
|
*Audio*) if [ ! -c /dev/hdsp/hdsp0control ] ; then
|
|
echo Creating audio devices
|
|
/sbin/suattr -C CAP_DEVICE_MGT+ipe -c "./MAKEDEV hdsp" 2>&1 | logger -t MAKEDEV_hdsp &
|
|
fi
|
|
;;
|
|
}
|
|
|
|
# DIVO video has audio capability, but hinv -c audio doesn't
|
|
# show it...
|
|
case "`hinv -c video`" {
|
|
*"DIVO Video"*) if [ ! -c /dev/hdsp/hdsp0control ] ; then
|
|
echo Creating audio devices
|
|
/sbin/suattr -C CAP_DEVICE_MGT+ipe -c "./MAKEDEV hdsp" 2>&1 | logger -t MAKEDEV_hdsp &
|
|
fi
|
|
;;
|
|
}
|
|
|
|
;;
|
|
|
|
'stop') # nothing to do on stop
|
|
|
|
;;
|
|
|
|
*)
|
|
echo "usage: $0 {start|stop}"
|
|
|
|
;;
|
|
esac
|