12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/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/udevd
- 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
- mkdir $udev_root/pts $udev_root/shm
- mknod -m 0666 /dev/null c 1 3
- mknod -m 0666 /dev/zero c 1 5
- mknod -m 0600 /dev/console c 5 1
- # populate /dev (normally)
- echo -n "Populating $udev_root using udev: "
- echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
- $UDEV_BIN -d || (echo "FAIL" && exit 1)
- $UDEVSTART_BIN || (echo "FAIL" && exit 1)
- mount -t devpts /dev/pts /dev/pts || (echo "FAIL" && exit 1)
- echo "done"
- ;;
- stop)
- # Stop execution of events
- udevcontrol stop_exec_queue
- killall udevd
- ;;
- *)
- echo "Usage: $0 {start|stop}"
- exit 1
- ;;
- esac
- exit 0
|