mirror of
git://git.yoctoproject.org/poky
synced 2026-09-29 19:52:43 +00:00
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>
60 lines
1.7 KiB
Bash
60 lines
1.7 KiB
Bash
#!/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
|