You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
573 B

  1. #!/bin/sh
  2. usblp_driver="/sys/bus/usb/drivers/usblp"
  3. inuse=""
  4. if [ -e /sys/bus/usb/devices ]; then
  5. for usbdev_driver in /sys/bus/usb/devices/*/driver; do
  6. [ -e "$usbdev_driver" ] || continue
  7. [ "$(readlink -f "$usbdev_driver")" = "$usblp_driver" ] || continue
  8. usbdev="${usbdev_driver%/*}"
  9. inuse="$inuse ${usbdev##*/}"
  10. done
  11. fi
  12. /usr/lib/sane/saned "$@"
  13. err=$?
  14. for usbdev in $inuse; do
  15. [ -e "/sys/bus/usb/devices/$usbdev/driver" ] && continue
  16. logger -t saned "binding device $usbdev back to usblp..."
  17. printf '%s' "$usbdev" > "$usblp_driver/bind"
  18. done
  19. exit $err