LibusbScannerHotplugScript

Aus DebianforumWiki
Wechseln zu: Navigation, Suche
LizenzOffen.png Lizenz: Dieser Artikel wurde als problematisch in Bezug auf der Lizenz markiert, dafür kann es verschiedene Gründe geben:
  • die Lizenz des Ursprünglichen Artikels ist unbekannt oder nicht kompatiblen mit der CC by SA
  • durch die Migration wurden der/die ursprüngliche(n) Autor(en) aus der History gelöscht
  • es wurden Inhalte ohne Zustimmung des ursprünglichen Autors übernommen
  • es gibt andere urheberrechtliche Bedenken gegen diesen Artikel.

Bitte hilf mit alle diese Fragen zunächst zu klären, danach kann dieser Hinweis entfernt werden.


Scripting / Scripting Hardware / LibusbScannerHotplugScript


Das ist eine angepasste Version des Hotplug Scriptes für USB Scanner die über libusb betrieben werden. Dieses Script setzt die passenden Zugriffsrechte in /proc/bus/usb für den Scanner, sobald das Gerät am USB Bus eingesteckt wird. Um den Scanner verwenden zu dürfen, muss man in der Gruppe scanner sein.

Benötigte Pakete: hotplug, usbutils

Um einen Text für die Variable VENDOR_STR zu wählen, sollte man lsusb aufrufen und sich ein passendes Wort aus der Zeile mit dem Scanner aussuchen, über das er identifiziert werden kann. In meinem Fall ist der passende VENDOR_STR, mustek (Groß-/ Kleinschreibung wird nicht beachtet). Zu Beachten ist auch, dass nicht mehrere Geräte in der Ausgabe von lsusb sind, auf die der VENDOR_STR passt, denn in diesem Fall wird das 1. gefundene Gerät ausgewählt.

Hier ist die Ausgabe von lsusb auf meinem Laptop:

jochen@roastbox:~$ lsusb
Bus 002 Device 001: ID 0000:0000
Bus 002 Device 002: ID 046d:c012 Logitech, Inc. Optical Mouse
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 005: ID 055f:021c Mustek Systems, Inc. BearPaw 1200 CU Plus

Dateiname: /etc/hotplug/usb/libusbscanner

VENDOR_STR="mustek"

ACTION=add
DEVICE=/proc/bus/usb/`lsusb | grep -i $VENDOR_STR | head -n1 | cut -d":" -f1 | sed -e 's#Bus ##' -e 's# Device #/#'`
TYPE=usb

if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
  chown root:scanner "$DEVICE"
  chmod 0660 "$DEVICE"
fi

</bash>

Viel Spass damit

Jochen aka lobo

P.S. Die Zeile zum Filtern des passenden Devices ist sicher nicht perfekt. Wenn jemand eine kürzere Lösung hat, dann einfach editieren ;-)

Zusatz: Das Paket libsane-1.0.14-2 enthält eine korrigierte Version des libusbscanner-Skriptes, welches auch mit aktuellen Versionen von hotplug zusammenarbeitet:

<syntaxhighlight lang="bash">
# This file is part of sane-backends.
#
# This script changes the permissions and ownership of a USB device under
# /proc/bus/usb to grant access to this device to users in the scanner group.
#
# Ownership is set to root:scanner, permissions are set to 0660.
#
# Arguments :
# -----------
# ACTION=[add|remove]
# DEVICE=/proc/bus/usb/BBB/DDD
# TYPE=usb

# latest hotplug doesn't set DEVICE on 2.6.x kernels
if [ -z "$DEVICE" ] ; then
  IF=`echo $DEVPATH | sed 's/\(bus\/usb\/devices\/\)\(.*\)-\(.*\)/\2/'`
  DEV=`echo $DEVPATH | sed 's/\(bus\/usb\/devices\/\)\(.*\)-\(.*\)/\3/'`
  DEV=`expr $DEV + 1`
  DEVICE=`printf '/proc/bus/usb/%.03d/%.03d' $IF $DEV`
fi

if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
  chown root:scanner "$DEVICE"
  chmod 0660 "$DEVICE"
fi


# That's an insecure but simple alternative
# Everyone has access to the scanner

# if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
#  chmod 0666 "$DEVICE"
# fi

Somit reicht es mitlerweile unter sid nachzusehen, ob der eigene Scanner in der /etc/hotplug/usb/libsane.usermap gelistet ist.


Scripting / Scripting Hardware / LibusbScannerHotplugScript