LibusbScannerHotplugScript
Lizenz: Dieser Artikel wurde als problematisch in Bezug auf der Lizenz markiert, dafür kann es verschiedene Gründe geben:
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