summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2003-05-06 01:10:33 +0000
committerDoug Barton <dougb@FreeBSD.org>2003-05-06 01:10:33 +0000
commit05ca3441c05a20d4edbaafa27edb28f45cb17a45 (patch)
tree60c99871fb95d76bbe236e301681b3c56e3bcda4
parentae362fa12fac88659c24385ca2ac062b0af94006 (diff)
Notes
-rw-r--r--etc/devfs.conf47
-rw-r--r--etc/rc.d/devfs39
2 files changed, 73 insertions, 13 deletions
diff --git a/etc/devfs.conf b/etc/devfs.conf
new file mode 100644
index 000000000000..db13ff1b0c55
--- /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 437aad960ccb..aaf828b51c12 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"