aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hubbs <williamh@gentoo.org>2011-12-08 22:36:09 -0600
committerWilliam Hubbs <williamh@gentoo.org>2011-12-08 22:36:09 -0600
commitda52d1e72135f43d94cfb8926b8ca2b1300c32e9 (patch)
tree49ed5cfe855b656f556e9be96b85d6fc73157824
parentMake udev-postmount work correctly for all versions of udev (diff)
downloadudev-gentoo-scripts-da52d1e72135f43d94cfb8926b8ca2b1300c32e9.tar.gz
udev-gentoo-scripts-da52d1e72135f43d94cfb8926b8ca2b1300c32e9.tar.bz2
udev-gentoo-scripts-da52d1e72135f43d94cfb8926b8ca2b1300c32e9.zip
Separate udev-mount service from udev
The udev-mount service needs to be separate from udev. It may be able to be separated from these scripts entirely and put in openrc itself.
-rw-r--r--init.d/udev68
-rw-r--r--init.d/udev-mount65
2 files changed, 66 insertions, 67 deletions
diff --git a/init.d/udev b/init.d/udev
index 5e41bcc..2fc28fc 100644
--- a/init.d/udev
+++ b/init.d/udev
@@ -5,8 +5,6 @@
command=/sbin/udevd
command_args="--daemon ${udev_opts}"
description="Run udevd and create the device-nodes"
-extra_commands="udev_mount"
-description_udev_mount="mount devtmpfs or tmpfs on /dev"
persistent_cd_disable="${persistent_cd_disable:-no}"
persistent_net_disable="${persistent_net_disable:-no}"
@@ -20,7 +18,7 @@ kv_min="${kb_min:-2.6.34}"
depend()
{
provide dev
- need sysfs
+ need sysfs udev-mount
before checkfs fsck
# udev does not work inside vservers
@@ -83,69 +81,6 @@ cleanup()
exit 1
}
-mount_dev_directory()
-{
- if mountinfo -q /dev; then
- if [ "${RC_CMD}" != "start" ]; then
- einfo "/dev is already mounted"
- fi
- return 0
- fi
-
- # No options are processed here as they should all be in /etc/fstab
- ebegin "Mounting /dev"
- if ! fstabinfo --mount /dev; then
- # we mount devtmpfs if supported
- local fs=tmpfs
- grep -qs devtmpfs /proc/filesystems && fs=devtmpfs
-
- # Some devices require exec, Bug #92921
- mount -n -t "$fs" -o "exec,nosuid,mode=0755,size=10M" udev /dev
- fi
- eend $?
-}
-
-seed_dev()
-{
- # Seed /dev with some things that we know we need
-
- # creating /dev/console, /dev/tty and /dev/tty1 to be able to write
- # to $CONSOLE with/without bootsplash before udevd creates it
- [ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
- [ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
- [ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
-
- # udevd will dup its stdin/stdout/stderr to /dev/null
- # and we do not want a file which gets buffered in ram
- [ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
- ${HAVE_SELINUX} && restorecon /dev/null
-
- # so udev can add its start-message to dmesg
- [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
-
- # Create problematic directories
- mkdir -p /dev/pts /dev/shm
- ${HAVE_SELINUX} && restorecon -R /dev >/dev/null
- return 0
-}
-
-udev_mount()
-{
- check_kernel || return 1
- mount_dev_directory || return 1
-
- # Selinux lovin; /selinux should be mounted by selinux-patched init
- if [ -x /sbin/restorecon -a -c /selinux/null ]; then
- HAVE_SELINUX=true
- restorecon /dev > /selinux/null
- else
- HAVE_SELINUX=false
- fi
-
- seed_dev
- return 0
-}
-
rules_disable_switch()
{
# this function disables rules files
@@ -190,7 +125,6 @@ start_pre()
ewarn "You should add udev-postmount service to your default runlevel."
fi
- udev_mount || return 1
/lib/udev/write_root_link_rule
rules_disable_switch 75-persistent-net-generator.rules "${persistent_net_disable}"
diff --git a/init.d/udev-mount b/init.d/udev-mount
new file mode 100644
index 0000000..bf08587
--- /dev/null
+++ b/init.d/udev-mount
@@ -0,0 +1,65 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="mount devtmpfs or tmpfs on /dev"
+
+mount_dev_directory()
+{
+ if mountinfo -q /dev; then
+ einfo "/dev is already mounted"
+ return 0
+ fi
+
+ # No options are processed here as they should all be in /etc/fstab
+ ebegin "Mounting /dev"
+ if ! fstabinfo --mount /dev; then
+ # we mount devtmpfs if supported
+ local fs=tmpfs
+ grep -qs devtmpfs /proc/filesystems && fs=devtmpfs
+
+ # Some devices require exec, Bug #92921
+ mount -n -t "$fs" -o "exec,nosuid,mode=0755,size=10M" udev /dev
+ fi
+ eend $?
+}
+
+seed_dev()
+{
+ # Seed /dev with some things that we know we need
+
+ # creating /dev/console, /dev/tty and /dev/tty1 to be able to write
+ # to $CONSOLE with/without bootsplash before udevd creates it
+ [ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
+ [ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
+ [ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
+
+ # udevd will dup its stdin/stdout/stderr to /dev/null
+ # and we do not want a file which gets buffered in ram
+ [ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
+ ${HAVE_SELINUX} && restorecon /dev/null
+
+ # so udev can add its start-message to dmesg
+ [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
+
+ # Create problematic directories
+ mkdir -p /dev/pts /dev/shm
+ ${HAVE_SELINUX} && restorecon -R /dev >/dev/null
+ return 0
+}
+
+start()
+{
+ mount_dev_directory || return 1
+
+ # Selinux lovin; /selinux should be mounted by selinux-patched init
+ if [ -x /sbin/restorecon -a -c /selinux/null ]; then
+ HAVE_SELINUX=true
+ restorecon /dev > /selinux/null
+ else
+ HAVE_SELINUX=false
+ fi
+
+ seed_dev
+ return 0
+}