Das FreeBSD-Handbuch
Zurück | Kapitel 7. Multimedia | Weiter

# 7.6. Scanner

Beigetragen von Marc Fonvieille.

## 7.6.1. Einführung

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. Die Hilfeseite uscanner(4) zählt ebenfalls die unterstützten USB-Scanner auf.

## 7.6.2. Den Kernel für Scanner einrichten

Da sowohl SCSI- als auch USB-Scanner unterstützt werden, werden abhängig von der Schnittstelle unterschiedliche Treiber benötigt.

### 7.6.2.1. USB-Scanner

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:

    device usb
    device uhci
    device ohci
    device uscanner

Abhängig vom Chipsatz Ihrer Systemplatine benötigen Sie in der Kernelkonfiguration entweder die Option `device uhci` oder die Option `device ohci`. Die Kernelkonfiguration kann allerdings auch beide Optionen enthalten.

Wenn Sie den Kernel nicht neu bauen wollen und einen angepassten Kernel verwenden, können Sie den Treiber uscanner(4) direkt mit dem Kommando kldload(8) laden:

    # kldload uscanner

Wenn Sie das Modul bei jedem Systemstart laden wollen, fügen Sie in der Datei `/boot/loader.conf` die nachstehende Zeile hinzu:

    uscanner_load="YES"

Nachdem Sie das System mit dem richtigen Kernel neu gestartet oder das Modul geladen 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:

    uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2

Diese Meldung besagt, dass der Scanner die Gerätedatei `/dev/uscanner0` benutzt.

### 7.6.2.2. SCSI-Scanner

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:

    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 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 successful

Der 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.

## 7.6.3. SANE konfigurieren

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 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/pass3

Die Ausgabe zeigt die Schnittstelle und die verwendete Gerätedatei des Scanners. Der Hersteller und das Modell können in der Ausgabe fehlen.

> Anmerkung: 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 scanner

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 7.6.2.1 zeigt `sane-find-scanner` die folgende Ausgabe:

    # sane-find-scanner -q
    found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

Der 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/epson.conf` editiert werden. Der verwendete Scanner war ein EPSON Perfection® 1650, daher wird das `epson`-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:

    usb /dev/uscanner0

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 scanner

Der 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.

## 7.6.4. Den Scanner für Benutzerkonten freigeben

Vorher 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/uscanner0` verwendet, die der Gruppe `operator` gehört. Damit der Benutzer ``joe`` auf den Scanner zugreifen kann, muss das Konto in die Gruppe `operator` aufgenommen werden:

    # pw groupmod operator -m joe

Weiteres entnehmen Sie bitte der Hilfeseite pw(8). Da Mitglieder der Gruppe `operator` in der Voreinstellung nur Leserechte für die Gerätedatei `/dev/uscanner0` besitzen, müssen Sie ebenfalls die Schreibbrechtigung (`0660` oder `0664`) vergeben. Dazu fügen Sie in die Datei `/etc/devfs.rules` die nachstehenden Zeilen ein:

    [system=5]
    add path uscanner0 mode 660

In die Datei `/etc/rc.conf` fügen Sie noch die folgende Zeile ein:

    devfs_system_ruleset="system"

Starten Sie anschließend Ihr System neu.

Weitere Informationen finden Sie in devfs(8).

> Anmerkung: Aus Sicherheitsgründen sollten Sie genau darauf achten, wen Sie in eine Gruppe aufnehmen, besonders wenn es sich um die Gruppe `operator` handelt.

Zurück | Zum Anfang | Weiter
TV-Karten einrichten | Nach oben | Konfiguration des FreeBSD-Kernels

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>.