2f04a4ad6c
Make the udev initscript trigger in a coherent way, i.e. first set subsystems, then device and then let the whole thing settle. Otherwise for usb_modeswitch udev rules they never kick in since the storage aspect (device) gets claimed first and the switch ignored. Also set the settle timeout to a smaller value than the default 120 seconds to avoid stalling too much. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
51 lines
1.6 KiB
Bash
Executable File
51 lines
1.6 KiB
Bash
Executable File
#!/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.34+ 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.
|
|
#
|
|
|
|
# Check for missing binaries
|
|
UDEV_BIN=/sbin/udevd
|
|
test -x $UDEV_BIN || exit 5
|
|
|
|
# Check for config file and read it
|
|
UDEV_CONFIG=/etc/udev/udev.conf
|
|
test -r $UDEV_CONFIG || exit 6
|
|
. $UDEV_CONFIG
|
|
|
|
case "$1" in
|
|
start)
|
|
printf "Populating ${udev_root:-/dev} using udev: "
|
|
printf '\000\000\000\000' > /proc/sys/kernel/hotplug
|
|
$UDEV_BIN -d || (echo "FAIL" && exit 1)
|
|
udevadm trigger --type=subsystems --action=add
|
|
udevadm trigger --type=devices --action=add
|
|
udevadm settle --timeout=30 || echo "udevadm settle failed"
|
|
echo "done"
|
|
;;
|
|
stop)
|
|
# Stop execution of events
|
|
udevadm control --stop-exec-queue
|
|
killall udevd
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
|
|
exit 0
|