Add the udev init script
authorEric Andersen <andersen@codepoet.org>
Thu, 9 Jun 2005 11:16:29 +0000 (11:16 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 9 Jun 2005 11:16:29 +0000 (11:16 -0000)
package/udev/init-udev [new file with mode: 0755]

diff --git a/package/udev/init-udev b/package/udev/init-udev
new file mode 100755 (executable)
index 0000000..4f42495
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# udev This is a minimal non-LSB version of a UDEV startup script.  It
+#      was derived by stripping down the udev-058 LSB version for use
+#      with buildroot on embedded hardware using Linux 2.6.12+ kernels.
+#
+#      You may need to customize this for your system's resource limits
+#      (including startup time!) and administration.  For example, if
+#      your early userspace has a custom initramfs or initrd you might
+#      need /dev much earlier; or without hotpluggable busses (like USB,
+#      PCMCIA, MMC/SD, and so on) your /dev might be static after boot.
+#
+#      This script assumes your system boots right into the eventual root
+#      filesystem, and that init runs this udev script before any programs
+#      needing more device nodes than the bare-bones set -- /dev/console,
+#      /dev/zero, /dev/null -- that's needed to boot and run this script.
+#
+
+# old kernels don't use udev
+case $(uname -r) in
+2.6*|2.7*)     ;;
+*)             exit 0;;
+esac
+
+# Check for missing binaries
+UDEV_BIN=/sbin/udev
+test -x $UDEV_BIN || exit 5
+UDEVSTART_BIN=/sbin/udevstart
+test -x $UDEVSTART_BIN || exit 5
+
+# Check for config file and read it
+UDEV_CONFIG=/etc/udev/udev.conf
+test -r $UDEV_CONFIG || exit 6
+. $UDEV_CONFIG
+
+# Directory where sysfs is mounted
+SYSFS_DIR=/sys
+
+case "$1" in
+    start)
+       # mount sysfs if it's not yet mounted
+       if [ ! -d $SYSFS_DIR ]; then
+               echo "${0}: SYSFS_DIR \"$SYSFS_DIR\" not found"
+               exit 1
+       fi
+       grep -q "^sysfs $SYSFS_DIR" /proc/mounts ||
+               mount -t sysfs /sys /sys ||
+               exit 1
+
+       # mount $udev_root as ramfs if it's not yet mounted
+       # we know 2.6 kernels always support ramfs
+       if [ ! -d $udev_root ]; then
+               echo "${0}: udev_root \"$udev_root\" not found"
+               exit 1
+       fi
+       grep -q "^udev $udev_root" /proc/mounts ||
+               mount -t ramfs udev $udev_root ||
+               exit 1
+
+       # heck, go whole-hog:  use only new style hotplug
+       # echo $UDEV_BIN > /proc/sys/kernel/hotplug
+
+       # populate /dev (normally)
+       echo -n "Populating $udev_root using udev... "
+       $UDEVSTART_BIN || (echo "FAIL" && exit 1)
+       mkdir $udev_root/pts $udev_root/shm
+       echo "done"
+       ;;
+    stop)
+       # do nothing
+       ;;
+    *)
+       echo "Usage: $0 {start|stop}"
+       exit 1
+       ;;
+esac