Allow users to configure stuff in /dev once again by re-doing the devfs

script to read /etc/devfs.conf, and take appropriate actions based on
what it finds there.

The (commented out) examples in the new devfs.conf file are taken in
part from the old rc.devfs script.
This commit is contained in:
Doug Barton 2003-05-06 01:10:33 +00:00
parent ae362fa12f
commit 05ca3441c0
2 changed files with 73 additions and 13 deletions

47
etc/devfs.conf Normal file
View File

@ -0,0 +1,47 @@
# Copyright (c) 2003 The FreeBSD Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD$
# These are examples of how to configure devices using /etc/rc.d/devfs.
# The first parameter is always the action to take, the second is always the
# existing device created by devfs, and the last is what you want to change.
# The name of the action is only significant to the first unique character.
#
# Examples:
# Historically X depended on this, but version 4.3.0 doesn't seem to anymore
#link ttyv0 vga
# Commonly used by many ports
#link acd0 cdrom
# Allow a user in the wheel group to query the smb0 device
#perm smb0 0660
# Allow members of group operator to cat things to the speaker
#own speaker root:operator
#perm speaker 0660

View File

@ -11,18 +11,31 @@
. /etc/rc.subr
name="devfs"
start_cmd='read_devfs_conf'
stop_cmd=':'
read_devfs_conf()
{
if [ -r /etc/devfs.conf ]; then
cd /dev
while read action device parameter; do
case "${action}" in
l*) if [ -c ${device} -a ! -e ${parameter} ]; then
ln -fs ${device} ${parameter}
fi
;;
o*) if [ -c ${device} ]; then
chown ${parameter} ${device}
fi
;;
p*) if [ -c ${device} ]; then
chmod ${parameter} ${device}
fi
;;
esac
done < /etc/devfs.conf
fi
}
load_rc_config $name
# Setup DEVFS, ie permissions, links etc.
#
if [ -c /dev/ttyv0 -a ! -e /dev/vga ];then
ln -fs /dev/ttyv0 /dev/vga
fi
# XXX - in case the user has a customized /etc/rc.devfs we need to keep
# pulling it in until we have a better way of doing this in rc.d.
#
if [ -r /etc/rc.devfs ]; then
sh /etc/rc.devfs
fi
run_rc_command "$1"