diff --git a/xpp/astribank_hook b/xpp/astribank_hook index fdfa82a..3b5a6fb 100755 --- a/xpp/astribank_hook +++ b/xpp/astribank_hook @@ -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) }