Subject: Re: MI MAKEDEV code
To: Christos Zoulas <christos@zoulas.com>
From: Luke Mewburn <lukem@netbsd.org>
List: tech-kern
Date: 05/25/2003 21:22:36
--EXKGNeO8l0xGFBjy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Sat, May 24, 2003 at 10:07:07PM -0400, Christos Zoulas wrote:
| Hello,
|
| The following code contains changes to the classic MAKEDEV script, to
| include a MAKEDEV.majors thus making it largely machine independent.
| The following shar contains a copy of the new MAKEDEV script, a simple
| shell script (mkdev) to generate MAKEDEV.majors, and a patch to the
| Makefile. To use extract in in /usr/src/etc, then apply the patch and
| remove etc.i386/MAKEDEV. Please note that the new script is a lot smaller
| and somewhat slower than the old one, because it does individual rm's
| chmod's and chown's. This can be easily fixed by adding the necessary
| options to mknod(1). Now there is only one mknod invocation in the file.
|
| Please let me know what you think. It is pretty easy to convert the new
| archs to use it, but it might break the script that generates the man
| pages.
I've actually done a similar thing in the past, but I can't find where
I stuffed the "Work in Progress".
Another change I tried was to use David Laight's new mknod -r/-u/-g/-m
options to:
a) improve the performance of MAKEDEV (by replacing the
"rm, mknod, chown, chmod" with "mknod"
b) not recreate nodes that exist with the correct settings
I was going to commit this to the i386 a little while ago, but I got
some pushback from some people as they were concerned that this would
prevent the script from being run on non-NetBSD-current servers of
diskless clients. I think that this is already a problem because
we can't rely upon said servers actually having the same major/minor
layout of dev_t anyway, and extracting a tar file won't work because
that encodes major/minor rather than dev_t, and the host's makedev()
macro will do the wrong thing there as well.
In order to ensure consistent and correct devices being created in the
"non-native" execution of MAKEDEV, I propose the following:
a) convert the "create node" operations to using ${MKNOD}
with the new syntax. E.g, replace
rm -f lkm
mknod lkm c 28 0
chgrp kmem lkm
chmod 640 lkm
with
${MKNOD} -r -m 640 -g kmem lkm c 28 0
b) set MKNOD as:
: ${MKNOD:=/sbin/mknod}
so that MKNOD can be overridden in MAKEDEVs environment to get
a "host" version
c) compile a "host tool" version of mknod (e.g, $TOOLDIR/bin/nbmknod)
for use by b) above.
Here's my modified i386 MAKEDEV script, and a diff -u against the
-current version. There's still a couple of consistency tweaks that
could be performed (e.g, sometimes $major is set to the major number
and then $major is used in the ${MKNOD} line, other times the major
number is referenced directly), but you get the general idea.
Hope that helps,
Luke.
--EXKGNeO8l0xGFBjy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="MAKEDEV.quick"
#!/bin/sh -
#
# $NetBSD: MAKEDEV,v 1.202 2003/05/15 13:18:09 wiz Exp $
#
# Copyright (c) 1990 The Regents of the University of California.
# All rights reserved.
#
# Written and contributed by W. Jolitz 12/90
#
# Redistribution and use in source and binary forms are permitted provided
# that: (1) source distributions retain this entire copyright notice and
# comment, and (2) distributions including binaries display the following
# acknowledgement: ``This product includes software developed by the
# University of California, Berkeley and its contributors'' in the
# documentation or other materials provided with the distribution and in
# all advertising materials mentioning features or use of this software.
# Neither the name of the University nor the names of its contributors may
# be used to endorse or promote products derived from this software without
# specific prior written permission.
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# @(#)MAKEDEV 5.2 (Berkeley) 6/22/90
#
###########################################################################
#
# PLEASE RUN "cd ../share/man/man8 ; make makedevs"
# AFTER CHANGING THIS FILE, AND COMMIT THE UPDATED MANPAGE!
#
###########################################################################
#
# Device "make" file. Valid arguments:
# all makes all known devices, including local devices.
# Tries to make the 'standard' number of each type.
# init A set of devices that is used for MFS /dev by init.
# May be equal to "all".
# floppy devices to be put on install floppies
# ramdisk devices to be put into INSTALL kernel ramdisks.
# std standard devices
# local configuration specific devices
# usbs make USB devices
# isdns make ISDN devices
#
# Tapes:
# wt* QIC-interfaced (e.g. not SCSI) 3M cartridge tape
# st* SCSI tapes
#
# Disks:
# wd* "winchester" disk drives (ST506,IDE,ESDI,RLL,...)
# fd* "floppy" disk drives (3 1/2", 5 1/4")
# sd* SCSI disks
# cd* SCSI or ATAPI CD-ROM
# mcd* Mitsumi CD-ROM
# vnd* "file" pseudo-disks
# md* memory pseudo-disk devices
# ccd* concatenated disk devices
# cgd* cryptographic disk devices
# raid* RAIDframe disk devices
# ld* Logical disk devices (e.g., hardware RAID)
# ed* PS/2 ESDI disk devices
#
# Console ports:
# ttyv0 pccons
# ttyE* wscons
#
# Pointing devices:
# wsmouse* wscons mouse events
#
# Keyboard devices:
# wskbd* wscons keyboard events
#
# Terminal ports:
# com* standard PC COM ports (XXX)
# tty* alias for PC COM ports, this is what the system really wants
# ttyCZ* Cyclades-Z multiport serial boards. Each "unit"
# makes 64 ports.
# ttyCY* Cyclom-Y multiport serial boards. Each "unit" makes
# 32 ports.
#
# Pseudo terminals:
# pty* set of 62 master and slave pseudo terminals
# opty first 16 ptys, to save inodes on install media
#
# Printers:
# lpt* stock lp
# lpa* interruptless lp
#
# USB devices:
# usb* USB control devices
# uhid* USB generic HID devices
# ulpt* USB printer devices
# ugen* USB generic devices
# urio* USB Diamond Rio 500 devices
# uscanner* USB scanners
# ttyU* USB modems
#
# ISDN devices:
# isdn communication between userland isdnd and kernel
# isdnctl control device
# isdnbchan* raw b-channel access
# isdntel* telephony device
# isdntrc* trace device
#
# Special purpose devices:
# clockctl clock control for non root users
# fd file descriptors
# bpf* packet filter
# cir* Consumer IR
# ipl IP Filter
# irframe* IrDA physical frame
# random Random number generator, see rnd(4)
# speaker PC speaker (XXX - installed)
# lkm loadable kernel modules interface
# audio* audio devices
# apm power management device
# tun* network tunnel driver
# joy* joystick device
# satlink* PlanetConnect satellite receiver driver
# scsibus* SCSI busses, see scsi(4), scsictl(8)
# ses* SES/SAF-TE SCSI Devices
# ss* SCSI scanner
# uk* unknown SCSI device
# ch* SCSI media changer
# cfs* Coda file system device
# sysmon System Monitoring hardware
# bktr Brooktree 848/849/878/879 based TV cards
# iop* I2O IOP control interface
# mlx* Mylex DAC960 control interface
# mly* Mylex AcceleRAID/eXtremeRAID control interface
# altq ALTQ control interface
# vmegen* generic VME access
# wsfont* console font control
# wsmux* wscons event multiplexor
# agp* AGP GART devices
# pci* PCI bus access devices
# dpt* DPT/Adaptec EATA RAID management interface
# dpti* DPT/Adaptec I2O RAID management interface
# radio* radio devices
# nsmb* SMB requester
# systrace syscall tracer
# kttcp kernel ttcp helper device
# dmoverio hardware-assisted data movers
# veriexec verified executable fingerprint loader
# twe 3ware Escalade control interface
# icp ICP-Vortex/Intel RAID control interface
#
: ${MKNOD:=/sbin/mknod}
u_uucp="-u #$(id -u uucp)" # cache uucp user
g_op="-g #5" # operator group: XXX determine in a better way?
dialin=0
dialout=524288 # high bit of the minor number
callunit=262144
highpartoffset=524280 # offset for partition 9 to 16
PATH=/sbin:/usr/sbin:/bin:/usr/bin
umask 77
# Check if we have fdesc mounted
if [ -d fd ]; then
case "$(df fd)" in
*fdesc*) nofdesc=false;;
*) nofdesc=true;;
esac
else
nofdesc=true
fi
makedev()
{
for i
do
case $i in
# As of 2003-04-17, the "init" case must not create more than 890 entries.
init)
makedev std wscons wt0 fd0 fd1 wd0 wd1 wd2 wd3 sd0 sd1 sd2 sd3 sd4
makedev tty0 tty1
makedev st0 st1 ch0 cd0 cd1 mcd0 vnd0
makedev bpf0
makedev ccd0 md0 ch0 random
makedev cgd0 cgd1
makedev iop0 mlx0 mly0 dpti0 dpt0 twe0 icp0
makedev ed0 ed1
makedev raid0
makedev ld0 ld1 ld2 ld3
makedev usbs
makedev ipty
makedev local
;;
all)
makedev init
makedev fd
makedev tty2 tty3 pty0
makedev lpa0 lpa1 lpa2
makedev lpt0 lpt1 lpt2
makedev tun0 tun1 tun2 tun3 ipl
makedev bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7
makedev vnd1
makedev raid1 raid2 raid3 raid4 raid5 raid6 raid7
makedev ccd1 ccd2 ccd3
makedev cgd2 cgd3
makedev ss0 uk0 uk1
makedev speaker lkm joy0 joy1
makedev apm satlink0
makedev audio
makedev radio
makedev isdns
makedev music rmidi0 rmidi1 rmidi2 rmidi3 rmidi4 rmidi5 rmidi6 rmidi7
makedev scsibus0 scsibus1 scsibus2 scsibus3
makedev sysmon
makedev bktr
makedev ttyCZ0 ttyCY0
makedev agp0
makedev pci0 pci1 pci2 pci3 pci4 pci5 pci6 pci7
makedev altq
makedev cir0 cir1 irframe0 irframe1
makedev clockctl
makedev systrace
makedev kttcp
makedev dmoverio
makedev nsmb
;;
audio)
makedev audio0 audio1 audio2 audio3
ln -fs sound0 sound
ln -fs audio0 audio
ln -fs mixer0 mixer
ln -fs audioctl0 audioctl
;;
radio)
makedev radio0 radio1
ln -fs radio0 radio
;;
floppy)
makedev std wt0 fd0 fd1 wd0 wd1 wd2 wd3 sd0 sd1 sd2 sd3 sd4 st0 st1
makedev tty0 tty1 tty2 cd0 cd1 mcd0 ttyv0 opty ld0 ld1 ld2 ld3 ed0 ed1
;;
ramdisk)
makedev floppy md0
;;
usbs)
makedev usb usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
makedev uhid0 uhid1 uhid2 uhid3
makedev ulpt0 ulpt1
makedev ttyU0 ttyU1
makedev urio0
makedev uscanner0 uscanner1
makedev ugen0
;;
isdns)
makedev isdn isdnctl isdnbchan0 isdnbchan1 isdntel0 isdntel1 isdntrc0 isdntrc1
;;
std)
${MKNOD} -r -m 600 console c 0 0
${MKNOD} -r -m 640 -g kmem drum c 4 0
${MKNOD} -r -m 640 -g kmem kmem c 2 1
${MKNOD} -r -m 640 -g kmem mem c 2 0
${MKNOD} -r -m 666 null c 2 2
${MKNOD} -r -m 666 zero c 2 12
${MKNOD} -r -m 600 klog c 7 0
${MKNOD} -r -m 444 ksyms c 101 0
if $nofdesc; then
${MKNOD} -r -m 666 tty c 1 0
${MKNOD} -r -m 666 stdin c 22 0
${MKNOD} -r -m 666 stdout c 22 1
${MKNOD} -r -m 666 stderr c 22 2
fi
;;
usb*)
unit=${i#usb}
if [ "$unit" = "" ]; then
unit=255
usb=usb
else
usb=usb$unit
fi
major=55
${MKNOD} -r -m 600 $usb c $major $unit
;;
uhid*)
unit=${i#uhid}
major=56
${MKNOD} -r -m 666 uhid$unit c $major $unit
;;
ulpt*)
unit=${i#ulpt}
major=57
${MKNOD} -r -m 600 ulpt$unit c $major $unit
${MKNOD} -r -m 600 ulpn$unit c $major $(($unit + 64))
;;
urio*)
unit=${i#urio}
major=70
${MKNOD} -r -m 666 urio$unit c $major $unit
;;
uscanner*)
unit=${i#uscanner}
major=75
${MKNOD} -r -m 600 uscanner$unit c $major $unit
;;
ttyU*)
unit=${i#ttyU}
major=66
${MKNOD} -r -m 600 $u_uucp ttyU$unit c $major $(($unit + $dialin ))
${MKNOD} -r -m 600 $u_uucp dtyU$unit c $major $(($unit + $dialout ))
${MKNOD} -r -m 600 $u_uucp ctyU$unit c $major $(($unit + $callunit))
;;
ugen*)
unit=${i#ugen}
ugen=ugen$unit
major=64
for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
do
${MKNOD} -r -m 600 $ugen.$j c $major $(($unit * 16 + $j))
done
;;
ttyv0)
${MKNOD} -r -m 600 ttyv0 c 12 0
;;
wscons)
makedev ttyE0 ttyE1 ttyE2 ttyE3 ttyE4 ttyE5 ttyE6 ttyE7
makedev wsmouse0 wsmouse1 wsmouse2 wsmouse3
makedev wskbd0 wskbd1 wskbd2 wskbd3
makedev wsmux0 wsmux1 wsmux2 wsmux3
makedev wsmouse wskbd
makedev ttyEcfg ttyEstat
makedev wsfont
;;
wsmouse)
${MKNOD} -r -m 600 wsmouse c 65 0
;;
wskbd)
${MKNOD} -r -m 600 wskbd c 65 1
;;
wsmux*)
unit=${i#wsmux}
major=65
${MKNOD} -r -m 600 wsmux$unit c $major $unit
${MKNOD} -r -m 200 wsmuxctl$unit c $major $(($unit + 128))
;;
ttyEstat)
chr=47
${MKNOD} -r -m 600 ttyEstat c $chr 254
;;
ttyEcfg)
chr=47
${MKNOD} -r -m 600 ttyEcfg c $chr 255
;;
ttyE*)
unit=${i#ttyE}
chr=47
${MKNOD} -r -m 600 ttyE$unit c $chr $unit
;;
wsmouse*)
unit=${i#wsmouse}
major=49
${MKNOD} -r -m 600 wsmouse$unit c $major $unit
;;
wskbd*)
unit=${i#wskbd}
major=48
${MKNOD} -r -m 600 wskbd$unit c $major $unit
;;
fd)
if $nofdesc; then
mkdir -m 755 fd 2>/dev/null
n=0
while [ $n -lt 64 ]; do
${MKNOD} -r -m 666 fd/$n c 22 $n
n=$(($n + 1))
done
fi
;;
wt*)
case $i in
wt*) name=wt; unit=${i#wt}; chr=10; blk=3;;
esac
for sub in $unit $(($unit+8)) $(($unit+16))
do
${MKNOD} -r -m 660 $g_op $name$sub b $blk $(($sub + 0))
${MKNOD} -r -m 660 $g_op n$name$sub b $blk $(($sub + 4))
${MKNOD} -r -m 660 $g_op r$name$sub c $chr $(($sub + 0))
${MKNOD} -r -m 660 $g_op nr$name$sub c $chr $(($sub + 4))
done
;;
md*)
unit=${i#md}; blk=17; chr=24
${MKNOD} -r -m 640 $g_op md${unit}a b $blk $(($unit * 8 + 0))
${MKNOD} -r -m 640 $g_op md${unit}d b $blk $(($unit * 8 + 3))
# ${MKNOD} -r -m 640 $g_op rmd${unit}a c $chr $(($unit * 8 + 0))
# ${MKNOD} -r -m 640 $g_op rmd${unit}d c $chr $(($unit * 8 + 3))
;;
ss*)
case $i in
ss*) name=ss; unit=${i#ss}; chr=19;;
esac
${MKNOD} -r -m 640 $g_op $name$unit c $chr $(($unit * 16 + 0))
${MKNOD} -r -m 640 $g_op n$name$unit c $chr $(($unit * 16 + 1))
${MKNOD} -r -m 640 $g_op en$name$unit c $chr $(($unit * 16 + 3))
;;
ccd*|cgd*|fd*|ld*|raid*|sd*|vnd*|wd*|ed*)
case $i in
ccd*) name=ccd; unit=${i#ccd}; blk=16; chr=18;;
cgd*) name=cgd; unit=${i#cgd}; blk=21; chr=93;;
fd*) name=fd; unit=${i#fd}; blk=2; chr=9;;
raid*) name=raid; unit=${i#raid}; blk=18; chr=62;;
ld*) name=ld; unit=${i#ld}; blk=19; chr=69;;
sd*) name=sd; unit=${i#sd}; blk=4; chr=13;;
vnd*) name=vnd; unit=${i#vnd}; blk=14; chr=41;;
wd*) name=wd; unit=${i#wd}; blk=0; chr=3;;
ed*) name=ed; unit=${i#ed}; blk=20; chr=79;;
esac
${MKNOD} -r -m 640 $g_op ${name}${unit}a b $blk $(($unit * 8 + 0))
${MKNOD} -r -m 640 $g_op ${name}${unit}b b $blk $(($unit * 8 + 1))
${MKNOD} -r -m 640 $g_op ${name}${unit}c b $blk $(($unit * 8 + 2))
${MKNOD} -r -m 640 $g_op ${name}${unit}d b $blk $(($unit * 8 + 3))
${MKNOD} -r -m 640 $g_op ${name}${unit}e b $blk $(($unit * 8 + 4))
${MKNOD} -r -m 640 $g_op ${name}${unit}f b $blk $(($unit * 8 + 5))
${MKNOD} -r -m 640 $g_op ${name}${unit}g b $blk $(($unit * 8 + 6))
${MKNOD} -r -m 640 $g_op ${name}${unit}h b $blk $(($unit * 8 + 7))
${MKNOD} -r -m 640 $g_op ${name}${unit}i b $blk $(($unit * 8 + $highpartoffset + 8))
${MKNOD} -r -m 640 $g_op ${name}${unit}j b $blk $(($unit * 8 + $highpartoffset + 9))
${MKNOD} -r -m 640 $g_op ${name}${unit}k b $blk $(($unit * 8 + $highpartoffset + 10))
${MKNOD} -r -m 640 $g_op ${name}${unit}l b $blk $(($unit * 8 + $highpartoffset + 11))
${MKNOD} -r -m 640 $g_op ${name}${unit}m b $blk $(($unit * 8 + $highpartoffset + 12))
${MKNOD} -r -m 640 $g_op ${name}${unit}n b $blk $(($unit * 8 + $highpartoffset + 13))
${MKNOD} -r -m 640 $g_op ${name}${unit}o b $blk $(($unit * 8 + $highpartoffset + 14))
${MKNOD} -r -m 640 $g_op ${name}${unit}p b $blk $(($unit * 8 + $highpartoffset + 15))
${MKNOD} -r -m 640 $g_op r${name}${unit}a c $chr $(($unit * 8 + 0))
${MKNOD} -r -m 640 $g_op r${name}${unit}b c $chr $(($unit * 8 + 1))
${MKNOD} -r -m 640 $g_op r${name}${unit}c c $chr $(($unit * 8 + 2))
${MKNOD} -r -m 640 $g_op r${name}${unit}d c $chr $(($unit * 8 + 3))
${MKNOD} -r -m 640 $g_op r${name}${unit}e c $chr $(($unit * 8 + 4))
${MKNOD} -r -m 640 $g_op r${name}${unit}f c $chr $(($unit * 8 + 5))
${MKNOD} -r -m 640 $g_op r${name}${unit}g c $chr $(($unit * 8 + 6))
${MKNOD} -r -m 640 $g_op r${name}${unit}h c $chr $(($unit * 8 + 7))
${MKNOD} -r -m 640 $g_op r${name}${unit}i c $chr $(($unit * 8 + $highpartoffset + 8))
${MKNOD} -r -m 640 $g_op r${name}${unit}j c $chr $(($unit * 8 + $highpartoffset + 9))
${MKNOD} -r -m 640 $g_op r${name}${unit}k c $chr $(($unit * 8 + $highpartoffset + 10))
${MKNOD} -r -m 640 $g_op r${name}${unit}l c $chr $(($unit * 8 + $highpartoffset + 11))
${MKNOD} -r -m 640 $g_op r${name}${unit}m c $chr $(($unit * 8 + $highpartoffset + 12))
${MKNOD} -r -m 640 $g_op r${name}${unit}n c $chr $(($unit * 8 + $highpartoffset + 13))
${MKNOD} -r -m 640 $g_op r${name}${unit}o c $chr $(($unit * 8 + $highpartoffset + 14))
${MKNOD} -r -m 640 $g_op r${name}${unit}p c $chr $(($unit * 8 + $highpartoffset + 15))
;;
ttyCZ*)
unit=${i#ttyCZ}
major=73
minor=$(($unit * 64))
eminor=$(($minor + 64))
while [ $minor -lt $eminor ]; do
case "$minor" in
?)
nminor=000$minor ;;
??)
nminor=00$minor ;;
???)
nminor=0$minor ;;
*)
nminor=$minor ;;
esac
${MKNOD} -r -m 600 $u_uucp ttyCZ$nminor c $major $(($minor + $dialin ))
${MKNOD} -r -m 600 $u_uucp dtyCZ$nminor c $major $(($minor + $dialout))
minor=$(($minor + 1))
done
;;
ttyCY*)
unit=${i#ttyCY}
major=38
minor=$(($unit * 32))
eminor=$(($minor + 32))
while [ $minor -lt $eminor ]; do
case "$minor" in
?)
nminor=00$minor ;;
??)
nminor=0$minor ;;
*)
nminor=$minor ;;
esac
${MKNOD} -r -m 600 $u_uucp ttyCY$nminor c $major $(($minor + $dialin ))
${MKNOD} -r -m 600 $u_uucp dtyCY$nminor c $major $(($minor + $dialout))
minor=$(($minor + 1))
done
;;
com*|tty*) # (XXX -- com should die)
ounit=${i#???}
ounit=$(($ounit + 0))
if [ $ounit -lt 10 ]; then
unit=0$ounit
rm -f com$ounit
else
unit=$ounit
fi
${MKNOD} -r -m 600 $u_uucp tty$unit c 8 $(($ounit + $dialin ))
${MKNOD} -r -m 600 $u_uucp dty$unit c 8 $(($ounit + $dialout))
;;
opty)
for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f
do
case $j in
[0-9]) jn=$j ;;
a) jn=10 ;;
b) jn=11 ;;
c) jn=12 ;;
d) jn=13 ;;
e) jn=14 ;;
f) jn=15 ;;
esac
${MKNOD} -r -m 666 ttyp$j c 5 $jn
${MKNOD} -r -m 666 ptyp$j c 6 $jn
done
;;
ipty)
${MKNOD} -r -m 666 ttyp0 c 5 0
${MKNOD} -r -m 666 ttyp1 c 5 1
${MKNOD} -r -m 666 ptyp0 c 6 0
${MKNOD} -r -m 666 ptyp1 c 6 1
;;
pty*)
class=${i#pty}
name=$(echo pqrstuvwxyzPQRST | dd bs=1 count=1 skip=$class 2>/dev/null)
case $name in
v) echo "$0: $i: pty unit conflicts with console ttyv0 device."
continue ;;
?) ;;
*) echo "$0: $i: pty unit must be between 0 and 15"
continue ;;
esac
jn=0
while [ $jn -lt 62 ]
do
j=$(echo 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ | dd bs=1 count=1 skip=$jn 2>/dev/null)
skip=0
if [ $jn -ge 16 ]; then
skip=$(($class * 30 + 256 - 16))
fi
unit=$(($class * 16 + $jn + $skip))
${MKNOD} -r -m 666 tty$name$j c 5 $unit
${MKNOD} -r -m 666 pty$name$j c 6 $unit
jn=$(($jn + 1))
done
;;
st*)
case $i in
st*) name=st; unit=${i#st}; chr=14; blk=5;;
esac
${MKNOD} -r -m 660 $g_op $name$unit b $blk $(($unit * 16 + 0))
${MKNOD} -r -m 660 $g_op n$name$unit b $blk $(($unit * 16 + 1))
${MKNOD} -r -m 660 $g_op e$name$unit b $blk $(($unit * 16 + 2))
${MKNOD} -r -m 660 $g_op en$name$unit b $blk $(($unit * 16 + 3))
${MKNOD} -r -m 660 $g_op r$name$unit c $chr $(($unit * 16 + 0))
${MKNOD} -r -m 660 $g_op nr$name$unit c $chr $(($unit * 16 + 1))
${MKNOD} -r -m 660 $g_op er$name$unit c $chr $(($unit * 16 + 2))
${MKNOD} -r -m 660 $g_op enr$name$unit c $chr $(($unit * 16 + 3))
;;
ses*|ch*|uk*)
case $i in
ch*) name=ch; unit=${i#ch}; chr=17;;
uk*) name=uk; unit=${i#uk}; chr=20;;
ses*) name=ses; unit=${i#ses}; chr=74;;
esac
${MKNOD} -r -m 640 $g_op $name$unit c $chr $unit
;;
cd*|mcd*)
case $i in
cd*) name=cd; unit=${i#cd}; chr=15; blk=6;;
mcd*) name=mcd; unit=${i#mcd}; chr=39; blk=7;;
esac
${MKNOD} -r -m 640 $g_op ${name}${unit}a b $blk $(($unit * 8 + 0))
${MKNOD} -r -m 640 $g_op ${name}${unit}d b $blk $(($unit * 8 + 3))
${MKNOD} -r -m 640 $g_op r${name}${unit}a c $chr $(($unit * 8 + 0))
${MKNOD} -r -m 640 $g_op r${name}${unit}d c $chr $(($unit * 8 + 3))
;;
lpt*|lpa*)
case $i in
lpt*) name=lpt; unit=${i#lpt}; chr=16; flags=0;;
lpa*) name=lpa; unit=${i#lpa}; chr=16; flags=128;;
esac
${MKNOD} -r -m 600 $name$unit c $chr $(($unit + $flags))
;;
bpf*|tun*|joy*)
case $i in
bpf*) name=bpf; unit=${i#bpf}; chr=23;;
tun*) name=tun; unit=${i#tun}; chr=40;;
joy*) name=joy; unit=${i#joy}; chr=26;;
esac
${MKNOD} -r -m 600 $name$unit c $chr $unit
;;
ipl)
${MKNOD} -r -m 600 ipl c 44 0
${MKNOD} -r -m 600 ipnat c 44 1
${MKNOD} -r -m 600 ipstate c 44 2
${MKNOD} -r -m 600 ipauth c 44 3
;;
speaker) # (XXX - installed)
${MKNOD} -r -m 600 speaker c 27 0
;;
lkm)
${MKNOD} -r -m 640 -g kmem lkm c 28 0
;;
audio*)
unit=${i#audio}
major=42
${MKNOD} -r -m 666 sound$unit c $major $((${unit:-0} + 0))
${MKNOD} -r -m 666 audio$unit c $major $((${unit:-0} + 128))
${MKNOD} -r -m 666 mixer$unit c $major $((${unit:-0} + 16))
${MKNOD} -r -m 666 audioctl$unit c $major $((${unit:-0} + 192))
;;
rmidi*)
unit=${i#rmidi}
major=58
${MKNOD} -r -m 666 rmidi$unit c $major $unit
;;
music*)
unit=${i#music}
major=59
${MKNOD} -r -m 666 music$unit c $major $((${unit:-0} + 0))
${MKNOD} -r -m 666 sequencer$unit c $major $((${unit:-0} + 128))
;;
radio*)
unit=${i#radio}
major=87
${MKNOD} -r -m 666 radio$unit c $major ${unit:-0}
;;
apm*)
${MKNOD} -r -m 644 apm c 21 0
${MKNOD} -r -m 644 apmctl c 21 8
;;
satlink*)
unit=${i#satlink}
${MKNOD} -r -m 444 satlink$unit c 45 $unit
;;
random)
${MKNOD} -r -m 444 random c 46 0
${MKNOD} -r -m 644 urandom c 46 1
;;
cfs*)
unit=${i#cfs}
major=60
${MKNOD} -r -m 600 cfs$unit c $major $unit
;;
sysmon)
major=67
${MKNOD} -r -m 644 sysmon c $major 0
${MKNOD} -r -m 644 watchdog c $major 1
${MKNOD} -r -m 640 power c $major 2
;;
scsibus*)
unit=${i#scsibus}
${MKNOD} -r -m 644 scsibus$unit c 61 $unit
;;
bktr)
makedev bktr0 bktr1
ln -fs bktr0 bktr
ln -fs tuner0 tuner
ln -fs vbi0 vbi
;;
bktr*)
unit=${i#bktr}
${MKNOD} -r -m 444 bktr$unit c 71 $(($unit + 0))
${MKNOD} -r -m 444 tuner$unit c 71 $(($unit + 16))
${MKNOD} -r -m 444 vbi$unit c 71 $(($unit + 32))
;;
iop*)
unit=${i#iop}
${MKNOD} -r -m 600 iop$unit c 76 $unit
;;
mlx*)
unit=${i#mlx}
${MKNOD} -r -m 600 mlx$unit c 78 $unit
;;
mly*)
unit=${i#mly}
${MKNOD} -r -m 600 mly$unit c 80 $unit
;;
twe*)
unit=${i#twe}
${MKNOD} -r -m 600 twe$unit c 97 $unit
;;
icp*)
unit=${i#icp}
${MKNOD} -r -m 600 icp$unit c 102 $unit
;;
agp*)
unit=${i#agp}
${MKNOD} -r -m 644 agp$unit c 82 $unit
[ "$unit" = "0" ] && ln -fs agp$unit agpgart
;;
pci*)
unit=${i#pci}
${MKNOD} -r -m 644 pci$unit c 83 $unit
;;
dpti*)
unit=${i#dpti}
${MKNOD} -r -m 600 dpti$unit c 84 $unit
;;
dpt*)
unit=${i#dpt}
${MKNOD} -r -m 600 dpt$unit c 96 $unit
;;
altq)
mkdir -m 755 altq 2>/dev/null
unit=0
for dev in altq cbq wfq afm fifoq red rio localq hfsc cdnr blue priq; do
${MKNOD} -r -m 644 altq/$dev c 77 $unit
unit=$(($unit + 1))
done
;;
isdn)
${MKNOD} -r -m 600 isdn c 50 0
;;
isdnctl)
${MKNOD} -r -m 600 isdnctl c 51 0
;;
isdnbchan*)
unit=${i#isdnbchan}
${MKNOD} -r -m 600 isdnbchan$unit c 52 $unit
;;
isdntel*)
unit=${i#isdntel}
${MKNOD} -r -m 600 isdntel$unit c 54 $unit
;;
isdntrc*)
unit=${i#isdntrc}
${MKNOD} -r -m 600 isdntrc$unit c 53 $unit
;;
vmegen)
makedev vmegen0 vmegen1 vmegen2 vmegen3
;;
vmegen*)
unit=${i#vmegen}
${MKNOD} -r -m 600 vmegen$unit c 68 $(($unit * 16 + 0))
;;
wsfont)
${MKNOD} -r -m 600 wsfont c 81 0
;;
cir*)
unit=${i#cir}
major=86
${MKNOD} -r -m 666 cir$unit c $major $unit
;;
irframe*)
unit=${i#irframe}
major=85
${MKNOD} -r -m 600 irframe$unit c $major $unit
;;
clockctl)
${MKNOD} -r -m 660 -g ntpd clockctl c 89 0
;;
nsmb)
makedev nsmb0 nsmb1 nsmb2 nsmb3
;;
nsmb*)
unit=${i#nsmb}
major=98
${MKNOD} -r -m 644 nsmb$unit c $major $unit
;;
systrace)
${MKNOD} -r -m 644 systrace c 90 0
;;
kttcp)
${MKNOD} -r -m 600 kttcp c 91 0
;;
dmoverio)
${MKNOD} -r -m 644 dmoverio c 92 0
;;
veriexec)
${MKNOD} -r -m 644 veriexec c 94 0
;;
local)
if [ -f "$0.local" ]; then
umask 0
sh $0.local all
umask 77
fi
;;
*)
echo $i: unknown device
;;
esac
done
}
makedev $*
--EXKGNeO8l0xGFBjy
Content-Type: text/plain; charset=us-ascii
Content-Description: makedev.diff
Content-Disposition: attachment; filename=makedif
--- etc/etc.i386/MAKEDEV 2003-05-18 18:13:20.000000000 +1000
+++ /dev/MAKEDEV.quick 2003-05-25 21:20:25.000000000 +1000
@@ -146,6 +146,10 @@
# icp ICP-Vortex/Intel RAID control interface
#
+: ${MKNOD:=/sbin/mknod}
+u_uucp="-u #$(id -u uucp)" # cache uucp user
+g_op="-g #5" # operator group: XXX determine in a better way?
+
dialin=0
dialout=524288 # high bit of the minor number
callunit=262144
@@ -157,9 +161,9 @@
# Check if we have fdesc mounted
if [ -d fd ]; then
- case "`df fd`" in
- *fdesc*) nofdesc=false;;
- *) nofdesc=true;;
+ case "$(df fd)" in
+ *fdesc*) nofdesc=false;;
+ *) nofdesc=true;;
esac
else
nofdesc=true
@@ -261,88 +265,66 @@
;;
std)
- rm -f console drum mem kmem null zero io klog ksyms
- mknod console c 0 0
- mknod drum c 4 0 ; chmod 640 drum ; chgrp kmem drum
- mknod kmem c 2 1 ; chmod 640 kmem ; chgrp kmem kmem
- mknod mem c 2 0 ; chmod 640 mem ; chgrp kmem mem
- mknod null c 2 2 ; chmod 666 null
- mknod zero c 2 12 ; chmod 666 zero
- mknod klog c 7 0 ; chmod 600 klog
- mknod ksyms c 101 0 ; chmod 444 ksyms
+ ${MKNOD} -r -m 600 console c 0 0
+ ${MKNOD} -r -m 640 -g kmem drum c 4 0
+ ${MKNOD} -r -m 640 -g kmem kmem c 2 1
+ ${MKNOD} -r -m 640 -g kmem mem c 2 0
+ ${MKNOD} -r -m 666 null c 2 2
+ ${MKNOD} -r -m 666 zero c 2 12
+ ${MKNOD} -r -m 600 klog c 7 0
+ ${MKNOD} -r -m 444 ksyms c 101 0
+
if $nofdesc; then
- rm -f tty stdin stdout stderr
- mknod tty c 1 0 ; chmod 666 tty
- mknod stdin c 22 0 ; chmod 666 stdin
- mknod stdout c 22 1 ; chmod 666 stdout
- mknod stderr c 22 2 ; chmod 666 stderr
+ ${MKNOD} -r -m 666 tty c 1 0
+ ${MKNOD} -r -m 666 stdin c 22 0
+ ${MKNOD} -r -m 666 stdout c 22 1
+ ${MKNOD} -r -m 666 stderr c 22 2
fi
;;
usb*)
unit=${i#usb}
if [ "$unit" = "" ]; then
- unit=255
- usb=usb
+ unit=255
+ usb=usb
else
- usb=usb$unit
+ usb=usb$unit
fi
major=55
- rm -f $usb
- mknod $usb c $major $unit
- chmod 600 $usb
+ ${MKNOD} -r -m 600 $usb c $major $unit
;;
uhid*)
unit=${i#uhid}
- uhid=uhid$unit
major=56
- rm -f $uhid
- mknod $uhid c $major $unit
- chmod 666 $uhid
+ ${MKNOD} -r -m 666 uhid$unit c $major $unit
;;
ulpt*)
unit=${i#ulpt}
- ulpt=ulpt$unit
- ulpn=ulpn$unit
major=57
- rm -f $ulpt $ulpn
- mknod $ulpt c $major $unit
- mknod $ulpn c $major $(($unit + 64))
- chmod 600 $ulpt $ulpn
+ ${MKNOD} -r -m 600 ulpt$unit c $major $unit
+ ${MKNOD} -r -m 600 ulpn$unit c $major $(($unit + 64))
;;
urio*)
unit=${i#urio}
- urio=urio$unit
major=70
- rm -f $urio
- mknod $urio c $major $unit
- chmod 666 $urio
+ ${MKNOD} -r -m 666 urio$unit c $major $unit
;;
uscanner*)
unit=${i#uscanner}
- uscanner=uscanner$unit
major=75
- rm -f $uscanner
- mknod $uscanner c $major $unit
- chmod 600 $uscanner
+ ${MKNOD} -r -m 600 uscanner$unit c $major $unit
;;
ttyU*)
unit=${i#ttyU}
- ttyU=ttyU$unit
- dtyU=dtyU$unit
- ctyU=ctyU$unit
major=66
- rm -f $ttyU $dtyU $ctyU
- mknod $ttyU c $major $(($unit + $dialin ))
- mknod $dtyU c $major $(($unit + $dialout ))
- mknod $ctyU c $major $(($unit + $callunit))
- chown uucp $ttyU $dtyU $ctyU
- chmod 600 $ttyU $dtyU $ctyU
+ ${MKNOD} -r -m 600 $u_uucp ttyU$unit c $major $(($unit + $dialin ))
+ ${MKNOD} -r -m 600 $u_uucp dtyU$unit c $major $(($unit + $dialout ))
+ ${MKNOD} -r -m 600 $u_uucp ctyU$unit c $major $(($unit + $callunit))
;;
ugen*)
@@ -351,16 +333,12 @@
major=64
for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
do
- ugenj=$ugen.$j
- rm -f $ugenj
- mknod $ugenj c $major $(($unit * 16 + ${j#0}))
- chmod 600 $ugenj
+ ${MKNOD} -r -m 600 $ugen.$j c $major $(($unit * 16 + $j))
done
;;
ttyv0)
- rm -f ttyv0
- mknod ttyv0 c 12 0
+ ${MKNOD} -r -m 600 ttyv0 c 12 0
;;
wscons)
@@ -374,79 +352,56 @@
;;
wsmouse)
- rm -f wsmouse
- mknod wsmouse c 65 0
- chmod 600 wsmouse
+ ${MKNOD} -r -m 600 wsmouse c 65 0
;;
wskbd)
- rm -f wskbd
- mknod wskbd c 65 1
- chmod 600 wskbd
+ ${MKNOD} -r -m 600 wskbd c 65 1
;;
wsmux*)
unit=${i#wsmux}
- unitctl=$(($unit + 128))
- wsmux=wsmux$unit
- wsmuxctl=wsmuxctl$unit
major=65
- rm -f $wsmux $wsmuxctl
- mknod $wsmux c $major $unit
- chmod 600 $wsmux
- mknod $wsmuxctl c $major $unitctl
- chmod 200 $wsmuxctl
+ ${MKNOD} -r -m 600 wsmux$unit c $major $unit
+ ${MKNOD} -r -m 200 wsmuxctl$unit c $major $(($unit + 128))
;;
ttyEstat)
chr=47
- rm -f ttyEstat
- mknod ttyEstat c $chr 254
- chmod 600 ttyEstat
+ ${MKNOD} -r -m 600 ttyEstat c $chr 254
;;
ttyEcfg)
chr=47
- rm -f ttyEcfg
- mknod ttyEcfg c $chr 255
- chmod 600 ttyEcfg
+ ${MKNOD} -r -m 600 ttyEcfg c $chr 255
;;
ttyE*)
- chr=47; unit=${i#ttyE}
- rm -f ttyE$unit
- mknod ttyE$unit c $chr $unit
+ unit=${i#ttyE}
+ chr=47
+ ${MKNOD} -r -m 600 ttyE$unit c $chr $unit
;;
wsmouse*)
unit=${i#wsmouse}
- wsmouse=wsmouse$unit
major=49
- rm -f $wsmouse
- mknod $wsmouse c $major $unit
- chmod 600 $wsmouse
+ ${MKNOD} -r -m 600 wsmouse$unit c $major $unit
;;
wskbd*)
unit=${i#wskbd}
- wskbd=wskbd$unit
major=48
- rm -f $wskbd
- mknod $wskbd c $major $unit
- chmod 600 $wskbd
+ ${MKNOD} -r -m 600 wskbd$unit c $major $unit
;;
fd)
if $nofdesc; then
- rm -f fd/*
- mkdir fd 2>/dev/null
+ mkdir -m 755 fd 2>/dev/null
n=0
while [ $n -lt 64 ]; do
- mknod fd/$n c 22 $n
+ ${MKNOD} -r -m 666 fd/$n c 22 $n
n=$(($n + 1))
done
- chmod 755 fd
- chmod 666 fd/*
fi
;;
@@ -456,86 +411,74 @@
esac
for sub in $unit $(($unit+8)) $(($unit+16))
do
- rm -f $name$sub n$name$sub r$name$sub nr$name$sub
- mknod $name$sub b $blk $(($sub + 0))
- mknod n$name$sub b $blk $(($sub + 4))
- mknod r$name$sub c $chr $(($sub + 0))
- mknod nr$name$sub c $chr $(($sub + 4))
- chgrp operator $name$sub n$name$sub r$name$sub nr$name$sub
- chmod 660 $name$sub n$name$sub r$name$sub nr$name$sub
+ ${MKNOD} -r -m 660 $g_op $name$sub b $blk $(($sub + 0))
+ ${MKNOD} -r -m 660 $g_op n$name$sub b $blk $(($sub + 4))
+ ${MKNOD} -r -m 660 $g_op r$name$sub c $chr $(($sub + 0))
+ ${MKNOD} -r -m 660 $g_op nr$name$sub c $chr $(($sub + 4))
done
;;
md*)
unit=${i#md}; blk=17; chr=24
- rm -f md${unit}? rmd${unit}?
- mknod md${unit}a b $blk $(($unit * 8 + 0))
- mknod md${unit}d b $blk $(($unit * 8 + 3))
-# mknod rmd${unit}a c $chr $(($unit * 8 + 0))
-# mknod rmd${unit}d c $chr $(($unit * 8 + 3))
- chgrp operator md${unit}? #rmd${unit}?
- chmod 640 md${unit}? #rmd${unit}?
+ ${MKNOD} -r -m 640 $g_op md${unit}a b $blk $(($unit * 8 + 0))
+ ${MKNOD} -r -m 640 $g_op md${unit}d b $blk $(($unit * 8 + 3))
+# ${MKNOD} -r -m 640 $g_op rmd${unit}a c $chr $(($unit * 8 + 0))
+# ${MKNOD} -r -m 640 $g_op rmd${unit}d c $chr $(($unit * 8 + 3))
;;
ss*)
case $i in
ss*) name=ss; unit=${i#ss}; chr=19;;
esac
- rm -f $name$unit n$name$unit en$name$unit
- mknod $name$unit c $chr $(($unit * 16 + 0))
- mknod n$name$unit c $chr $(($unit * 16 + 1))
- mknod en$name$unit c $chr $(($unit * 16 + 3))
- chgrp operator $name$unit n$name$unit en$name$unit
- chmod 640 $name$unit n$name$unit en$name$unit
+ ${MKNOD} -r -m 640 $g_op $name$unit c $chr $(($unit * 16 + 0))
+ ${MKNOD} -r -m 640 $g_op n$name$unit c $chr $(($unit * 16 + 1))
+ ${MKNOD} -r -m 640 $g_op en$name$unit c $chr $(($unit * 16 + 3))
;;
ccd*|cgd*|fd*|ld*|raid*|sd*|vnd*|wd*|ed*)
case $i in
- ccd*) name=ccd; unit=${i#ccd}; blk=16; chr=18;;
- cgd*) name=cgd; unit=${i#cgd}; blk=21; chr=93;;
- fd*) name=fd; unit=${i#fd}; blk=2; chr=9;;
- raid*) name=raid; unit=${i#raid}; blk=18; chr=62;;
- ld*) name=ld; unit=${i#ld}; blk=19; chr=69;;
- sd*) name=sd; unit=${i#sd}; blk=4; chr=13;;
- vnd*) name=vnd; unit=${i#vnd}; blk=14; chr=41;;
- wd*) name=wd; unit=${i#wd}; blk=0; chr=3;;
- ed*) name=ed; unit=${i#ed}; blk=20; chr=79;;
+ ccd*) name=ccd; unit=${i#ccd}; blk=16; chr=18;;
+ cgd*) name=cgd; unit=${i#cgd}; blk=21; chr=93;;
+ fd*) name=fd; unit=${i#fd}; blk=2; chr=9;;
+ raid*) name=raid; unit=${i#raid}; blk=18; chr=62;;
+ ld*) name=ld; unit=${i#ld}; blk=19; chr=69;;
+ sd*) name=sd; unit=${i#sd}; blk=4; chr=13;;
+ vnd*) name=vnd; unit=${i#vnd}; blk=14; chr=41;;
+ wd*) name=wd; unit=${i#wd}; blk=0; chr=3;;
+ ed*) name=ed; unit=${i#ed}; blk=20; chr=79;;
esac
- rm -f $name$unit? r$name$unit?
- mknod ${name}${unit}a b $blk $(($unit * 8 + 0))
- mknod ${name}${unit}b b $blk $(($unit * 8 + 1))
- mknod ${name}${unit}c b $blk $(($unit * 8 + 2))
- mknod ${name}${unit}d b $blk $(($unit * 8 + 3))
- mknod ${name}${unit}e b $blk $(($unit * 8 + 4))
- mknod ${name}${unit}f b $blk $(($unit * 8 + 5))
- mknod ${name}${unit}g b $blk $(($unit * 8 + 6))
- mknod ${name}${unit}h b $blk $(($unit * 8 + 7))
- mknod ${name}${unit}i b $blk $(($unit * 8 + $highpartoffset + 8))
- mknod ${name}${unit}j b $blk $(($unit * 8 + $highpartoffset + 9))
- mknod ${name}${unit}k b $blk $(($unit * 8 + $highpartoffset + 10))
- mknod ${name}${unit}l b $blk $(($unit * 8 + $highpartoffset + 11))
- mknod ${name}${unit}m b $blk $(($unit * 8 + $highpartoffset + 12))
- mknod ${name}${unit}n b $blk $(($unit * 8 + $highpartoffset + 13))
- mknod ${name}${unit}o b $blk $(($unit * 8 + $highpartoffset + 14))
- mknod ${name}${unit}p b $blk $(($unit * 8 + $highpartoffset + 15))
- mknod r${name}${unit}a c $chr $(($unit * 8 + 0))
- mknod r${name}${unit}b c $chr $(($unit * 8 + 1))
- mknod r${name}${unit}c c $chr $(($unit * 8 + 2))
- mknod r${name}${unit}d c $chr $(($unit * 8 + 3))
- mknod r${name}${unit}e c $chr $(($unit * 8 + 4))
- mknod r${name}${unit}f c $chr $(($unit * 8 + 5))
- mknod r${name}${unit}g c $chr $(($unit * 8 + 6))
- mknod r${name}${unit}h c $chr $(($unit * 8 + 7))
- mknod r${name}${unit}i c $chr $(($unit * 8 + $highpartoffset + 8))
- mknod r${name}${unit}j c $chr $(($unit * 8 + $highpartoffset + 9))
- mknod r${name}${unit}k c $chr $(($unit * 8 + $highpartoffset + 10))
- mknod r${name}${unit}l c $chr $(($unit * 8 + $highpartoffset + 11))
- mknod r${name}${unit}m c $chr $(($unit * 8 + $highpartoffset + 12))
- mknod r${name}${unit}n c $chr $(($unit * 8 + $highpartoffset + 13))
- mknod r${name}${unit}o c $chr $(($unit * 8 + $highpartoffset + 14))
- mknod r${name}${unit}p c $chr $(($unit * 8 + $highpartoffset + 15))
- chgrp operator $name$unit? r$name$unit?
- chmod 640 $name$unit? r$name$unit?
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}a b $blk $(($unit * 8 + 0))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}b b $blk $(($unit * 8 + 1))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}c b $blk $(($unit * 8 + 2))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}d b $blk $(($unit * 8 + 3))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}e b $blk $(($unit * 8 + 4))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}f b $blk $(($unit * 8 + 5))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}g b $blk $(($unit * 8 + 6))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}h b $blk $(($unit * 8 + 7))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}i b $blk $(($unit * 8 + $highpartoffset + 8))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}j b $blk $(($unit * 8 + $highpartoffset + 9))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}k b $blk $(($unit * 8 + $highpartoffset + 10))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}l b $blk $(($unit * 8 + $highpartoffset + 11))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}m b $blk $(($unit * 8 + $highpartoffset + 12))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}n b $blk $(($unit * 8 + $highpartoffset + 13))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}o b $blk $(($unit * 8 + $highpartoffset + 14))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}p b $blk $(($unit * 8 + $highpartoffset + 15))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}a c $chr $(($unit * 8 + 0))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}b c $chr $(($unit * 8 + 1))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}c c $chr $(($unit * 8 + 2))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}d c $chr $(($unit * 8 + 3))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}e c $chr $(($unit * 8 + 4))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}f c $chr $(($unit * 8 + 5))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}g c $chr $(($unit * 8 + 6))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}h c $chr $(($unit * 8 + 7))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}i c $chr $(($unit * 8 + $highpartoffset + 8))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}j c $chr $(($unit * 8 + $highpartoffset + 9))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}k c $chr $(($unit * 8 + $highpartoffset + 10))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}l c $chr $(($unit * 8 + $highpartoffset + 11))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}m c $chr $(($unit * 8 + $highpartoffset + 12))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}n c $chr $(($unit * 8 + $highpartoffset + 13))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}o c $chr $(($unit * 8 + $highpartoffset + 14))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}p c $chr $(($unit * 8 + $highpartoffset + 15))
;;
ttyCZ*)
@@ -544,20 +487,18 @@
minor=$(($unit * 64))
eminor=$(($minor + 64))
while [ $minor -lt $eminor ]; do
- if [ $minor -lt 10 ]; then
- nminor=000$minor
- elif [ $minor -lt 100 ]; then
- nminor=00$minor
- elif [ $minor -lt 1000 ]; then
- nminor=0$minor
- else
- nminor=$minor
- fi
- rm -f ttyCZ$nminor dtyCZ$nminor
- mknod ttyCZ$nminor c $major $(($minor + $dialin ))
- mknod dtyCZ$nminor c $major $(($minor + $dialout ))
- chown uucp ttyCZ$nminor dtyCZ$nminor
- chmod 600 ttyCZ$nminor dtyCZ$nminor
+ case "$minor" in
+ ?)
+ nminor=000$minor ;;
+ ??)
+ nminor=00$minor ;;
+ ???)
+ nminor=0$minor ;;
+ *)
+ nminor=$minor ;;
+ esac
+ ${MKNOD} -r -m 600 $u_uucp ttyCZ$nminor c $major $(($minor + $dialin ))
+ ${MKNOD} -r -m 600 $u_uucp dtyCZ$nminor c $major $(($minor + $dialout))
minor=$(($minor + 1))
done
;;
@@ -568,18 +509,16 @@
minor=$(($unit * 32))
eminor=$(($minor + 32))
while [ $minor -lt $eminor ]; do
- if [ $minor -lt 10 ]; then
- nminor=00$minor
- elif [ $minor -lt 100 ]; then
- nminor=0$minor
- else
- nminor=$minor
- fi
- rm -f ttyCY$nminor dtyCY$nminor
- mknod ttyCY$nminor c $major $(($minor + $dialin ))
- mknod dtyCY$nminor c $major $(($minor + $dialout ))
- chown uucp ttyCY$nminor dtyCY$nminor
- chmod 600 ttyCY$nminor dtyCY$nminor
+ case "$minor" in
+ ?)
+ nminor=00$minor ;;
+ ??)
+ nminor=0$minor ;;
+ *)
+ nminor=$minor ;;
+ esac
+ ${MKNOD} -r -m 600 $u_uucp ttyCY$nminor c $major $(($minor + $dialin ))
+ ${MKNOD} -r -m 600 $u_uucp dtyCY$nminor c $major $(($minor + $dialout))
minor=$(($minor + 1))
done
;;
@@ -593,14 +532,11 @@
else
unit=$ounit
fi
- rm -f tty$unit dty$unit
- mknod tty$unit c 8 $(($ounit + $dialin ))
- mknod dty$unit c 8 $(($ounit + $dialout))
- chown uucp tty$unit dty$unit
+ ${MKNOD} -r -m 600 $u_uucp tty$unit c 8 $(($ounit + $dialin ))
+ ${MKNOD} -r -m 600 $u_uucp dty$unit c 8 $(($ounit + $dialout))
;;
opty)
- rm -f ttyp[0-9a-f] ptyp[0-9a-f]
for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f
do
case $j in
@@ -612,24 +548,21 @@
e) jn=14 ;;
f) jn=15 ;;
esac
- mknod ttyp$j c 5 $jn
- mknod ptyp$j c 6 $jn
+ ${MKNOD} -r -m 666 ttyp$j c 5 $jn
+ ${MKNOD} -r -m 666 ptyp$j c 6 $jn
done
- chmod 666 ttyp[0-9a-f] ptyp[0-9a-f]
;;
ipty)
- rm -f ttyp0 ttyp1 ptyp0 ptyp1
- mknod ttyp0 c 5 0
- mknod ttyp1 c 5 1
- mknod ptyp0 c 6 0
- mknod ptyp1 c 6 1
- chmod 666 ttyp0 ttyp1 ptyp0 ptyp1
+ ${MKNOD} -r -m 666 ttyp0 c 5 0
+ ${MKNOD} -r -m 666 ttyp1 c 5 1
+ ${MKNOD} -r -m 666 ptyp0 c 6 0
+ ${MKNOD} -r -m 666 ptyp1 c 6 1
;;
pty*)
class=${i#pty}
- name=`echo pqrstuvwxyzPQRST | dd bs=1 count=1 skip=$class 2>/dev/null`
+ name=$(echo pqrstuvwxyzPQRST | dd bs=1 count=1 skip=$class 2>/dev/null)
case $name in
v) echo "$0: $i: pty unit conflicts with console ttyv0 device."
continue ;;
@@ -637,67 +570,53 @@
*) echo "$0: $i: pty unit must be between 0 and 15"
continue ;;
esac
- rm -f tty$name[0-9a-zA-Z] pty$name[0-9a-zA-Z]
jn=0
while [ $jn -lt 62 ]
do
- j=`echo 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ | dd bs=1 count=1 skip=$jn 2>/dev/null`
+ j=$(echo 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ | dd bs=1 count=1 skip=$jn 2>/dev/null)
skip=0
if [ $jn -ge 16 ]; then
skip=$(($class * 30 + 256 - 16))
fi
unit=$(($class * 16 + $jn + $skip))
- mknod tty$name$j c 5 $unit
- mknod pty$name$j c 6 $unit
+ ${MKNOD} -r -m 666 tty$name$j c 5 $unit
+ ${MKNOD} -r -m 666 pty$name$j c 6 $unit
jn=$(($jn + 1))
done
- chmod 666 tty$name[0-9a-zA-Z] pty$name[0-9a-zA-Z]
;;
st*)
case $i in
st*) name=st; unit=${i#st}; chr=14; blk=5;;
esac
- rm -f $name$unit n$name$unit e$name$unit en$name$unit \
- r$name$unit nr$name$unit er$name$unit enr$name$unit
- mknod $name$unit b $blk $(($unit * 16 + 0))
- mknod n$name$unit b $blk $(($unit * 16 + 1))
- mknod e$name$unit b $blk $(($unit * 16 + 2))
- mknod en$name$unit b $blk $(($unit * 16 + 3))
- mknod r$name$unit c $chr $(($unit * 16 + 0))
- mknod nr$name$unit c $chr $(($unit * 16 + 1))
- mknod er$name$unit c $chr $(($unit * 16 + 2))
- mknod enr$name$unit c $chr $(($unit * 16 + 3))
- chgrp operator $name$unit n$name$unit e$name$unit en$name$unit \
- r$name$unit nr$name$unit er$name$unit enr$name$unit
- chmod 660 $name$unit n$name$unit e$name$unit en$name$unit \
- r$name$unit nr$name$unit er$name$unit enr$name$unit
+ ${MKNOD} -r -m 660 $g_op $name$unit b $blk $(($unit * 16 + 0))
+ ${MKNOD} -r -m 660 $g_op n$name$unit b $blk $(($unit * 16 + 1))
+ ${MKNOD} -r -m 660 $g_op e$name$unit b $blk $(($unit * 16 + 2))
+ ${MKNOD} -r -m 660 $g_op en$name$unit b $blk $(($unit * 16 + 3))
+ ${MKNOD} -r -m 660 $g_op r$name$unit c $chr $(($unit * 16 + 0))
+ ${MKNOD} -r -m 660 $g_op nr$name$unit c $chr $(($unit * 16 + 1))
+ ${MKNOD} -r -m 660 $g_op er$name$unit c $chr $(($unit * 16 + 2))
+ ${MKNOD} -r -m 660 $g_op enr$name$unit c $chr $(($unit * 16 + 3))
;;
ses*|ch*|uk*)
case $i in
- ch*) name=ch; unit=${i#ch}; chr=17;;
- uk*) name=uk; unit=${i#uk}; chr=20;;
- ses*) name=ses; unit=${i#ses}; chr=74;;
+ ch*) name=ch; unit=${i#ch}; chr=17;;
+ uk*) name=uk; unit=${i#uk}; chr=20;;
+ ses*) name=ses; unit=${i#ses}; chr=74;;
esac
- rm -f $name$unit
- mknod $name$unit c $chr $unit
- chgrp operator $name$unit
- chmod 640 $name$unit
+ ${MKNOD} -r -m 640 $g_op $name$unit c $chr $unit
;;
cd*|mcd*)
case $i in
- cd*) name=cd; unit=${i#cd}; chr=15; blk=6;;
- mcd*) name=mcd; unit=${i#mcd}; chr=39; blk=7;;
+ cd*) name=cd; unit=${i#cd}; chr=15; blk=6;;
+ mcd*) name=mcd; unit=${i#mcd}; chr=39; blk=7;;
esac
- rm -f $name$unit? r$name$unit?
- mknod ${name}${unit}a b $blk $(($unit * 8 + 0))
- mknod ${name}${unit}d b $blk $(($unit * 8 + 3))
- mknod r${name}${unit}a c $chr $(($unit * 8 + 0))
- mknod r${name}${unit}d c $chr $(($unit * 8 + 3))
- chgrp operator $name$unit? r$name$unit?
- chmod 640 $name$unit? r$name$unit?
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}a b $blk $(($unit * 8 + 0))
+ ${MKNOD} -r -m 640 $g_op ${name}${unit}d b $blk $(($unit * 8 + 3))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}a c $chr $(($unit * 8 + 0))
+ ${MKNOD} -r -m 640 $g_op r${name}${unit}d c $chr $(($unit * 8 + 3))
;;
lpt*|lpa*)
@@ -705,8 +624,7 @@
lpt*) name=lpt; unit=${i#lpt}; chr=16; flags=0;;
lpa*) name=lpa; unit=${i#lpa}; chr=16; flags=128;;
esac
- rm -f $name$unit
- mknod $name$unit c $chr $(($unit + $flags))
+ ${MKNOD} -r -m 600 $name$unit c $chr $(($unit + $flags))
;;
bpf*|tun*|joy*)
@@ -715,129 +633,83 @@
tun*) name=tun; unit=${i#tun}; chr=40;;
joy*) name=joy; unit=${i#joy}; chr=26;;
esac
- rm -f $name$unit
- mknod $name$unit c $chr $unit
+ ${MKNOD} -r -m 600 $name$unit c $chr $unit
;;
ipl)
- rm -f ipl ipnat ipstate ipauth
- mknod ipl c 44 0
- mknod ipnat c 44 1
- mknod ipstate c 44 2
- mknod ipauth c 44 3
- chmod 600 ipl ipnat ipstate ipauth
+ ${MKNOD} -r -m 600 ipl c 44 0
+ ${MKNOD} -r -m 600 ipnat c 44 1
+ ${MKNOD} -r -m 600 ipstate c 44 2
+ ${MKNOD} -r -m 600 ipauth c 44 3
;;
speaker) # (XXX - installed)
- rm -f speaker
- mknod speaker c 27 0
+ ${MKNOD} -r -m 600 speaker c 27 0
;;
lkm)
- rm -f lkm
- mknod lkm c 28 0
- chgrp kmem lkm
- chmod 640 lkm
+ ${MKNOD} -r -m 640 -g kmem lkm c 28 0
;;
audio*)
unit=${i#audio}
- audio=audio$unit
- sound=sound$unit
- mixer=mixer$unit
major=42
- audioctl=audioctl$unit
- if [ "$unit" = "" ]; then unit=0; fi
- rm -f $audio $sound $mixer $audioctl
- mknod $sound c $major $(($unit + 0))
- mknod $audio c $major $(($unit + 128))
- mknod $mixer c $major $(($unit + 16))
- mknod $audioctl c $major $(($unit + 192))
- chmod 666 $audio $sound $mixer $audioctl
+ ${MKNOD} -r -m 666 sound$unit c $major $((${unit:-0} + 0))
+ ${MKNOD} -r -m 666 audio$unit c $major $((${unit:-0} + 128))
+ ${MKNOD} -r -m 666 mixer$unit c $major $((${unit:-0} + 16))
+ ${MKNOD} -r -m 666 audioctl$unit c $major $((${unit:-0} + 192))
;;
rmidi*)
unit=${i#rmidi}
major=58
- rmidi=rmidi$unit
- rm -f $rmidi
- mknod $rmidi c $major $unit
- chmod 666 $rmidi
+ ${MKNOD} -r -m 666 rmidi$unit c $major $unit
;;
music*)
unit=${i#music}
- music=music$unit
- sequencer=sequencer$unit
major=59
- if [ "$unit" = "" ]; then unit=0; fi
- rm -f $sequencer $music
- mknod $music c $major $(($unit + 0))
- mknod $sequencer c $major $(($unit + 128))
- chmod 666 $music $sequencer
+ ${MKNOD} -r -m 666 music$unit c $major $((${unit:-0} + 0))
+ ${MKNOD} -r -m 666 sequencer$unit c $major $((${unit:-0} + 128))
;;
radio*)
unit=${i#radio}
- radio=radio$unit
major=87
- if [ "$unit" = "" ]; then unit=0; fi
- rm -f $radio
- mknod $radio c $major $unit
- chmod 666 $radio
+ ${MKNOD} -r -m 666 radio$unit c $major ${unit:-0}
;;
apm*)
- rm -f apm apmctl
- mknod apm c 21 0
- mknod apmctl c 21 8
- chmod 644 apm apmctl
+ ${MKNOD} -r -m 644 apm c 21 0
+ ${MKNOD} -r -m 644 apmctl c 21 8
;;
satlink*)
unit=${i#satlink}
- rm -f satlink$unit
- mknod satlink$unit c 45 $unit
- chmod 444 satlink$unit
+ ${MKNOD} -r -m 444 satlink$unit c 45 $unit
;;
random)
- rm -f random urandom
- mknod random c 46 0
- mknod urandom c 46 1
- chmod 444 random
- chmod 644 urandom
+ ${MKNOD} -r -m 444 random c 46 0
+ ${MKNOD} -r -m 644 urandom c 46 1
;;
cfs*)
unit=${i#cfs}
- cfs=cfs$unit
major=60
- rm -f $cfs
- mknod $cfs c $major $unit
- chmod 600 $cfs
+ ${MKNOD} -r -m 600 cfs$unit c $major $unit
;;
sysmon)
major=67
- rm -f sysmon
- mknod sysmon c $major 0
- chmod 644 sysmon
-
- rm -f watchdog
- mknod watchdog c $major 1
- chmod 644 watchdog
-
- rm -f power
- mknod power c $major 2
- chmod 640 power
+ ${MKNOD} -r -m 644 sysmon c $major 0
+ ${MKNOD} -r -m 644 watchdog c $major 1
+ ${MKNOD} -r -m 640 power c $major 2
;;
scsibus*)
unit=${i#scsibus}
- rm -f scsibus$unit
- mknod scsibus$unit c 61 $unit
- chmod 644 scsibus$unit
+ ${MKNOD} -r -m 644 scsibus$unit c 61 $unit
;;
bktr)
@@ -849,121 +721,87 @@
bktr*)
unit=${i#bktr}
- rm -f bktr$unit tuner$unit vbi$unit
- mknod bktr$unit c 71 $(($unit + 0))
- mknod tuner$unit c 71 $(($unit + 16))
- mknod vbi$unit c 71 $(($unit + 32))
- chmod 444 bktr$unit tuner$unit vbi$unit
+ ${MKNOD} -r -m 444 bktr$unit c 71 $(($unit + 0))
+ ${MKNOD} -r -m 444 tuner$unit c 71 $(($unit + 16))
+ ${MKNOD} -r -m 444 vbi$unit c 71 $(($unit + 32))
;;
iop*)
unit=${i#iop}
- rm -f iop$unit
- mknod iop$unit c 76 $unit
- chmod 600 iop$unit
+ ${MKNOD} -r -m 600 iop$unit c 76 $unit
;;
mlx*)
unit=${i#mlx}
- rm -f mlx$unit
- mknod mlx$unit c 78 $unit
- chmod 600 mlx$unit
+ ${MKNOD} -r -m 600 mlx$unit c 78 $unit
;;
mly*)
unit=${i#mly}
- rm -f mly$unit
- mknod mly$unit c 80 $unit
- chmod 600 mly$unit
+ ${MKNOD} -r -m 600 mly$unit c 80 $unit
;;
twe*)
unit=${i#twe}
- rm -f twe$unit
- mknod twe$unit c 97 $unit
- chmod 600 twe$unit
+ ${MKNOD} -r -m 600 twe$unit c 97 $unit
;;
icp*)
unit=${i#icp}
- rm -f icp$unit
- mknod icp$unit c 102 $unit
- chmod 600 icp$unit
+ ${MKNOD} -r -m 600 icp$unit c 102 $unit
;;
agp*)
unit=${i#agp}
- rm -f agp$unit
- mknod agp$unit c 82 $unit
- if [ "$unit" = "0" ]; then ln -fs agp$unit agpgart; fi
- chmod 644 agp$unit
+ ${MKNOD} -r -m 644 agp$unit c 82 $unit
+ [ "$unit" = "0" ] && ln -fs agp$unit agpgart
;;
pci*)
unit=${i#pci}
- rm -f pci$unit
- mknod pci$unit c 83 $unit
- chmod 644 pci$unit
+ ${MKNOD} -r -m 644 pci$unit c 83 $unit
;;
dpti*)
unit=${i#dpti}
- rm -f dpti$unit
- mknod dpti$unit c 84 $unit
- chmod 600 dpti$unit
+ ${MKNOD} -r -m 600 dpti$unit c 84 $unit
;;
dpt*)
unit=${i#dpt}
- rm -f dpt$unit
- mknod dpt$unit c 96 $unit
- chmod 600 dpt$unit
+ ${MKNOD} -r -m 600 dpt$unit c 96 $unit
;;
altq)
- mkdir altq 2>/dev/null
- chmod 755 altq
+ mkdir -m 755 altq 2>/dev/null
unit=0
- for dev in altq cbq wfq afm fifoq red rio localq hfsc \
- cdnr blue priq; do
- rm -f altq/$dev
- mknod altq/$dev c 77 $unit
- chmod 644 altq/$dev
+ for dev in altq cbq wfq afm fifoq red rio localq hfsc cdnr blue priq; do
+ ${MKNOD} -r -m 644 altq/$dev c 77 $unit
unit=$(($unit + 1))
done
;;
isdn)
- rm -f isdn
- mknod isdn c 50 0
- chmod 600 isdn
+ ${MKNOD} -r -m 600 isdn c 50 0
;;
isdnctl)
- rm -f isdnctl
- mknod isdnctl c 51 0
- chmod 600 isdnctl
+ ${MKNOD} -r -m 600 isdnctl c 51 0
;;
isdnbchan*)
unit=${i#isdnbchan}
- rm -f isdnbchan$unit
- mknod isdnbchan$unit c 52 $unit
- chmod 600 isdnbchan$unit
+ ${MKNOD} -r -m 600 isdnbchan$unit c 52 $unit
;;
isdntel*)
unit=${i#isdntel}
- rm -f isdntel$unit
- mknod isdntel$unit c 54 $unit
- chmod 600 isdntel$unit
+ ${MKNOD} -r -m 600 isdntel$unit c 54 $unit
;;
isdntrc*)
unit=${i#isdntrc}
- rm -f isdntrc$unit
- mknod isdntrc$unit c 53 $unit
- chmod 600 isdntrc$unit
+ ${MKNOD} -r -m 600 isdntrc$unit c 53 $unit
;;
vmegen)
@@ -972,40 +810,27 @@
vmegen*)
unit=${i#vmegen}
- rm -f vmegen$unit
- mknod vmegen$unit c 68 $(($unit * 16 + 0))
- chmod 600 vmegen$unit
+ ${MKNOD} -r -m 600 vmegen$unit c 68 $(($unit * 16 + 0))
;;
wsfont)
- rm -f wsfont
- mknod wsfont c 81 0
- chmod 600 wsfont
+ ${MKNOD} -r -m 600 wsfont c 81 0
;;
cir*)
unit=${i#cir}
- cir=cir$unit
major=86
- rm -f $cir
- mknod $cir c $major $unit
- chmod 666 $cir
+ ${MKNOD} -r -m 666 cir$unit c $major $unit
;;
irframe*)
unit=${i#irframe}
- irframe=irframe$unit
major=85
- rm -f $irframe
- mknod $irframe c $major $unit
- chmod 600 $irframe
+ ${MKNOD} -r -m 600 irframe$unit c $major $unit
;;
clockctl)
- rm -f clockctl
- mknod clockctl c 89 0
- chgrp ntpd clockctl
- chmod 660 clockctl
+ ${MKNOD} -r -m 660 -g ntpd clockctl c 89 0
;;
nsmb)
@@ -1014,35 +839,24 @@
nsmb*)
unit=${i#nsmb}
- nsmb=nsmb$unit
major=98
- rm -f $nsmb
- mknod $nsmb c $major $unit
- chmod 644 $nsmb
+ ${MKNOD} -r -m 644 nsmb$unit c $major $unit
;;
systrace)
- rm -f systrace
- mknod systrace c 90 0
- chmod 644 systrace
+ ${MKNOD} -r -m 644 systrace c 90 0
;;
kttcp)
- rm -f kttcp
- mknod kttcp c 91 0
- chmod 600 kttcp
+ ${MKNOD} -r -m 600 kttcp c 91 0
;;
dmoverio)
- rm -f dmoverio
- mknod dmoverio c 92 0
- chmod 644 dmoverio
+ ${MKNOD} -r -m 644 dmoverio c 92 0
;;
veriexec)
- rm -f veriexec
- mknod veriexec c 94 0
- chmod 644 veriexec
+ ${MKNOD} -r -m 644 veriexec c 94 0
;;
local)
--EXKGNeO8l0xGFBjy--