1
0

udev_retry 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/sh
  2. ########################################################################
  3. # Begin udev_retry
  4. #
  5. # Description : Udev cold-plugging script (retry)
  6. #
  7. # Authors : Alexander E. Patrakov
  8. # DJ Lucas - dj@linuxfromscratch.org
  9. # Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
  10. #
  11. # Version : LFS 7.0
  12. #
  13. ########################################################################
  14. ### BEGIN INIT INFO
  15. # Provides: udev_retry
  16. # Required-Start: udev
  17. # Should-Start: $local_fs
  18. # Required-Stop:
  19. # Should-Stop:
  20. # Default-Start: S
  21. # Default-Stop:
  22. # Short-Description: Replays failed uevents and creates additonal devices.
  23. # Description: Replays any failed uevents that were skipped due to
  24. # slow hardware initialization, and creates those needed
  25. # device nodes
  26. # X-LFS-Provided-By: LFS
  27. ### END INIT INFO
  28. . /lib/lsb/init-functions
  29. case "${1}" in
  30. start)
  31. log_info_msg "Retrying failed uevents, if any..."
  32. rundir=$(/sbin/udevadm info --run)
  33. # From Debian: "copy the rules generated before / was mounted
  34. # read-write":
  35. for file in ${rundir}/tmp-rules--*; do
  36. dest=${file##*tmp-rules--}
  37. [ "$dest" = '*' ] && break
  38. cat $file >> /etc/udev/rules.d/$dest
  39. rm -f $file
  40. done
  41. # Re-trigger the failed uevents in hope they will succeed now
  42. /sbin/udevadm trigger --type=failed --action=add
  43. # Now wait for udevd to process the uevents we triggered
  44. /sbin/udevadm settle
  45. evaluate_retval
  46. ;;
  47. *)
  48. echo "Usage ${0} {start}"
  49. exit 1
  50. ;;
  51. esac
  52. exit 0
  53. # End udev_retry