Files
Kumar Gala aaea770f1f udev-164: Update init script to do an explicit add action
With udev 152 or greater the default action for 'udevadm trigger' was
modified to be 'change' instead of 'add.

To ensure initial coldplug events at boot are seen be scripts the are
expecting them as 'add' events we invoke udevadm with an explicit
'--action=add'.

(From OE-Core rev: eacafd21999ab37b60af29dc3e626c441716ef66)

(From OE-Core rev: c90e1c91efc721eb6910cd3244b7671b63a341b6)

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:10 +00:00

1.7 KiB

#!/bin/sh -e

BEGIN INIT INFO

Provides: udev

Required-Start: mountvirtfs

Required-Stop:

Default-Start: S

Default-Stop:

Short-Description: Start udevd, populate /dev and load drivers.

END INIT INFO

export TZ=/etc/localtime

[ -d /sys/class ] || exit 1 [ -r /proc/mounts ] || exit 1 [ -x /sbin/udevd ] || exit 1 [ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf

kill_udevd() { if [ -x /sbin/pidof ]; then pid=/sbin/pidof -x udevd [ -n "$pid" ] && kill $pid fi }

export ACTION=add

propagate /dev from /sys

echo -n "Starting udev"

mount the tmpfs on /dev, if not already done

LANG=C awk "$2 == "/dev" && $4 == "tmpfs" { exit 1 }" /proc/mounts && { mount -n -o mode=0755 -t tmpfs none "/dev" mkdir -m 0755 /dev/pts mkdir -m 1777 /dev/shm }

if [ -e /etc/dev.tar ]; then (cd /; tar xf /etc/dev.tar 2>&1 | grep -v 'time stamp' || true) not_first_boot=1 fi

make_extra_nodes

kill_udevd > "/dev/null" 2>&1

    # trigger the sorted events
    echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
    /sbin/udevd -d

    /sbin/udevadm control --env=STARTUP=1
	if [ "$not_first_boot" != "" ];then
		/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
		(/sbin/udevadm settle --timeout=3; /sbin/udevadm control --env=STARTUP=)&
	else
		/sbin/udevadm trigger --action=add
		/sbin/udevadm settle
	fi

echo exit 0