From 5f6dec68a2cee60d28ba7cdf8a39357b3e902a7b Mon Sep 17 00:00:00 2001 From: dougb Date: Tue, 6 May 2003 01:10:33 +0000 Subject: 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. --- etc/devfs.conf | 47 +++++++++++++++++++++++++++++++++++++++++++++++ etc/rc.d/devfs | 39 ++++++++++++++++++++++++++------------- 2 files changed, 73 insertions(+), 13 deletions(-) create mode 100644 etc/devfs.conf (limited to 'etc') diff --git a/etc/devfs.conf b/etc/devfs.conf new file mode 100644 index 0000000..db13ff1 --- /dev/null +++ b/etc/devfs.conf @@ -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 + diff --git a/etc/rc.d/devfs b/etc/rc.d/devfs index 437aad9..aaf828b 100644 --- a/etc/rc.d/devfs +++ b/etc/rc.d/devfs @@ -11,18 +11,31 @@ . /etc/rc.subr name="devfs" +start_cmd='read_devfs_conf' +stop_cmd=':' -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 +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 +} -# 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 +load_rc_config $name +run_rc_command "$1" -- cgit v1.1