Unter FreeBSD stellt SANE (Scanner Access Now Easy) aus der Ports-Sammlung eine einheitliche Schnittstelle (API) für den Zugriff auf Scanner bereit. SANE wiederum greift auf Scanner mithilfe einiger FreeBSD-Treiber zu.
FreeBSD unterstützt sowohl SCSI- als auch USB-Scanner. Abhängig von der Schnittstelle des Scanners, werden unterschiedliche Treiber benötigt. Prüfen Sie vor der Konfiguration mithilfe der Liste der unterstützten Geräte ob der Scanner von SANE unterstützt wird.
Dieses Kapitel beschreibt, wie Sie feststellen können, ob der Scanner von FreeBSD erkannt wurde. Zudem enthält es einen Überblick über die Konfiguration und Verwendung von SANE unter FreeBSD.
Im GENERIC
-Kernel sind schon alle,
für einen USB-Scanner notwendigen Treiber
enthalten. Benutzer mit einem angepassten Kernel sollten
sicherstellen, dass die Kernelkonfiguration die nachstehenden
Zeilen enthält:
device usb device uhci device ohci device ehci device xhci
Um zu überprüfen ob der Scanner erkannt wird, schließen Sie den USB-Scanner an. Prüfen Sie dann mit dmesg(8), ob der Scanner in den Systemmeldungen erscheint:
ugen0.2: <EPSON> at usbus0
In diesem Beispiel wurde ein
EPSON
Perfection® 1650 USB-Scanner an
/dev/ugen0.2
erkannt.
Wenn der Scanner eine
SCSI-Schnittstelle besitzt, ist die
Kernelkonfiguration abhängig vom verwendeten
SCSI-Controller. Der
GENERIC
-Kernel unterstützt die
gebräuchlichen SCSI-Controller. Den
richtigen Treiber finden Sie in
/usr/src/sys/conf/NOTES
. Neben dem
SCSI-Treiber muss die Kernelkonfiguration
noch die nachstehenden Zeilen enthalten:
device scbus device pass
Nachdem Sie einen Kernel gebaut und installiert haben, sollte der Scanner beim Neustart in den Systemmeldungen erscheinen:
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
Wenn der Scanner während des Systemstarts
ausgeschaltet war, können Sie die Geräteerkennung
erzwingen, indem Sie den SCSI-Bus erneut
absuchen. Verwenden Sie dazu
camcontrol
:
#
camcontrol rescan all
Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful
Der Scanner sollte jetzt in der SCSI-Geräteliste erscheinen:
#
camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
Weitere Informationen über SCSI-Geräte unter FreeBSD finden Sie in scsi(4) und camcontrol(8).
Das SANE-System ermöglicht den Zugriff auf den Scanner über Backends (graphics/sane-backends). Lesen Sie http://www.sane-project.org/sane-supported-devices.html um herauszufinden, welches Backend welchen Scanner unterstützt. Eine graphische Oberfläche wird über Anwendungen von Drittanbietern wie Kooka (graphics/kooka) oder XSane (graphics/xsane) bereitgestellt. Die Backends von SANE reichen aus, um den Scanner zu testen.
Installieren Sie die Backends als Paket:
#
pkg install sane-backends
Alternativ können Sie die Backends aus der Ports-Sammlung installieren:
#
cd /usr/ports/graphics/sane-backends
#
make install clean
Nachdem Sie den Port oder das Paket
graphics/sane-backends installiert haben,
können Sie mit dem Befehl sane-find-scanner
prüfen, ob SANE den Scanner
erkennt:
#
sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
Die Ausgabe zeigt die Schnittstelle und die verwendete Gerätedatei des Scanners. Der Hersteller und das Modell können in der Ausgabe fehlen.
Bei einigen USB-Scannern muss die Firmware geladen werden. Lesen Sie sane-find-scanner(1) und sane(7) für weitere Details.
Als nächstes müssen Sie prüfen, ob
der Scanner vom Frontend erkannt wird. Die
SANE-Backends werden
mit dem Kommandozeilenwerkzeug scanimage
geliefert. Mit diesem Werkzeug können Sie
sich Scanner anzeigen lassen und den Scan-Prozess
von der Kommandozeile starten. Die Option
-L
zeigt die Scanner an. Das erste Beispiel
ist für einen SCSI-Scanner, das zweite ist
für einen USB-Scanner:
#
scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner#
scanimage -L
device 'epson2:libusb:000:002' is a Epson GT-8200 flatbed scanner
Im zweiten Beispiel ist epson2
der
Backend-Name. libusb:000:002
bedeutet,
dass /dev/ugen0.2
die vom Scanner
verwendete Gerätedatei ist.
Wenn scanimage
den Scanner nicht
erkennen kann, erscheint folgende Meldung:
#
scanimage -L
No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).
Wenn das passiert, müssen Sie in der Konfigurationsdatei
des Backends unterhalb von
/usr/local/etc/sane.d/
den verwendeten
Scanner eintragen. Wenn der Scanner
EPSON
Perfection® 1650, der das Backend
epson2
benutzt, nicht erkannt wurde, muss
/usr/local/etc/sane.d/epson2.conf
angepasst werden. Fügen Sie eine Zeile mit der Schnittstelle
und dem Gerätenamen in die Datei ein. In diesem Beispiel
wurde die nachstehende Zeile eingefügt:
usb /dev/ugen0.2
Speichern Sie die Änderungen und prüfen Sie, ob der Scanner mit dem richtigen Backend und Gerätenamen erkannt wird:
#
scanimage -L
device 'epson2:libusb:000:002' is a Epson GT-8200 flatbed scanner
Wenn scanimage -L
den Scanner erkannt
hat, ist der Scanner eingerichtet und bereit, zu
scannen.
Obwohl scanimage
von der Kommandozeile
scannen kann, ist eine graphische Anwendung
zum Scannen besser geeignet. Bekannte Programme sind
Koka oder
XSane. Diese Frontends besitzten
erweiterte Funktionen wie den Scan-Modus, Farbkorrektur und
Batch-Scans. XSane lässt sich auch
als GIMP-Plugin verwenden.
Wenn andere Benutzer den Scanner benutzen sollen,
müssen sie Lese- und Schreibrechte auf die
Gerätedatei des Scanners besitzen. Im vorherigen Beispiel
wird die Datei /dev/ugen0.2
verwendet,
die faktisch nur ein Symlink auf die echte Gerätedatei,
/dev/usb/0.2.0
genannt, darstellt.
Sowohl der Symlink als auch die Gerätedatei sind jeweils im
Besitz der Gruppen wheel
und operator
. Damit ein Benutzer
den Scanner benutzen kann, muss er Mitglied in einer der
beiden Gruppen sein. Allerdings sollte aus Sicherheitsgründen
genau überlegt werden, welche Benutzer zu welcher Gruppe
hinzugefügt werden, besonders bei der Gruppe wheel
. Eine bessere
Lösung ist es, eine spezielle Gruppe für den Zugriff
anzulegen und den Scanner für Mitglieder dieser
Gruppe zugänglich zu machen.
Dieses Beispiel erstellt eine Gruppe namens
:usb
#
pw groupadd usb
Anschließend muss der
/dev/ugen0.2
-Symlink und der Gerätename
/dev/usb/0.2.0
für die Gruppe usb
mit den Schreibrechten
0660
oder 0664
ausgestattet werden. All dies kann durch das Hinzufügen der
folgenden Zeilen in /etc/devfs.rules
erreicht werden:
[system=5] add path ugen0.2 mode 0660 group usb add path usb/0.2.0 mode 0666 group usb
Es kommt vor, dass sich der Gerätename mit dem Hinzufügen oder Entfernen von Geräten ändert, so dass man stattdessen vielleicht allen USB-Geräten mit diesem Regelsatz Zugriff gewähren möchte:
[system=5] add path 'ugen*' mode 0660 group usb add path 'usb/*' mode 0666 group usb
Weitere Informationen zu dieser Datei finden Sie in devfs.rules(5).
Als nächstes aktivieren Sie den Regelsatz in
/etc/rc.conf
:
devfs_system_ruleset="system"
Starten Sie anschließend das devfs(8)-System neu:
#
service devfs restart
Jetzt müssen nur noch Benutzer zur Gruppe
hinzugefügt werden, um ihnen den Zugriff auf den Scanner zu
erlauben:usb
#
pw groupmod usb -m
joe
Weitere Details finden Sie in pw(8).
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.