xpp_fxloader: Also look for udevadm in /bin

* udevadm is being moved to /bin. /sbin/udevadm will remain as a
  compatibility symlink.
* xpp_fxloader should also look for /bin/udevadm in addition to
  /sbin/udevadm and /sbin/udevsettle
* Reverse the order: look for newer ones first.

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
This commit is contained in:
Tzafrir Cohen 2017-01-25 17:55:30 +02:00 committed by Tzafrir Cohen
parent ba09742a3f
commit 55679791b5
1 changed files with 15 additions and 10 deletions

View File

@ -94,22 +94,27 @@ wait_for_udev() {
UDEV_SETTLE_MAX_TIME=10
echo "Waiting for udev to settle down..."
if [ -x /sbin/udevsettle ]; then
# Old system, stand-alone udevsettle command
/sbin/udevsettle --timeout="$UDEV_SETTLE_MAX_TIME"
udevsettle_cmd=
if [ -x /bin/udevadm ]; then
udevsettle_cmd="/bin/udevadm settle"
elif [ -x /sbin/udevadm ]; then
# Assume modern system, udevadm has settle parameter
if ! /sbin/udevadm settle --timeout="$UDEV_SETTLE_MAX_TIME"
then
echo "udevadm failed ($?)."
echo "Fallback to sleep $UDEV_SETTLE_MAX_TIME seconds."
sleep "$UDEV_SETTLE_MAX_TIME"
fi
udevsettle_cmd="/sbin/udevadm settle"
elif [ -x /sbin/udevsettle ]; then
udevsettle_cmd="/sbin/udevsettle"
else
echo "No udevsettle/udevadm."
echo "Fallback to sleep $UDEV_SETTLE_MAX_TIME seconds."
sleep "$UDEV_SETTLE_MAX_TIME"
return
fi
if ! $udevsettle_cmd --timeout="$UDEV_SETTLE_MAX_TIME"
then
echo "udevadm failed ($?)."
echo "Fallback to sleep $UDEV_SETTLE_MAX_TIME seconds."
sleep "$UDEV_SETTLE_MAX_TIME"
fi
sleep 1 # Wait a bit more (races)
}