mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-29 13:15:05 +00:00
Remove all vestiges of /usr programs (awk, sed, grep...) from MAKEDEV.
MAKEDEV can now run (with /sbin/chown and /bin/chgrp, still) without any /usr. The default PATH for MAKEDEV is now "/sbin:/bin" to prevent against further spammage of /usr programs in MAKEDEV. In the event of an emergency, the variable "MAKEDEVPATH" can be used to replace PATH, but I don't know what that emergency could be. Let me know if you have any problems. I've tested it as well as I could, which basically means everything except for RocketPorts. Reviewed in principle by: peter
This commit is contained in:
parent
68567ff127
commit
1d1811b172
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=54814
213
etc/MAKEDEV
213
etc/MAKEDEV
|
@ -134,7 +134,11 @@
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
#
|
#
|
||||||
|
|
||||||
PATH=/sbin:/bin/:/usr/bin:/usr/sbin:$PATH
|
if [ -n "$MAKEDEVPATH" ]; then
|
||||||
|
PATH="$MAKEDEVPATH"
|
||||||
|
else
|
||||||
|
PATH=/sbin:/bin
|
||||||
|
fi
|
||||||
umask 77
|
umask 77
|
||||||
|
|
||||||
# Usage: die exitcode msg
|
# Usage: die exitcode msg
|
||||||
|
@ -297,9 +301,12 @@ std)
|
||||||
mknod stderr c 22 2; chmod 666 stderr
|
mknod stderr c 22 2; chmod 666 stderr
|
||||||
mknod pci c 78 0; chmod 644 pci
|
mknod pci c 78 0; chmod 644 pci
|
||||||
mkdir -p fd
|
mkdir -p fd
|
||||||
(cd fd && eval `echo "" | awk ' BEGIN { \
|
(cd fd && i=0 &&
|
||||||
for (i = 0; i < 64; i++) \
|
while [ $i -lt 64 ]; do
|
||||||
printf("mknod %d c 22 %d;", i, i)}'`)
|
mknod $i c 22 $i
|
||||||
|
i=$(($i + 1))
|
||||||
|
done
|
||||||
|
)
|
||||||
chown -R root:wheel fd
|
chown -R root:wheel fd
|
||||||
chmod 555 fd
|
chmod 555 fd
|
||||||
chmod 666 fd/*
|
chmod 666 fd/*
|
||||||
|
@ -607,13 +614,14 @@ xpt*)
|
||||||
if [ -z "${units}" ]; then
|
if [ -z "${units}" ]; then
|
||||||
units=1
|
units=1
|
||||||
fi
|
fi
|
||||||
eval `echo ${chr} ${units} ${name} |awk \
|
i=0
|
||||||
'{ c=$1; n=$2; name=$3;} END {
|
while [ $i -lt $units ]; do
|
||||||
for (i = 0; i < n; i++)
|
dname=$name$i
|
||||||
printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
|
rm -rf $dname r$dname
|
||||||
chgrp operator %s%d;", \
|
mknod $dname c $chr $i
|
||||||
name, i, name, i, name, i, c, i, \
|
chown root:operator $dname
|
||||||
name, i); }'`
|
i=$(($i + 1))
|
||||||
|
done
|
||||||
;;
|
;;
|
||||||
# CAM passthrough device
|
# CAM passthrough device
|
||||||
pass*|uk*)
|
pass*|uk*)
|
||||||
|
@ -625,13 +633,14 @@ pass*|uk*)
|
||||||
if [ -z "${units}" ]; then
|
if [ -z "${units}" ]; then
|
||||||
units=1
|
units=1
|
||||||
fi
|
fi
|
||||||
eval `echo ${chr} ${units} ${name} |awk \
|
i=0
|
||||||
'{ c=$1; n=$2; name=$3;} END {
|
while [ $i -lt $units ]; do
|
||||||
for (i = 0; i < n; i++)
|
dname=$name$i
|
||||||
printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
|
rm -rf $dname r$dname
|
||||||
chgrp operator %s%d;", \
|
mknod $dname c $chr $i
|
||||||
name, i, name, i, name, i, c, i, \
|
chown root:operator $dname
|
||||||
name, i); }'`
|
i=$(($i + 1))
|
||||||
|
done
|
||||||
;;
|
;;
|
||||||
pty*)
|
pty*)
|
||||||
class=`expr $i : 'pty\(.*\)'`
|
class=`expr $i : 'pty\(.*\)'`
|
||||||
|
@ -648,21 +657,21 @@ pty*)
|
||||||
# This still leaves [tuTU].
|
# This still leaves [tuTU].
|
||||||
*) echo bad unit for pty in: $i;;
|
*) echo bad unit for pty in: $i;;
|
||||||
esac
|
esac
|
||||||
|
umask 0
|
||||||
case $class in
|
case $class in
|
||||||
0|1|2|3|4|5|6|7)
|
0|1|2|3|4|5|6|7)
|
||||||
umask 0
|
i=0
|
||||||
eval `echo $offset $name | awk ' { b=0+$1; n=$2 } END { \
|
while [ $i -lt 32 ]; do
|
||||||
for (i = 0; i < 32; i++) {
|
# This was an awk substr() before.
|
||||||
c = substr("0123456789abcdefghijklmnopqrstuv", i + 1, 1); \
|
c=$(echo 0123456789abcdefghijklmnopqrstuv |
|
||||||
printf("mknod tty%s%s c 5 %d; \
|
dd bs=1 skip=$i count=1 2>/dev/null)
|
||||||
mknod pty%s%s c 6 %d;", \
|
mknod tty$name$c c 5 $(($offset + $i))
|
||||||
n, c, b+i, \
|
mknod pty$name$c c 6 $(($offset + $i))
|
||||||
n, c, b+i); \
|
i=$(($i + 1))
|
||||||
} \
|
done
|
||||||
}'`
|
|
||||||
umask 77
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
umask 77
|
||||||
;;
|
;;
|
||||||
|
|
||||||
sa*)
|
sa*)
|
||||||
|
@ -742,21 +751,17 @@ acd*|cd*|mcd*|scd*)
|
||||||
units=1
|
units=1
|
||||||
fi
|
fi
|
||||||
if [ "${units}" -le 31 ]; then
|
if [ "${units}" -le 31 ]; then
|
||||||
eval `echo ${chr} ${units} ${name} |awk \
|
i=0
|
||||||
'{ c=$1; n=$2; name=$3;} END{
|
while [ $i -lt $units ]; do
|
||||||
for (i = 0; i < n; i++){
|
dname=$name$i
|
||||||
printf("rm -f %s%d* r%s%d*; \
|
rm -rf ${dname}* r${dname}*
|
||||||
mknod %s%da c %d %d; \
|
mknod ${dname}a c $chr $(($i * 8))
|
||||||
mknod %s%dc c %d %d; \
|
mknod ${dname}c c $chr $(($i * 8 + 2))
|
||||||
mknod r%s%da c %d %d; \
|
mknod r${dname}a c $chr $(($i * 8))
|
||||||
mknod r%s%dc c %d %d; \
|
mknod r${dname}c c $chr $(($i * 8 + 2))
|
||||||
chgrp operator %s%d* r%s%d*;",
|
chown root:operator ${dname}* r${dname}*
|
||||||
name, i, name, i,
|
i=$(($i + 1))
|
||||||
name, i, c, (i * 8),
|
done
|
||||||
name, i, c, (i * 8) + 2,
|
|
||||||
name, i, c, (i * 8),
|
|
||||||
name, i, c, (i * 8) + 2,
|
|
||||||
name, i, name, i); }}'`
|
|
||||||
else
|
else
|
||||||
echo "$i is invalid -- can't have more than 32 cd devices"
|
echo "$i is invalid -- can't have more than 32 cd devices"
|
||||||
fi
|
fi
|
||||||
|
@ -871,12 +876,14 @@ ugen*)
|
||||||
echo $i - Invalid unit number
|
echo $i - Invalid unit number
|
||||||
fi
|
fi
|
||||||
if [ -z "${endpoint}" ]; then # ugen0 & ugen0.1 - ugen0.15
|
if [ -z "${endpoint}" ]; then # ugen0 & ugen0.1 - ugen0.15
|
||||||
eval `echo ${unit} | awk ' { u=0+$1 } END {
|
mknod ugen$unit c 114 $(($unit * 16))
|
||||||
printf("mknod ugen%d c 114 %d;", u, u*16+0);
|
i=1
|
||||||
for (i = 1; i < 16; i++)
|
while [ $i -lt 16 ]; do
|
||||||
printf("mknod ugen%d.%d c 114 %d;", u, i, u*16+i); }'`
|
mknod ugen$unit.$i c 114 $(($unit * 16 + $i))
|
||||||
|
i=$(($i + 1))
|
||||||
|
done
|
||||||
else
|
else
|
||||||
minor=`expr $unit \* 16 + $endpoint`
|
minor=$(($unit * 16 + $endpoint))
|
||||||
mknod ugen$unit.$endpoint c 114 $minor
|
mknod ugen$unit.$endpoint c 114 $minor
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
@ -899,9 +906,11 @@ tw*)
|
||||||
vty*)
|
vty*)
|
||||||
chr=12
|
chr=12
|
||||||
units=`expr $i : 'vty\(.*\)'`
|
units=`expr $i : 'vty\(.*\)'`
|
||||||
eval `echo ${chr} ${units} | awk ' { c=0+$1; n=0+$2 } END {
|
i=0
|
||||||
for (i = 0; i < n; i++)
|
while [ $i -lt $units ]; do
|
||||||
printf("mknod ttyv%01x c %d %d;", i, c, i); }'`
|
mknod ttyv$(printf %01x $i) c $chr $i
|
||||||
|
i=$(($i + 1))
|
||||||
|
done
|
||||||
ln -fs ttyv0 vga # XXX X still needs this pccons relic
|
ln -fs ttyv0 vga # XXX X still needs this pccons relic
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -910,7 +919,7 @@ bpf*)
|
||||||
unit=0
|
unit=0
|
||||||
while [ $unit -le $nbpf ]; do
|
while [ $unit -le $nbpf ]; do
|
||||||
mknod bpf$unit c 23 $unit
|
mknod bpf$unit c 23 $unit
|
||||||
unit=`expr $unit + 1`
|
unit=$(($unit + 1))
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -1002,7 +1011,7 @@ ttyA*)
|
||||||
mknod ttyA$name c $major $minor
|
mknod ttyA$name c $major $minor
|
||||||
mknod ttyiA$name c $major `expr $minor + 65536`
|
mknod ttyiA$name c $major `expr $minor + 65536`
|
||||||
mknod ttylA$name c $major `expr $minor + 131072`
|
mknod ttylA$name c $major `expr $minor + 131072`
|
||||||
port=`expr $port + 1`
|
port=$(($port + 1))
|
||||||
done
|
done
|
||||||
# For the user-mode control program, 'sicontrol'
|
# For the user-mode control program, 'sicontrol'
|
||||||
mknod si_control c 68 262144
|
mknod si_control c 68 262144
|
||||||
|
@ -1020,7 +1029,7 @@ cuaA*)
|
||||||
mknod cuaiA$name c $major `expr $minor + 128 + 65536`
|
mknod cuaiA$name c $major `expr $minor + 128 + 65536`
|
||||||
mknod cualA$name c $major `expr $minor + 128 + 131072`
|
mknod cualA$name c $major `expr $minor + 128 + 131072`
|
||||||
chown uucp:dialer cuaA$name cuaiA$name cualA$name
|
chown uucp:dialer cuaA$name cuaiA$name cualA$name
|
||||||
port=`expr $port + 1`
|
port=$(($port + 1))
|
||||||
done
|
done
|
||||||
umask 77
|
umask 77
|
||||||
;;
|
;;
|
||||||
|
@ -1121,46 +1130,80 @@ cuaM?)
|
||||||
|
|
||||||
ttyR?)
|
ttyR?)
|
||||||
major=81
|
major=81
|
||||||
BOARD=1; MINOR=65536; Rnum=0
|
BOARD=1; Rnum=0
|
||||||
MINOR=`expr $BOARD \* 65536`
|
MINOR=$(($BOARD * 65536))
|
||||||
dmesg | grep ^RocketPort[0-4] > /tmp/rp_list
|
controllers=$(
|
||||||
controllers=`awk '{print $1}' < /tmp/rp_list`
|
dmesg | while read first rest; do
|
||||||
rm -f /dev/ttyR*; rm -f /dev/ttyiR*; rm -f /dev/ttylR*
|
case "\$first" in
|
||||||
for i in $controllers;do
|
RocketPort[0-4])
|
||||||
ndevices=`grep ^$i /tmp/rp_list | sed -e 's/.* \([0-9]*\) ports/\1/'`
|
echo "\$first"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
)
|
||||||
|
rm -f /dev/ttyR* /dev/ttyiR* /dev/ttylR*
|
||||||
|
for i in $controllers; do
|
||||||
|
ndevices=$(
|
||||||
|
dmesg | while read first bar ports rest; do
|
||||||
|
case "\$first" in
|
||||||
|
$i*)
|
||||||
|
echo "\$ports"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
)
|
||||||
echo -n "Creating $ndevices devices for $i: "
|
echo -n "Creating $ndevices devices for $i: "
|
||||||
for dev in `jot $ndevices 0`;do
|
dev=0
|
||||||
|
while [ $dev -lt $ndevices ]; do
|
||||||
mknod /dev/ttyR$Rnum c $major $MINOR
|
mknod /dev/ttyR$Rnum c $major $MINOR
|
||||||
mknod /dev/ttylR$Rnum c $major `expr $MINOR + 32`
|
mknod /dev/ttylR$Rnum c $major $(($MINOR + 32))
|
||||||
mknod /dev/ttyiR$Rnum c $major `expr $MINOR + 64`
|
mknod /dev/ttyiR$Rnum c $major $(($MINOR + 64))
|
||||||
Rnum=`expr $Rnum + 1`
|
Rnum=$(($Rnum + 1))
|
||||||
MINOR=`expr $MINOR + 1`
|
MINOR=$(($MINOR + 1))
|
||||||
|
dev=$(($dev + 1))
|
||||||
done
|
done
|
||||||
BOARD=`expr $BOARD + 1`
|
BOARD=$(($BOARD + 1))
|
||||||
MINOR=`expr $BOARD \* 65536`
|
MINOR=$(($BOARD * 65536))
|
||||||
echo " "
|
echo " "
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cuaR?)
|
cuaR?)
|
||||||
major=81
|
major=81
|
||||||
BOARD=1; MINOR=65536; Rnum=0
|
BOARD=1; Rnum=0
|
||||||
MINOR=`expr $BOARD \* 65536`
|
MINOR=$(($BOARD * 65536))
|
||||||
dmesg | grep ^RocketPort[0-4] > /tmp/rp_list
|
controllers=$(
|
||||||
controllers=`awk '{print $1}' < /tmp/rp_list`
|
dmesg | while read first rest; do
|
||||||
rm -f /dev/cuaR*; rm -f /dev/cuaiR*; rm -f /dev/cualR*
|
case "\$first" in
|
||||||
for i in $controllers;do
|
RocketPort[0-4])
|
||||||
ndevices=`grep ^$i /tmp/rp_list | sed -e 's/.* \([0-9]*\) ports/\1/'`
|
echo "\$first"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
)
|
||||||
|
rm -f /dev/cuaR* /dev/cuaiR* /dev/cualR*
|
||||||
|
for i in $controllers; do
|
||||||
|
ndevices=$(
|
||||||
|
dmesg | while read first bar ports rest; do
|
||||||
|
case "\$first" in
|
||||||
|
$i*)
|
||||||
|
echo "\$ports"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
)
|
||||||
echo -n "Creating $ndevices devices for $i: "
|
echo -n "Creating $ndevices devices for $i: "
|
||||||
for dev in `jot $ndevices 0`;do
|
dev=0
|
||||||
mknod /dev/cuaR$Rnum c $major `expr $MINOR + 128`
|
while [ $dev -lt $ndevices ]; do
|
||||||
mknod /dev/cualR$Rnum c $major `expr $MINOR + 128 + 32`
|
mknod /dev/cuaR$Rnum c $major $(($MINOR + 128))
|
||||||
mknod /dev/cuaiR$Rnum c $major `expr $MINOR + 128 + 64`
|
mknod /dev/cualR$Rnum c $major $(($MINOR + 128 + 32))
|
||||||
Rnum=`expr $Rnum + 1`
|
mknod /dev/cuaiR$Rnum c $major $(($MINOR + 128 + 64))
|
||||||
MINOR=`expr $MINOR + 1`
|
Rnum=$(($Rnum + 1))
|
||||||
|
MINOR=$(($MINOR + 1))
|
||||||
|
dev=$(($dev + 1))
|
||||||
done
|
done
|
||||||
BOARD=`expr $BOARD + 1`
|
BOARD=$(($BOARD + 1))
|
||||||
MINOR=`expr $BOARD \* 65536`
|
MINOR=$(($BOARD * 65536))
|
||||||
echo " "
|
echo " "
|
||||||
done
|
done
|
||||||
chown uucp:dialer /dev/cuaR*
|
chown uucp:dialer /dev/cuaR*
|
||||||
|
@ -1324,7 +1367,7 @@ tun*)
|
||||||
while [ $unit -le $ntun ]; do
|
while [ $unit -le $ntun ]; do
|
||||||
mknod tun$unit c 52 $unit
|
mknod tun$unit c 52 $unit
|
||||||
chown uucp:dialer tun$unit
|
chown uucp:dialer tun$unit
|
||||||
unit=`expr $unit + 1`
|
unit=$(($unit + 1))
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue