sane-usb(5) SANE Scanner Access Now Easy sane-usb(5)

sane-usb - USB-Konfigurationstipps für SANE

Diese Handbuchseite enthält Informationen darüber, wie auf Scanner mit einer USB-Schnittstelle zugegriffen werden kann. Sie konzentriert sich auf zwei Hauptthemen: Erkennen des Scanners durch den Betriebssystemkernel und dessen Verwendung mit SANE.

Diese Seite ist für die meisten USB-Backends und -Scanner anwendbar, da sie die generische sanei_usb-Schnittstelle benutzen. Es gibt allerdings eine Ausnahme: USB-Scanner, die durch das Backend sane-microtek2(5) unterstützt werden, benötigen einen besonderen USB-Kerneltreiber.

Dies ist ein kurzer, HOWTO-artiger Abschnitt. Für die vollständigen Details lesen Sie die folgenden Abschnitte. Das Ziel dieses Abschnitts ist es, dafür zu sorgen, dass sane-find-scanner(1) den Scanner erkennt.

Führen Sie sane-find-scanner(1) aus. Falls es Ihren Scanner mit den korrekten Lieferanten- und Produktkennungen auflistet, ist alles erledigt. Siehe den Abschnitt SANE-PROBLEME für Details dazu, wie Sie weiter verfahren.

sane-find-scanner(1) listet Ihren Scanner nicht auf? Funktioniert es als Root? Falls ja, gibt es ein Berechtigungsproblem. Siehe den Abschnitt LIBUSB für Details.

Auch als Root wird nichts gefunden? Prüfen Sie, ob Ihr Kernel USB unterstützt und ob Libusb installiert ist (siehe Abschnitt LIBUSB).

Für den Zugriff auf USB-Geräte wird die USB-Bibliothek Libusb verwendet. Es gab mal eine andere Methode zum Zugriff auf USB-Geräte: den Kernel-Scanner-Treiber. Die Kernel-Scanner-Treiber-Methode ist veraltet und sollte nicht mehr verwendet werden. Sie kann jederzeit von SANE entfernt werden. Unter Linux wurde der Kernel-Scanner-Treiber in der 2.6.*-Kernel-Serie entfernt. Diese Handbuchseite dokumentiert nur den Zugriff mit Libusb.

SANE kann nur Libusb 0.1.6 oder neuer verwenden. Sie muss zur Bauzeit installiert sein. Moderne Linux-Distributionen und andere Betriebssysteme kommen mit Libusb.

Libusb kann nur auf Ihren Scanner zugreifen, falls er nicht vom Kernel-Scanner-Treiber belegt ist. Falls Sie Libusb verwenden möchten, entladen Sie den Kerneltreiber (z.B. »rmmod scanner« unter Linux) oder deaktivieren Sie den Treiber beim Kompilieren eines neuen Kernels. Für Linux muss Ihr Kernel das USB-Dateisystem (usbfs) unterstützen. Bei Kerneln älter als 2.4.19 ersetzen Sie »usbfs« durch »usbdevfs«, da sich der Name geändert hat. Das Dateisystem muss eingehängt sein. Dies erfolgt beim Systemstart automatisch, falls /etc/fstab eine Zeile der folgenden Form enthält:

none /proc/bus/usb usbfs defaults 0 0

Die Berechtigungen für die von Libusb verwandten Geräte müssen für den Benutzerzugriff angepasst werden. Andernfalls kann nur Root auf SANE-Geräte zugreifen. Für Linux befinden sich die Geräte in /proc/bus/usb/ oder in /dev/bus/usb, falls Sie Udev verwenden. Dies sind Verzeichnisse, die z.B. »001« (der Name des Busses) heißen und Dateien »001«, »002« usw. (die Gerätedateien) enthalten. Die richtige Gerätedatei kann durch Ausführen von scanimage -L: als root herausgefunden werden. Das Setzen von Berechtigungen mittels chmod(1) ist allerdings nicht dauerhaft. Diese werden nach einem Neustart oder nach dem erneuten Anstecken des Scanners zurückgesetzt.

Normalerweise wird udev(7) oder bei älteren Distributionen das Hotplug-Hilfswerkzeug verwendet, um dynamisches Setzen der Zugriffsberechtigungen zu unterstützen. SANE enthält im Verzeichnis tools/udev und tools/hotplug Udev- und Hotplug-Skripte. Diese können zum Setzen von Berechtigungen verwendet werden, siehe /usr/share/doc/sane/README.linux, tools/README und die README im Verzeichnis tools/hotplug für weitere Details.

