762 lines
23 KiB
Makefile
762 lines
23 KiB
Makefile
#!/sbin/make -kf
|
|
#
|
|
# Makefile for constructing the /dev directory
|
|
#
|
|
# $Revision: 1.351 $
|
|
|
|
# for the ability to do arithmetic.
|
|
SHELL=/sbin/ksh
|
|
|
|
# see the targets at the end of this file for some cleanup
|
|
# and security uses that are not automatically invoked.
|
|
|
|
|
|
# NOTE: major #'s used in rules that use install must not have
|
|
# any white space after the number
|
|
|
|
# BLOCK device major device number values.
|
|
B_HWGRAPH=0 # Used by hardware graph
|
|
B_NFS=18 # 1st NFS block pseudo-device; See below comment XXXdiskless
|
|
|
|
MAXPTY=10 # enough to get started. more are created by _getpty(3)
|
|
|
|
|
|
# CHARACTER device major device number values.
|
|
C_HWGRAPH=0 # Major number 0 is used by hardware graph
|
|
# /dev/{mem,kmem,null,mmem}
|
|
C_MM=1
|
|
# /dev/tty
|
|
C_SY=2
|
|
# number of built-in tty ports (first set for all machines)
|
|
C_DU_N1=4
|
|
# port number where to start second set of tty ports
|
|
C_DU_S2=45
|
|
# number of extra built-in tty ports (MP machines only - 2 per CPU)
|
|
C_DU_N2=12
|
|
# System profiling device.
|
|
C_PRF=7
|
|
# streams clone driver.
|
|
C_CLN=10
|
|
# pty controller
|
|
C_PTC=14
|
|
C_PTC1=104
|
|
C_PTC2=106
|
|
C_PTC3=108
|
|
C_PTC4=110
|
|
# pty slave
|
|
C_PTS=15
|
|
C_IF_SL=31 # SLIP
|
|
# /dev/zero
|
|
C_ZERO=37
|
|
# parallel port
|
|
C_PLP=38
|
|
# Kernel error logging device.
|
|
C_KLOG=41
|
|
# Inode monitor device
|
|
C_IMON=42
|
|
C_FSCTL=45 # file system pseudo-driver
|
|
# graphics textport
|
|
C_TPORT=46
|
|
# Software semaphores
|
|
C_USEMA=47
|
|
C_IF_PPP=52 # PPP
|
|
C_HDSP=53
|
|
C_SHMIQ=54 # Shared memory input queue ( for the window system )
|
|
# Shared memory input queue ( character device )
|
|
C_QCNTL=55
|
|
# Graphics Driver (streams interface)
|
|
C_GFXS=56
|
|
# Graphics Driver
|
|
C_GFX=57
|
|
# Postwait drier for Oracle performance
|
|
C_POSTWAIT=206
|
|
# new console driver
|
|
C_CONSOLE=58
|
|
|
|
# SCSI character majors
|
|
C_USRBUS=198
|
|
C_SYSCTLR=199
|
|
C_MIDI=201
|
|
C_IMIDI=202
|
|
C_FLASH=204
|
|
|
|
#Video
|
|
|
|
C_VIDEO1=9 # svideo/vino/devvid(sirius)/mvp video driver
|
|
C_VIDEO2=203 # galileo/sirius video driver
|
|
C_VIDEO3=256 # impact video driver
|
|
C_VIDEO4=17 # vice video driver
|
|
|
|
# Digital Media Streams
|
|
C_DMS=248
|
|
# Indigo2 Compression
|
|
C_COSMO=254
|
|
|
|
C_USRDMA=232
|
|
C_CCSYNC=252 # CC Sync driver for EVEREST
|
|
|
|
# duart driver, built-in /dev/ttyd*
|
|
C_DU=260
|
|
|
|
|
|
C_TPITCP=18 # TPI TCP clonable STREAMS device
|
|
C_TPIUDP=19 # TPI UDP clonable STREAMS device
|
|
C_TPIIP=20 # TPI raw IP clonable STREAMS device
|
|
C_TPIICMP=21 # TPI ICMP clonable STREAMS device
|
|
|
|
C_TCL=13 # TLI connectionless loopback device
|
|
C_TCO=12 # TLI connection-oriented loopback device
|
|
C_TCOO=24 # TLI connection oriented loopback orderly release device
|
|
|
|
C_SAD=33 # STREAMS Administrative Driver
|
|
C_STRLOG=80 # STREAMS log device
|
|
|
|
C_IPFLTR=59 # IP packet filtering sevice
|
|
|
|
# X local transport driver
|
|
C_XCONN=265
|
|
|
|
# common part of common install commands used to create nodes in target system
|
|
# in general it is preferable to use install to create the devices, because
|
|
# if they are already correct, it's faster. install will not change modes
|
|
# or owners if a device already exists with the correct type, major, and minor.
|
|
# sometimes this is good, and sometimes it may require an extra chmod or
|
|
# chown if they need to be "standard"
|
|
INSTALL?=install
|
|
INSCMD=$(INSTALL) -root "" -rawidb "" -f .
|
|
|
|
# create a tty(-like) device, which should retain its previous mode and
|
|
# owner, if it had one.
|
|
INSTTY=$(INSCMD) -m 666 -chr
|
|
|
|
|
|
all: alldevs garbage
|
|
|
|
# generate IDB entries--the absolute minimum so bcheckrc can do a MAKEDEV
|
|
install:
|
|
$(INSTALL) -m 600 -idb mr -chr ${C_CONSOLE},0 -F dev console
|
|
$(INSTALL) -m 600 -idb mr -chr ${C_CONSOLE},0 -F dev syscon
|
|
$(INSTALL) -m 600 -idb mr -chr ${C_CONSOLE},0 -F dev systty
|
|
$(INSTALL) -m 666 -idb mr -chr ${C_MM},2 -F dev null
|
|
$(INSTALL) -m 666 -idb mr -chr ${C_ZERO},0 -F dev zero
|
|
|
|
#minimal stuff
|
|
mindevs: generic disks pty ttys flash
|
|
|
|
# all of everything; the "garbage" target used with "all" above will
|
|
# remove no longer supported devices that used to be made from alldevs
|
|
#
|
|
alldevs: mindevs tape fds hdsp if_sl if_ppp \
|
|
plp scsi usema fsctl midi video tpi ipfilter \
|
|
usreisa usrvme sysctlr sad usrdma dms ei ccsync postwait \
|
|
indycomp isdn xconn
|
|
|
|
# machine dependent links, first makes all the devices that might be linked to
|
|
links: disks tape
|
|
|
|
# As in disks target, remove entries from no longer supported hardware
|
|
tape: tps tapelinks
|
|
|
|
|
|
# esdi, ipi, and smd no longer supported. So don't make them, and
|
|
# remove any devices that might be left over.
|
|
disks: dks disklinks
|
|
|
|
# ONLY make the links, much faster when you just want to get the
|
|
# tape device right, or are making a drive to boot as a non-standard
|
|
# drive number (e.g. making a bootable top drive 2 on a Personal Iris
|
|
#
|
|
onlylinks: disklinks tapelinks
|
|
|
|
|
|
# If root's device name contains a colon, we assume it is NFS and we are a
|
|
# diskless machine. The minor NFS device numbers are coupled to the order
|
|
# in which the diskless kernel mounts things. The major number attached
|
|
# to /dev/root is not used. The kernel picks one for NFS when it boots.
|
|
# (XXXdiskless)
|
|
#
|
|
disklinks:
|
|
rootname=`/etc/devnm /`; \
|
|
if expr "$$rootname" : '[^ ]*:' > /dev/null; then \
|
|
rm -f root; \
|
|
rm -f swap; \
|
|
rm -f usr; \
|
|
mknod root b ${B_NFS} 0; \
|
|
mknod swap b ${B_NFS} 2; \
|
|
else \
|
|
rootdev=/hw/disk/root; \
|
|
swapdev=/hw/disk/swap; \
|
|
usrdev=/hw/disk/usr; \
|
|
rrootdev=/hw/rdisk/root; \
|
|
rswapdev=/hw/rdisk/swap; \
|
|
rusrdev=/hw/rdisk/usr; \
|
|
rvoldev=/hw/rdisk/volume_header; \
|
|
rm -f root rroot swap rswap usr rusr rvh; \
|
|
if [ -b $$rootdev ]; then \
|
|
ln -s $$rootdev root; \
|
|
fi; \
|
|
if [ -c $$rrootdev ]; then \
|
|
ln -s $$rrootdev rroot; \
|
|
fi; \
|
|
if [ -b $$swapdev ]; then \
|
|
ln -s $$swapdev swap; \
|
|
fi; \
|
|
if [ -c $$rswapdev ]; then \
|
|
ln -s $$rswapdev rswap; \
|
|
fi; \
|
|
if [ -b $$usrdev ]; then \
|
|
ln -s $$usrdev usr; \
|
|
fi; \
|
|
if [ -c $$rusrdev ]; then \
|
|
ln -s $$rusrdev rusr; \
|
|
fi; \
|
|
if [ -c $$rvoldev ]; then \
|
|
ln -s $$rvoldev rvh; \
|
|
fi; \
|
|
fi;
|
|
|
|
# We echo WHICH tape is being linked, in case they have more than
|
|
# one tape on a system, since we use the first one we come to.
|
|
# If there is already a /dev/tape and it exists in the eyes of mt, then
|
|
# leave it alone. Use nrtape because otherwise we might have
|
|
# to wait a long time for a tape to rewind.
|
|
# For the scsi tapes, look on each supported controller, checking
|
|
# first to see if the device exists, so we don't get an mt error.
|
|
#
|
|
# The order of search is:
|
|
# Integral SCSI controllers, starting at controller 0, drive 1,
|
|
# incrementing drive number up to max and then controller number
|
|
#
|
|
# 9trk SCSI tapes links default to the variable blocksize device for
|
|
# compatibility with most other unix 9trk tapes; it also defaults to
|
|
# the highest density (6250).
|
|
# DAT links default to variable mode;
|
|
# Exabyte links default to fixed mode;
|
|
# NOTE: (variable mode limits max single write to max blocksize, fixed doesn't).
|
|
# IRIX 5.X note: if nrtape is old (3.X - 4.X) major number for tps driver,
|
|
# do *NOT* preserve the old tape device, as the major # won't match the
|
|
# new 5.X major numbers, and this will cause programs like 'bru' that
|
|
# try to match major #'s up against the /dev/rmt devices a lot of grief...
|
|
tapelinks:
|
|
@if /sbin/mt -t nrtape exist; then \
|
|
set x`ls -ln nrtape` ; case "$$5" { \
|
|
23,|28,|83,|84,) ;; \
|
|
*) exit 0;; \
|
|
} ; \
|
|
fi; \
|
|
rm -f tape nrtape tapes nrtapes tapens nrtapens; \
|
|
if test -d abi ; then :; \
|
|
else \
|
|
rm -rf abi; mkdir abi; chmod 755 abi ; \
|
|
fi; \
|
|
linkadap=65535; \
|
|
linktarg=0; \
|
|
set ` hinv | grep "Tape" | grep "on SCSI" | sed "s/://g" | \
|
|
( while read a b c targ e f g adap i; do \
|
|
if [ $$adap -ge 0 -a $$adap -lt $$linkadap ]; then \
|
|
linkadap=$$adap; \
|
|
linktarg=$$targ; \
|
|
elif [ $$adap -eq $$linkadap ]; then \
|
|
if [ $$targ -gt $$linktarg ]; then \
|
|
linktarg=$$targ; \
|
|
fi; \
|
|
fi; \
|
|
done ; echo $$linkadap $$linktarg ) `; \
|
|
c=$$1; \
|
|
d=$$2; \
|
|
if /sbin/mt -t rmt/tps$${c}d$${d}nr exist; then \
|
|
echo "\tSCSI tape unit $$d on controller $$c assumed for main tape device"; \
|
|
set +e; stat="`2>&1 /sbin/mt -t rmt/tps$${c}d$${d}nr status`" ; set -e ; \
|
|
case "$$stat" { \
|
|
*Drive?type:*8mm*) \
|
|
echo \\tln -fs rmt/tps$${c}d$${d} tape; ln -fs rmt/tps$${c}d$${d} tape; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}nr nrtape; ln -fs rmt/tps$${c}d$${d}nr nrtape;; \
|
|
*Drive?type:*DAT*) \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}v tape; ln -fs rmt/tps$${c}d$${d}v tape; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}nrv nrtape; ln -fs rmt/tps$${c}d$${d}nrv nrtape;; \
|
|
*Drive?type:*9?track*) \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}v.6250 tape; ln -fs rmt/tps$${c}d$${d}v.6250 tape; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}nrv.6250 nrtape; ln -fs rmt/tps$${c}d$${d}nrv.6250 nrtape;; \
|
|
*Drive?type:*DLT*) \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}v tape; ln -fs rmt/tps$${c}d$${d}v tape; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}nrv nrtape; ln -fs rmt/tps$${c}d$${d}nrv nrtape;; \
|
|
*) \
|
|
echo \\tln -fs rmt/tps$${c}d$${d} tape; ln -fs rmt/tps$${c}d$${d} tape; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}nr nrtape; ln -fs rmt/tps$${c}d$${d}nr nrtape; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}ns tapens; ln -fs rmt/tps$${c}d$${d}ns tapens; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}ns abi/tape; ln -fs rmt/tps$${c}d$${d}ns abi/tape; \
|
|
echo \\tln -fs rmt/tps$${c}d$${d}nrns nrtapens; ln -fs rmt/tps$${c}d$${d}nrns nrtapens;; \
|
|
} ; \
|
|
exit 0; \
|
|
fi ; \
|
|
if hinv -c tape > /dev/null ; then \
|
|
echo "Cannot find any tape device; link to tape not created."; fi
|
|
|
|
# common stuff
|
|
generic: anything
|
|
# zero needs to be made with install, because dynamic programs,
|
|
# including mknod, need it,, so if it's correct, as it always should
|
|
# be by the time this target is invoked, we don't want to remove and
|
|
# remake it.
|
|
$(INSCMD) -m 666 -chr ${C_ZERO},0 zero
|
|
$(INSCMD) -m 640 -chr ${C_MM},0 mem
|
|
$(INSCMD) -m 640 -chr ${C_MM},1 kmem
|
|
$(INSCMD) -m 666 -chr ${C_MM},2 null
|
|
$(INSCMD) -m 666 -chr ${C_MM},3 mmem
|
|
$(INSCMD) -m 622 -chr ${C_CONSOLE},0 console
|
|
$(INSCMD) -m 644 -chr ${C_PRF},0 prf
|
|
$(INSCMD) -m 644 -chr ${C_PRF},100 par
|
|
$(INSCMD) -m 644 -chr ${C_KLOG},0 klog
|
|
$(INSCMD) -m 640 -chr ${C_IMON},0 imon
|
|
$(INSCMD) -m 666 -chr ${C_SY},0 tty
|
|
$(INSCMD) -m 666 -chr ${C_TPORT},0 tport
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_SHMIQ} shmiq
|
|
$(INSCMD) -m 666 -chr ${C_GFX},0 graphics
|
|
$(INSCMD) -m 666 -chr ${C_GFX},1 opengl
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_GFXS} gfx
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_STRLOG} log
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_STRLOG} conslog
|
|
rm -rf syscon systty; umask 0; ln console syscon; ln console systty
|
|
# ensure owners and modes for these devices
|
|
chmod 666 zero null mmem tty tport shmiq graphics opengl gfx log conslog
|
|
chmod 640 kmem mem imon
|
|
chmod 644 klog par prf
|
|
chmod 622 console
|
|
chown root.sys zero null mmem tty tport shmiq graphics opengl gfx log \
|
|
console conslog kmem mem imon klog par prf
|
|
|
|
# Pseudo tty's
|
|
pty: anything
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_PTC} ptc
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_PTC1} ptc1
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_PTC2} ptc2
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_PTC3} ptc3
|
|
$(INSCMD) -m 666 -chr ${C_CLN},${C_PTC4} ptc4
|
|
chmod 666 ptc* # because install does not force it
|
|
if test -d pts ; then :;\
|
|
else \
|
|
rm -rf pts; umask 22; mkdir pts; \
|
|
fi
|
|
$(INSTTY) ${C_PTS},0-$(MAXPTY) ttyq
|
|
chown root.sys ptc* ttyq* # clean any extra leftovers
|
|
chmod 600 ttyq*
|
|
rm -rf ptmx; ln ptc ptmx # ptmx is the SVR4 master clone dev
|
|
|
|
# Standard on-cpu tty's
|
|
# Create symlinks to any tty files that exist in the hwgraph, as well as any
|
|
# input directories. Also provide direct symlinks /dev/keybd /dev/mouse
|
|
# /dev/dials and /dev/tablet for backward compatibility.
|
|
ttys: anything
|
|
@for tty_file in /hw/ttys/* ; do \
|
|
bname="`basename $$tty_file`" ; \
|
|
if [ -n "$$bname" -a "$$bname" != '*' ]; then \
|
|
rm -rf "$$bname" ; \
|
|
ln -s $$tty_file . ; \
|
|
else echo Missing ttys in /hw; \
|
|
fi ; \
|
|
done
|
|
@qnum=0;\
|
|
for input_dir in /hw/input* ; do \
|
|
dev_dir=`basename $$input_dir` ; \
|
|
if [ "$$dev_dir" != 'input*' ]; then \
|
|
if [ -l $$dev_dir -o ! -d $$dev_dir ]; then \
|
|
rm -f $$dev_dir ; \
|
|
(umask 22; mkdir $$dev_dir) ; \
|
|
fi ; \
|
|
rm -rf $$dev_dir/keyboard $$dev_dir/mouse ; \
|
|
if [ -c $$input_dir/keyboard ]; then \
|
|
ln -s $$input_dir/keyboard $$dev_dir/keyboard;\
|
|
fi ; \
|
|
if [ -c $$input_dir/mouse ]; then \
|
|
ln -s $$input_dir/mouse $$dev_dir/mouse ; \
|
|
fi ; \
|
|
$(INSCMD) -m 666 -chr ${C_QCNTL},$$qnum qcntl$$qnum; \
|
|
qnum=$$(( $$qnum + 1)); \
|
|
fi ; \
|
|
done
|
|
@if test -c /hw/input/keyboard ; then \
|
|
rm -rf keybd ; \
|
|
ln -s /hw/input/keyboard keybd ; \
|
|
fi
|
|
@for dev in mouse dials tablet ; do \
|
|
if test -c /hw/input/$$dev ; then \
|
|
rm -rf $$dev ; \
|
|
ln -s /hw/input/$$dev . ; \
|
|
fi ; \
|
|
done
|
|
|
|
# scsi disk driver
|
|
dks: anything
|
|
if [ -d dsk -a -l dsk ]; then :;\
|
|
else \
|
|
rm -rf dsk; \
|
|
if [ -d /hw/disk ]; then \
|
|
ln -s /hw/disk dsk; \
|
|
fi \
|
|
fi
|
|
if [ -d rdsk -a -l rdsk ]; then :;\
|
|
else \
|
|
rm -rf rdsk; \
|
|
if [ -d /hw/rdisk ]; then \
|
|
ln -s /hw/rdisk rdsk; \
|
|
fi \
|
|
fi
|
|
|
|
# CC Sync driver for IP19,21,25
|
|
ccsync: anything
|
|
set +e ; ccsync=`/sbin/hinv | grep "CC sync"`; set -e; \
|
|
if [ "$$ccsync" != "" ] ; then \
|
|
$(INSCMD) -m 666 -chr ${C_CCSYNC},256 ccsync; \
|
|
fi
|
|
|
|
# user level vme devices
|
|
usrdma: anything
|
|
@if test ! -d vme; then rm -rf vme; umask 22; mkdir vme; fi
|
|
if [ `/sbin/uname -m` = IP19 -o `/sbin/uname -m` = IP21 -o `/sbin/uname -m` = IP25 ] ; then \
|
|
export _XPG=1; /sbin/hinv | grep "VME bus: adapter" | \
|
|
while read a b c adap d ; \
|
|
do \
|
|
minor=$$(( $$adap * 16 + 1)) ; \
|
|
$(INSCMD) -m 640 -chr ${C_USRDMA},$$minor vme/dma$${adap}; \
|
|
done; \
|
|
fi
|
|
|
|
# user level vme devices
|
|
usrvme: anything
|
|
@if test ! -d vme; then rm -rf vme; umask 22; mkdir vme; fi
|
|
/sbin/hinv | grep "VME bus: adapter" | while read a b c adap d ; \
|
|
do \
|
|
set 16n 24n 32n 16s 24s 32s; \
|
|
export _XPG=1; for t in 8192 8448 8704 12288 12544 12800; do \
|
|
minor=$$(( $$t + $$adap)); \
|
|
$(INSCMD) -m 640 -chr ${C_USRBUS},$$minor mknod vme/vme$${adap}a$$1; \
|
|
shift; \
|
|
done; \
|
|
done
|
|
|
|
usreisa: anything
|
|
@if test ! -d eisa; then rm -rf eisa; umask 22; mkdir eisa; fi
|
|
/sbin/hinv | grep "EISA bus: adapter" | if read a b c adap d ; then\
|
|
set io mem; \
|
|
export _XPG=1; for t in 49152 49408; do \
|
|
minor=$$(( $$t + $$adap)); \
|
|
$(INSCMD) -m 640 -chr ${C_USRBUS},$$minor eisa/eisa$${adap}$$1 ;\
|
|
shift; \
|
|
done; \
|
|
fi
|
|
|
|
dms: anything
|
|
rm -f dmrb
|
|
$(INSCMD) -m 666 -chr $(C_DMS),0 dms
|
|
|
|
cosmo: anything
|
|
$(INSCMD) -m 666 -chr $(C_COSMO),0 cosmo
|
|
|
|
indycomp: anything
|
|
if hinv | grep -s 'IndyComp' > /dev/null; then \
|
|
$(INSCMD) -m 666 -chr $(C_INDYCOMP),0 indycomp; \
|
|
fi
|
|
|
|
# isdn subdirectory. MAKEDEV.isdn installed by isdn_eoe.sw.isdn
|
|
isdn: anything
|
|
sinclude MAKEDEV.isdn
|
|
|
|
# smfd scsi floppy disk driver (char dev only), and r/w by the world
|
|
# only make them for devices actually installed
|
|
# For ABI, make abi/floppy as the first 1.44 MB floppy device also
|
|
fds floppy: anything
|
|
@if [ -d rdsk -a -l rdsk ]; then :; \
|
|
else \
|
|
rm -rf rdsk; \
|
|
if [ -d /hw/rdisk ]; then \
|
|
ln -s /hw/rdisk rdsk; \
|
|
fi \
|
|
fi
|
|
|
|
# generic scsi driver
|
|
scsi: anything
|
|
if [ -d scsi -a -l scsi ]; then :; \
|
|
else \
|
|
rm -rf scsi; \
|
|
if [ -d /hw/scsi ]; then \
|
|
ln -s /hw/scsi scsi; \
|
|
fi \
|
|
fi
|
|
|
|
# scsi tape driver
|
|
tps: anything
|
|
@if [ -d rmt -a -l rmt ]; then :;\
|
|
else \
|
|
rm -rf rmt; \
|
|
rm -rf mt; \
|
|
if [ -d /hw/tape ]; then \
|
|
ln -s /hw/tape rmt; \
|
|
ln -s rmt mt; \
|
|
fi \
|
|
fi
|
|
|
|
# SLIP
|
|
if_sl: anything
|
|
$(INSCMD) -m 600 -chr ${C_CLN},${C_IF_SL} if_sl
|
|
|
|
# PPP
|
|
if_ppp: anything
|
|
$(INSCMD) -m 600 -chr ${C_CLN},${C_IF_PPP} if_ppp
|
|
|
|
# Software semaphore device usema(7M)
|
|
usema: anything
|
|
$(INSCMD) -m 666 -chr ${C_USEMA},0 usemaclone
|
|
$(INSCMD) -m 666 -chr ${C_USEMA},1 usema
|
|
|
|
# Software device for X local transport
|
|
xconn: anything
|
|
rm -f xconns xconnc
|
|
mknod xconns c ${C_XCONN} 0
|
|
mknod xconnc c ${C_XCONN} 1
|
|
chmod 0600 xconns
|
|
chmod 0666 xconnc
|
|
|
|
# Software postwait device for Oracle (7M)
|
|
postwait: anything
|
|
$(INSCMD) -m 666 -chr ${C_POSTWAIT},0 postwait
|
|
rm -f postwait
|
|
mknod postwait c ${C_POSTWAIT} 0
|
|
chmod 0777 postwait
|
|
|
|
|
|
# Parallel Line Printer port
|
|
plp: anything
|
|
if [ -d /hw/parallel ]; then \
|
|
if hinv | grep -is 'EPP/ECP parallel port' > /dev/null; then \
|
|
rm -rf plp* ecp* epp*; \
|
|
for plps in /hw/parallel/*; do \
|
|
ln -s $$plps `basename $$plps`; \
|
|
if [ `basename $$plps` = ecp ]; then \
|
|
ln -s $$plps plpbi; \
|
|
fi ; \
|
|
done; \
|
|
elif hinv | grep -is 'bi-directional parallel port' > /dev/null; then \
|
|
rm -rf plp*; \
|
|
for plps in /hw/parallel/*; do \
|
|
ln -s $$plps `basename $$plps`; \
|
|
done; \
|
|
else \
|
|
rm -rf plp*; \
|
|
for plps in `ls /hw/parallel/plp*`; do \
|
|
ln -s $$plps `basename $$plps`; \
|
|
done; \
|
|
fi ; \
|
|
else \
|
|
if hinv | grep -is 'EPC parallel port' >/dev/null; then \
|
|
rm -f plp* ; \
|
|
for ctlr in 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ; do \
|
|
if hinv | grep -is "EPC parallel port: Ebus slot $$ctlr$$" >/dev/null; then \
|
|
$(INSCMD) -m 666 -u root -chr ${C_PLP},$$ctlr plp$$ctlr; \
|
|
if test ! -c plp ; then \
|
|
ln -f plp$$ctlr plp ; \
|
|
fi ; \
|
|
fi ; \
|
|
done ; \
|
|
else \
|
|
rm -f plp; \
|
|
$(INSCMD) -m 666 -u root -chr ${C_PLP},0 plp; \
|
|
rm -f plpbi; \
|
|
$(INSCMD) -m 666 -u root -chr ${C_PLP},16 plpbi; \
|
|
fi; \
|
|
fi; \
|
|
if [ ! -l plp ]; then \
|
|
if [ -d /hw/parallel ]; then \
|
|
rm -rf plp; \
|
|
ln -s /hw/parallel/plp1 plp; \
|
|
fi; \
|
|
fi
|
|
|
|
# IP19,21,25 System Controller driver
|
|
sysctlr: anything
|
|
if hinv | grep -is "IO[45]" >/dev/null; then \
|
|
$(INSCMD) -m 600 -u root -chr ${C_SYSCTLR},0 sysctlr; \
|
|
fi;
|
|
|
|
# IP19,21,25 Flash PROM driver
|
|
flash: anything
|
|
rm -rf flash; \
|
|
if hinv | grep -is "IO[45]" >/dev/null; then \
|
|
umask 22; mkdir flash; \
|
|
umask 0; \
|
|
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do \
|
|
mknod flash/flash$$i c ${C_FLASH} $$i; \
|
|
done; \
|
|
chmod 600 flash/flash* ; \
|
|
fi
|
|
|
|
hdsp: anything
|
|
if hinv -s -c audio > /dev/null || hinv -s -d divo > /dev/null; then \
|
|
if test ! -d hdsp; then rm -rf hdsp; umask 22; mkdir hdsp; fi ; \
|
|
for unit in 0 ; do \
|
|
$(INSCMD) -m 666 -chr ${C_HDSP},2-17 hdsp/hdsp$${unit}r; \
|
|
$(INSCMD) -m 666 -chr ${C_HDSP},0 hdsp/hdsp$${unit}master; \
|
|
$(INSCMD) -m 666 -chr ${C_HDSP},256 hdsp/hdsp$${unit}events; \
|
|
$(INSCMD) -m 600 -chr ${C_HDSP},1 hdsp/hdsp$${unit}control; \
|
|
done ; \
|
|
fi
|
|
|
|
#external interrupts
|
|
ei: anything
|
|
rm -f ei; \
|
|
rm -f external_int; \
|
|
if [ -d external_int -a -l external_int ]; then :;\
|
|
else \
|
|
if [ -d /hw/external_int ]; then \
|
|
ln -s /hw/external_int . ; \
|
|
ln -s external_int/1 ei; \
|
|
fi \
|
|
fi
|
|
|
|
fsctl: anything
|
|
rm -f fsctl
|
|
mknod fsctl c ${C_FSCTL} 0
|
|
chmod 600 fsctl
|
|
|
|
# midi clone device
|
|
midi: anything
|
|
rm -f midi imidi
|
|
mknod midi c ${C_CLN} ${C_MIDI}
|
|
mknod imidi c ${C_CLN} ${C_IMIDI}
|
|
chmod 666 midi
|
|
chmod 666 imidi
|
|
|
|
video: anything
|
|
# Starter Video
|
|
if hinv -c processor | grep -s 'IP20' > /dev/null; then \
|
|
rm -f video ; mknod video c ${C_VIDEO1} 0 ; chmod 666 video ; \
|
|
fi
|
|
# Vino Video
|
|
if hinv -c processor | grep -s 'IP22' > /dev/null; then \
|
|
rm -f vino ; mknod vino c ${C_VIDEO1} 0 ; chmod 666 vino ; \
|
|
fi
|
|
# Sirius Video and /dev/vid support for Sirius
|
|
if hinv -c processor | grep -s 'IP1[79]' > /dev/null || \
|
|
hinv -c processor | grep -s 'IP21' > /dev/null ; then \
|
|
rm -f vid ; mknod vid c ${C_VIDEO1} 0 ; chmod 666 vid ; \
|
|
rm -f Sirius ; mknod Sirius c ${C_VIDEO2} 0 ; chmod 666 Sirius ; \
|
|
fi
|
|
# Galileo Video
|
|
if hinv -c processor | grep -s 'IP2[0268]' > /dev/null; then \
|
|
rm -f ev1 ; mknod ev1 c ${C_VIDEO2} 0 ; chmod 666 ev1 ; \
|
|
fi
|
|
# IMPACT Video
|
|
if hinv -c processor | grep -s 'IP2[268]' > /dev/null; then \
|
|
rm -f mgv ; mknod mgv c ${C_VIDEO3} 0 ; chmod 666 mgv ; \
|
|
fi
|
|
# O2 Video
|
|
if hinv -c processor | grep -s 'IP32' > /dev/null; then \
|
|
rm -f vice ; mknod vice c ${C_VIDEO4} 0 ; chmod 666 vice ; \
|
|
rm -f vicedms ; mknod vicedms c ${C_VIDEO4} 32 ; chmod 666 vicedms ; \
|
|
rm -f vicedbg ; mknod vicedbg c ${C_VIDEO4} 15 ; chmod 666 vicedbg ; \
|
|
rm -f mvp ; mknod mvp c ${C_VIDEO1} 0 ; chmod 666 mvp ; \
|
|
fi
|
|
# Speedracer Pro Video
|
|
# On IP30, link /dev/mgv to /hw/srv for backwards compatibility.
|
|
# /hw/srv is a link to canonical hwgraph vertex for video board.
|
|
if hinv -c processor | grep -s 'IP30' > /dev/null; then \
|
|
rm -f /dev/mgv; \
|
|
if [ -c /hw/srv ]; then \
|
|
ln -s /hw/srv /dev/mgv ; chmod 666 /dev/mgv ; \
|
|
fi; \
|
|
fi
|
|
# Speedracer Personal Video
|
|
# /hw/evo is a link to canonical hwgraph vertex for video board.
|
|
if hinv -c processor | grep -s 'IP30' > /dev/null; then \
|
|
rm -f /dev/evo; \
|
|
if [ -c /hw/evo ]; then \
|
|
ln -s /hw/evo /dev/evo ; chmod 666 /dev/evo ; \
|
|
fi; \
|
|
fi
|
|
tpi: anything
|
|
rm -f tcp udp rawip icmp ticlts ticots ticotsord
|
|
mknod tcp c ${C_CLN} ${C_TPITCP}
|
|
mknod udp c ${C_CLN} ${C_TPIUDP}
|
|
mknod rawip c ${C_CLN} ${C_TPIIP}
|
|
mknod icmp c ${C_CLN} ${C_TPIICMP}
|
|
mknod ticlts c ${C_CLN} ${C_TCL}
|
|
mknod ticots c ${C_CLN} ${C_TCO}
|
|
mknod ticotsord c ${C_CLN} ${C_TCOO}
|
|
chmod 666 tcp udp rawip icmp ticlts ticots ticotsord
|
|
|
|
sad: anything
|
|
rm -rf sad
|
|
umask 22; mkdir sad
|
|
mknod sad/user c $(C_SAD) 0
|
|
mknod sad/admin c $(C_SAD) 1
|
|
chmod 666 sad/user sad/admin
|
|
|
|
ipfilter: anything
|
|
rm -f ipfilter
|
|
mknod ipfilter c ${C_IPFLTR} 0
|
|
if [ -c ipfilter ] ; then \
|
|
chmod 644 ipfilter; \
|
|
fi
|
|
|
|
# Get rid of obsolete "garbage", from drivers no longer shipped,
|
|
# or old names from older OS releases. Leaving these can cause some
|
|
# confusion
|
|
garbage: anything
|
|
# very old products, pre-6.2
|
|
rm -rf sat m33X25* queue audio cent
|
|
# obsolete 3270 product
|
|
rm -rf t3270 t3270c0 t3270c1 t3270d0 t3270d1 t3270ms t3270lt t3270dt
|
|
# obsolete IBM SNA SDLC product
|
|
rm -rf si1 si2 si3 si4 sipr1 sipr2 sipr3 sipr4 simaster lnktrace
|
|
# obsolete IBM 5080 product
|
|
rm -rf gse
|
|
# from irix5.3
|
|
rm -rf graphics_opengl
|
|
|
|
|
|
# Used to force above rules to run, even if the target
|
|
# exists (as opposed to what the rules create, cent for instance)
|
|
anything:
|
|
|
|
# This is not ever invoked automatically.
|
|
owners: anything alldevs
|
|
chown -R root.sys .
|
|
chown lp.bin plp*
|
|
|
|
# make secure; It is more restrictive than individual targets.
|
|
# to make exactly the original target permissions, remove all
|
|
# devices and remake them with "make removealldevices alldevs"
|
|
# this deliberately does not depend on owners or alldevs
|
|
# Some of these devices may not normally exist on some or all systems
|
|
# This is not ever invoked automatically.
|
|
permissions:
|
|
@echo \\tFixing device permissions to be restrictive in `pwd`,
|
|
@echo \\twith the common exceptions.
|
|
-chown -R root.sys .
|
|
-chown lp.bin plp*
|
|
-chmod -R og-w .
|
|
-chmod -R go-wr dsk rdsk scsi
|
|
-find . -type d -print | xargs chmod 755
|
|
# these are group readable
|
|
-chmod 640 swap
|
|
-chmod 640 hw/fetchop vme/dma* vme/vme* eisa/eisa*
|
|
# these must be 666 for correct operation
|
|
chmod 666 null zero tty log ptc ptc[1-4]
|
|
# these must be 666 for correct operation of SVR4 networking
|
|
-chmod 666 tcp udp rawip icmp ticlts ticots ticotsord sad/user sad/admin
|
|
# digital media devices
|
|
-chmod 666 dms cosmo indycomp video vino vid Sirius ev1 mgv midi imidi \
|
|
hdsp/hdsp[0-9]*r[0-9]* hdsp/hdsp[0-9]*master \
|
|
hdsp/hdsp[0-9]*events
|
|
# Other devices normally 666
|
|
-chmod 666 ccsync
|
|
# removable media devices are normally created mode 666
|
|
-chmod 666 rmt/tps* rdsk/fds[0-9]*
|
|
|
|
# remove all device files, and any directories that are thereafter
|
|
# This is not ever invoked automatically.
|
|
# empty
|
|
removealldevices:
|
|
find . -mount ! \( -type d -o -type f \) -print | xargs rm -f
|
|
find . -mount -depth -type d -print | xargs rmdir -ps
|
|
ls -ltR
|