#!/sbin/runscript # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 description="Mount tmpfs on /dev" [ -e /etc/conf.d/udev ] && . /etc/conf.d/udev mount_dev_directory() { # No options are processed here as they should all be in /etc/fstab ebegin "Mounting /dev" if fstabinfo --quiet /dev; then mount -n /dev else # Some devices require exec, Bug #92921 mount -n -t tmpfs -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 # so udev can add its start-message to dmesg [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11 # copy over any persistant things if [ -d /lib/udev/devices ]; then cp -RPp /lib/udev/devices/* /dev 2>/dev/null fi # Not provided by sysfs but needed ln -snf /proc/self/fd /dev/fd ln -snf fd/0 /dev/stdin ln -snf fd/1 /dev/stdout ln -snf fd/2 /dev/stderr [ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core # Create problematic directories mkdir -p /dev/pts /dev/shm return 0 } start() { # do not run this on too old baselayout - udev-addon is already loaded! if [ ! -f /etc/init.d/sysfs ]; then eerror "The $SVCNAME init-script is written for baselayout-2!" eerror "Please do not use it with baselayout-1!". return 1 fi _start } _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 restorecon /dev > /selinux/null fi # make sure it exists mkdir -p /dev/.udev seed_dev return 0 }