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. Prüfen Sie vor der Konfiguration mithilfe der Liste der unterstützten Geräte ob Ihr Scanner von SANE unterstützt wird. Bei Systemen vor FreeBSD 8.X zählt die Hilfeseite uscanner(4) ebenfalls die unterstützten USB-Scanner auf.
Da sowohl SCSI- als auch USB-Scanner unterstützt werden, werden abhängig von der Schnittstelle unterschiedliche Treiber benötigt.
Im GENERIC
-Kernel sind
schon alle, für einen USB-Scanner notwendigen,
Treiber enthalten. Wenn Sie einen angepassten Kernel
benutzen, prüfen Sie, dass die Kernelkonfiguration
die nachstehenden Zeilen enthält:
Bei Systemen vor FreeBSD 8.X wird ausserdem noch die folgende Zeile benötigt:
Bei diesen FreeBSD-Versionen liefert das uscanner(4)-Gerät die Unterstützung für USB-Scanner. Seit FreeBSD 8.0 ist diese Unterstützung direkt in der libusb(3)-Bibliothek enthalten.
Nachdem Sie das System mit dem richtigen Kernel neu gestartet haben, stecken Sie den USB-Scanner ein. Danach sollte in den Systemmeldungen (die Sie mit dmesg(8) betrachten können) eine Zeile ähnlich der folgenden erscheinen:
bzw. auf einem FreeBSD 7.X System:
Diese Meldung besagt, dass der Scanner entweder die
Gerätedatei /dev/ugen0.2
oder
/dev/uscanner0
benutzt, je nachdem, welche
FreeBSD-Version eingesetzt wird. In diesem Beispiel wurde ein
EPSON
Perfection® 1650 USB-Scanner verwendet.
Wenn Ihr 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 der Datei NOTES
.
Neben dem Treiber muss Ihre Kernelkonfiguration
noch die nachstehenden Zeilen enthalten:
Nachdem Sie einen Kernel gebaut und installiert haben, sollte der Scanner beim Neustart in den Systemmeldungen erscheinen:
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 das Kommando camcontrol(8):
#
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 successfulDer Scanner wird anschließend in der SCSI-Geräteliste angezeigt:
#
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)Weiteres über SCSI-Geräte lesen Sie bitte in den Hilfeseiten scsi(4) und camcontrol(8) nach.
SANE besteht aus zwei
Teilen, den Backends
(graphics/sane-backends
)
und den Frontends
(graphics/sane-frontends
).
Das Backend greift auf den Scanner zu. Welches Backend
welchen Scanner unterstützt, entnehmen Sie der
Liste der unterstützten Geräte.
Der Betrieb eines Scanners ist nur mit dem richtigen
Backend möglich. Die Frontends sind die Anwendungen,
mit denen gescannt wird (xscanimage).
Installieren Sie zuerst den Port oder das Paket
graphics/sane-backends
.
Anschließend können Sie mit dem Befehl
sane-find-scanner
prüfen, ob
SANE Ihren Scanner erkennt:
#
sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3Die 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 müssen Sie die Firmware aktualisieren, dies wird in der Hilfeseite des Backends erklärt. Lesen Sie bitte auch die Hilfeseiten sane-find-scanner(1) und sane(7).
Als nächstes müssen Sie prüfen, ob
der Scanner vom Frontend erkannt wird. Die
SANE-Backends werden
mit dem Kommandozeilenwerkzeug scanimage(1)
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:
#
scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scannerOder, für das Beispiel mit dem USB-Scanner in Abschnitt 8.7.2.1, „USB-Scanner“:
#
scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scannerDiese Ausgabe stammt von einem FreeBSD 8.X System, die Zeile
'epson2:libusb:/dev/usb:/dev/ugen0.2'
nennt das
Backend (epson2
) und die Gerätedatei
(/dev/ugen0.2
), die der Scanner verwendet.
Erscheint die Meldung, dass kein Scanner gefunden
wurde oder wird gar keine Ausgabe erzeugt, konnte
scanimage(1) keinen Scanner erkennen. In diesem
Fall müssen Sie in der Konfigurationsdatei des Backends
das zu benutzende Gerät eintragen. Die
Konfigurationsdateien der Backends befinden sich
im Verzeichnis /usr/local/etc/sane.d/
.
Erkennungsprobleme treten bei bestimmten USB-Scannern auf.
Mit dem USB-Scanner aus Abschnitt 8.7.2.1, „USB-Scanner“
zeigt sane-find-scanner
unter FreeBSD 8.X die
folgende Ausgabe:
#
sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0Der Scanner wurde richtig erkennt, er benutzt eine
USB-Schnittstelle und verwendet die Gerätedatei
/dev/uscanner0
. Ob der Scanner
vom Frontend erkannt wird, zeigt das nachstehende
Kommando:
#
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).Da der Scanner nicht erkannt wurde, muss die Datei
/usr/local/etc/sane.d/epson2.conf
editiert
werden. Der verwendete Scanner war ein
EPSON
Perfection® 1650, daher wird das
epson2
-Backend benutzt. Lesen Sie
bitte alle Kommentare in der Konfigurationsdatei des
Backends. Die durchzuführenden Änderungen
sind einfach. Kommentieren Sie zunächst alle
Zeilen mit der falschen Schnittstelle aus. Da der
Scanner eine USB-Schnittstelle besitzt, wurden im
Beispiel alle Zeilen, die mit scsi
anfingen, auskommentiert. Fügen Sie dann die
Schnittstelle und den Gerätenamen am Ende der
Datei ein. In diesem Beispiel wurde die nachstehende
Zeile eingefügt:
Weitere Hinweise entnehmen Sie bitte der Hilfeseite des Backends. Jetzt können Sie prüfen, ob der Scanner richtig erkannt wird:
#
scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scannerDer Scanner wurde nun erkannt. Es ist nicht wichtig,
ob der Hersteller oder das Modell Ihres Scanners korrekt
angezeigt werden. Wichtig ist nur die Ausgabe
`epson:/dev/uscanner0'
,
die das richtige Backend und den richtigen Gerätenamen
anzeigt.
Wenn scanimage -L
den Scanner erkannt
hat, ist der Scanner eingerichtet und bereit, zu
scannen.
Obwohl wir mit scanimage(1) von der Kommandozeile
scannen können, ist eine graphische Anwendung
zum Scannen besser geeignet. SANE
bietet ein einfaches und effizientes Werkzeug:
xscanimage (graphics/sane-frontends
).
Xsane
(graphics/xsane
)
ist eine weitere beliebte graphische Anwendung.
Dieses Frontend besitzt erweiterte Funktionen
wie den Scan-Modus (beispielsweise Photo, Fax),
eine Farbkorrektur und Batch-Scans. Beide Anwendungen
lassen sich als
GIMP-Plugin verwenden.
Zuvor wurden alle Tätigkeiten mit
root
-Rechten ausgeführt.
Wenn andere Benutzer den Scanner benutzen sollen,
müssen sie Lese- und Schreibrechte auf die
Gerätedatei des Scanners besitzen. Im
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 (ein kurzer
Blick auf das /dev
-Verzeichnis
bestätigt dies). Sowohl der Symlink als auch die
Gerätedatei sind jeweils im Besitz der Gruppen
wheel
und operator
.
Damit der Benutzer
auf den Scanner zugreifen kann, muss das Konto in
die Gruppe joe
operator
aufgenommen
werden. Allerdings sollten Sie, aus Sicherheitsgründen, genau
überlegen, welche Benutzer Sie zu welcher Gruppe hinzufügen,
besonders bei der Gruppe wheel
. Eine bessere
Lösung ist es, eine spezielle Gruppe für den Zugriff auf
USB-Geräte anzulegen und den Scanner für Mitglieder dieser
Gruppe zugänglich zu machen.
Beispielsweise kann man eine
-Gruppe
verwenden. Der erste Schritt dazu ist das erstellen der Gruppe mit
Hilfe des pw(8)-Kommandos:usb
#
pw groupadd usb
Anschliessend muss der /dev/ugen0.2
-Symlink
und der Gerätename /dev/usb/0.2.0
für
die usb
-Gruppe mit den richtigen
Schreibrechten (0660
oder 0664
)
ausgestattet werden, denn standardmässig kann nur der Besitzer
dieser Dateien (root
) darauf schreiben. All
dies kann durch das Hinzufügen der folgenden Zeile in die
/etc/devfs.rules
-Datei erreicht werden:
FreeBSD 7.X-Anwender benötigen unter Umständen die
folgenden Zeilen mit der korrekten Gerätedatei
/dev/uscanner0
:
In die Datei /etc/rc.conf
fügen Sie noch die folgende Zeile ein:
Starten Sie anschließend Ihr System neu.
Weitere Informationen finden Sie in devfs(8).
Jetzt braucht man nur noch Benutzer der Gruppe
hinzufügen,
um ihnen Zugriff auf den Scanner zu erlauben:usb
#
pw groupmod usb -m joe
Weitere Details können Sie in der pw(8)-Manualpage nachlesen.
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>.