Für die BSDs heißen die von Libusb verwendeten Gerätedateien /dev/ugen*. Verwenden Sie chmod(1), um die geeigneten Berechtigungen anzuwenden.

Dieser Abschnitt nimmt an, dass Ihr Scanner durch sane-find-scanner(1) erkannt wurde. Es ist sinnlos, fortzufahren, falls dies nicht der Fall ist. Während sane-find-scanner(1) in der Lage ist, einen USB-Scanner zu erkennen, wird das eigentliche Scannen nur funktionieren, falls Ihr Scanner von einem SANE-Backend unterstützt wird. Information über den Grad der Unterstützung können Sie auf der SANE-Webseite (http://www.sane-project.org/) und in den einzelnen Backend-Handbuchseiten finden.

Die Backends können USB-Scanner automatisch mittels Zeilen der Form »usb« in Konfigurationsdateien erkennen. Diese Methode erlaubt es Ihnen, Scanner über den USB-Lieferanten und Produktnummern zu identifizieren. Die Syntax für die Festlegung von Scannern auf diese Art lautet:

usb LIEFERANT PRODUKT

Hierbei ist LIEFERANT die USB-Lieferantenkennung und PRODUKT die USB-Produktkennung des Scanners. Beide Kennungen sind nichtnegative dezimale oder hexadezimale Ganzzahlen. Die korrekten Werte für diese Felder können durch die Ausführung von sane-find-scanner(1), dem Nachschauen im Syslog (z.B. /var/log/messages oder unter Linux durch Ausführen des Befehls cat /proc/bus/usb/devices ermittelt werden. Eine Konfigurationszeile könnte beispielsweise folgendermaßen aussehen:

usb 0x055f 0x0006

Dies hätte den Effekt, dass alle USB-Geräte im System mit einer Lieferantenkennung 0x55f und einer Produktkennung 0x0006 untersucht und vom Backend erkannt würden.

Falls Ihr Scanner nicht automatisch erkannt wird, könnte es notwendig sein, dass Sie die geeignete Backend-Konfigurationsdatei bearbeiten, bevor Sie SANE erstmalig verwenden. Für eine detaillierte Beschreibung der Konfigurationsdatei jedes Backends lesen Sie bitte die relevante Handbuchseite des Backends (z.B. sane-mustek_usb(5) für Mustek USB-Scanner).

Legen Sie keinen symbolischen Link von /dev/scanner auf das USB-Gerät an, da dieser Link von den SCSI-Backends verwendet wird. Der Scanner könnte verwirrt werden, wenn er SCSI-Befehle empfängt.

Falls die Bibliothek mit Debug-Unterstützung kompiliert wurde, steuert diese Umgebungsvariable die Debug-Stufe für das USB-E/A-Subsystem. Beispielsweise bewirkt ein Wert von 128 die Anzeige sämtlicher Debug-Ausgaben. Kleinere Werte reduzieren die Ausführlichkeit. Werte größer als 4 ermöglichen das Libusb-Debugging (falls verfügbar). Beispiel: export SANE_DEBUG_SANEI_USB=4.
Falls Ihr Scanner nicht funktioniert, wenn er in einen USB3-Port eingesteckt wird, versuchen Sie, die Umgebungsvariable SANE_USB_WORKAROUND auf 1 zu setzen. Dies kann Probleme umgehen, die mit bestimmten Kernelversionen auftreten. Beispiel: export SANE_USB_WORKAROUND=1.
Falls Ihr alter (vor 2010) Xerox-, Samsung, HP-Scanner nur einmal erkannt wird und nachfolgende Verwendung das Neustecken des Kabels benötigen versuchen Sie, die Umgebungsvariable SANE_XEROX_USB_HALT_WORKAROUND auf 1 zu setzen. Dies kann Probleme umgehen, die mit bestimmten USB-Controllern auftreten. Beispiel: export SANE_XEROX_USB_HALT_WORKAROUND=1.

sane(7), sane-find-scanner(1), sane-"backendname"(5), sane-scsi(5)

Henning Meier-Geinitz <henning@meier-geinitz.de>

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

14. Juli 2008