2005-06-09 13:16:29 +02:00
|
|
|
#!/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
|
2007-01-14 01:59:10 +01:00
|
|
|
2.6*|2.7*) ;;
|
|
|
|
*) exit 0;;
|
2005-06-09 13:16:29 +02:00
|
|
|
esac
|
|
|
|
|
|
|
|
# Check for missing binaries
|
2007-01-14 01:59:10 +01:00
|
|
|
UDEV_BIN=/sbin/udevd
|
2005-06-09 13:16:29 +02:00
|
|
|
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)
|
2007-01-14 01:59:10 +01:00
|
|
|
# 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
|
2005-06-09 13:16:29 +02:00
|
|
|
|
2007-01-14 01:59:10 +01:00
|
|
|
# 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
|
2005-06-09 13:16:29 +02:00
|
|
|
|
2007-01-14 01:59:10 +01:00
|
|
|
mkdir $udev_root/pts $udev_root/shm
|
2005-06-09 13:16:29 +02:00
|
|
|
|
2007-01-14 01:59:10 +01:00
|
|
|
# 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)
|
2005-06-09 13:16:29 +02:00
|
|
|
$UDEVSTART_BIN || (echo "FAIL" && exit 1)
|
2007-08-11 18:50:49 +02:00
|
|
|
mount -t devpts /dev/pts /dev/pts || (echo "FAIL" && exit 1)
|
2007-01-14 01:59:10 +01:00
|
|
|
echo "done"
|
|
|
|
;;
|
2005-06-09 13:16:29 +02:00
|
|
|
stop)
|
2007-01-14 01:59:10 +01:00
|
|
|
# Stop execution of events
|
|
|
|
udevcontrol stop_exec_queue
|
|
|
|
killall udevd
|
|
|
|
;;
|
2005-06-09 13:16:29 +02:00
|
|
|
*)
|
2007-01-14 01:59:10 +01:00
|
|
|
echo "Usage: $0 {start|stop}"
|
|
|
|
exit 1
|
|
|
|
;;
|
2005-06-09 13:16:29 +02:00
|
|
|
esac
|
2007-01-14 01:59:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
exit 0
|