diff options
author | Jesse Zhang <sen.zhang@windriver.com> | 2013-01-26 17:16:26 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-08 14:46:13 +0000 |
commit | bc6193824ec3eb1f3c590a93ccb79c8588b74412 (patch) | |
tree | 7aded61b1850f1ef4f24ac1b1a835126d2ac6056 | |
parent | adcb39845b6d3af9472fa5051a1d918344eb6bda (diff) | |
download | openembedded-core-bc6193824ec3eb1f3c590a93ccb79c8588b74412.tar.gz openembedded-core-bc6193824ec3eb1f3c590a93ccb79c8588b74412.tar.bz2 openembedded-core-bc6193824ec3eb1f3c590a93ccb79c8588b74412.zip |
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>
-rw-r--r-- | meta/recipes-core/udev/udev/init | 113 | ||||
-rw-r--r-- | meta/recipes-core/udev/udev_182.bb | 2 |
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" |