#!/sbin/runscript # Copyright 1999-2010 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() { 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 # 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 rm -rf /dev/fd ln -snf /proc/self/fd /dev/fd return 0 } start() { mount_dev_directory || return 1 # make sure it exists mkdir -p /dev/.udev /dev/.udev/rules.d seed_dev return 0 }