aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/udev
diff options
context:
space:
mode:
authorJesse Zhang <sen.zhang@windriver.com>2013-01-26 17:16:26 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-08 14:46:13 +0000
commitbc6193824ec3eb1f3c590a93ccb79c8588b74412 (patch)
tree7aded61b1850f1ef4f24ac1b1a835126d2ac6056 /meta/recipes-core/udev
parentadcb39845b6d3af9472fa5051a1d918344eb6bda (diff)
downloadopenembedded-core-contrib-bc6193824ec3eb1f3c590a93ccb79c8588b74412.tar.gz
udev: Add start/stop/status/restart support to init script
[ CQID: WIND00388860 ] Add the ability to use "stop", "start", "restart" and "status" with the udev initscript. Signed-off-by: Jesse Zhang <sen.zhang@windriver.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/recipes-core/udev')
-rw-r--r--meta/recipes-core/udev/udev/init113
-rw-r--r--meta/recipes-core/udev/udev_182.bb2
2 files changed, 65 insertions, 50 deletions
diff --git a/meta/recipes-core/udev/udev/init b/meta/recipes-core/udev/udev/init
index 1934d11e49..8ac1ff7b9c 100644
--- a/meta/recipes-core/udev/udev/init
+++ b/meta/recipes-core/udev/udev/init
@@ -9,6 +9,8 @@
# Short-Description: Start udevd, populate /dev and load drivers.
### END INIT INFO
+. /etc/init.d/functions
+
export TZ=/etc/localtime
[ -d /sys/class ] || exit 1
@@ -27,60 +29,73 @@ readfile () {
fi
}
-kill_udevd() {
- pid=`pidof -x udevd`
- [ -n "$pid" ] && kill $pid
-}
-
-export ACTION=add
-# propagate /dev from /sys
-echo "Starting udev"
-
-# mount the tmpfs on /dev, if not already done
-LANG=C awk '$2 == "/dev" && ($3 == "tmpfs" || $3 == "devtmpfs") { exit 1 }' /proc/mounts && {
- mount -n -o mode=0755 -t tmpfs none "/dev"
-}
-[ -e /dev/pts ] || mkdir -m 0755 /dev/pts
-[ -e /dev/shm ] || mkdir -m 1777 /dev/shm
-mount -a -t tmpfs 2>/dev/null
-mkdir -p /var/volatile/run
+case "$1" in
+ start)
+ export ACTION=add
+ # propagate /dev from /sys
+ echo "Starting udev"
-# cache handling
-if [ "$DEVCACHE" != "" ]; then
- readfile /proc/version
- VERSION="$READDATA"
- readfile /proc/cmdline
- CMDLINE="$READDATA"
- readfile /proc/devices
- DEVICES="$READDATA"
- readfile /proc/atags
- ATAGS="$READDATA"
+ # mount the tmpfs on /dev, if not already done
+ LANG=C awk '$2 == "/dev" && ($3 == "tmpfs" || $3 == "devtmpfs") { exit 1 }' /proc/mounts && {
+ mount -n -o mode=0755 -t tmpfs none "/dev"
+ }
+ [ -e /dev/pts ] || mkdir -m 0755 /dev/pts
+ [ -e /dev/shm ] || mkdir -m 1777 /dev/shm
+ mount -a -t tmpfs 2>/dev/null
+ mkdir -p /var/volatile/run
- if [ -e $DEVCACHE ]; then
- readfile /etc/udev/cache.data
- if [ "$READDATA" = "$VERSION$CMDLINE$DEVICES$ATAGS" ]; then
- (cd /; tar xf $DEVCACHE > /dev/null 2>&1)
- not_first_boot=1
- fi
+ # cache handling
+ if [ "$DEVCACHE" != "" ]; then
+ readfile /proc/version
+ VERSION="$READDATA"
+ readfile /proc/cmdline
+ CMDLINE="$READDATA"
+ readfile /proc/devices
+ DEVICES="$READDATA"
+ readfile /proc/atags
+ ATAGS="$READDATA"
- echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache
- fi
-fi
+ if [ -e $DEVCACHE ]; then
+ readfile /etc/udev/cache.data
+ if [ "$READDATA" = "$VERSION$CMDLINE$DEVICES$ATAGS" ]; then
+ (cd /; tar xf $DEVCACHE > /dev/null 2>&1)
+ not_first_boot=1
+ fi
-# make_extra_nodes
-kill_udevd > "/dev/null" 2>&1
+ echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache
+ fi
+ fi
-# trigger the sorted events
-echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
-/lib/udev/udevd -d
+ # make_extra_nodes
+ killproc udevd > "/dev/null" 2>&1
-/usr/bin/udevadm control --env=STARTUP=1
-if [ "$not_first_boot" != "" ];then
- /usr/bin/udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
- (/usr/bin/udevadm settle --timeout=3; /usr/bin/udevadm control --env=STARTUP=)&
-else
- /usr/bin/udevadm trigger --action=add
- /usr/bin/udevadm settle
-fi
+ # trigger the sorted events
+ echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
+ /lib/udev/udevd -d
+ /usr/sbin/udevadm control --env=STARTUP=1
+ if [ "$not_first_boot" != "" ];then
+ /usr/sbin/udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
+ (/usr/sbin/udevadm settle --timeout=3; /sbin/udevadm control --env=STARTUP=)&
+ else
+ /usr/sbin/udevadm trigger --action=add
+ /usr/sbin/udevadm settle
+ fi
+ ;;
+ stop)
+ echo "Stopping udevd"
+ start-stop-daemon --stop --name udevd --quiet
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ status)
+ status udevd
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|restart}"
+ exit 1
+esac
exit 0
diff --git a/meta/recipes-core/udev/udev_182.bb b/meta/recipes-core/udev/udev_182.bb
index cf0f126b92..56d412eb40 100644
--- a/meta/recipes-core/udev/udev_182.bb
+++ b/meta/recipes-core/udev/udev_182.bb
@@ -1,6 +1,6 @@
include udev.inc
-PR = "r4"
+PR = "r5"
# module-init-tools from kmod_git will provide libkmod runtime
DEPENDS += "module-init-tools"