9.2. Wie kann ich übers lokale Netzwerk scannen?

9.2.1

Das Scannen übers Netzwerk erfolgt über das net-Backend von Sane.

In der /etc/sane.d/saned.conf auf dem Rechner, an den der Scanner angeschlossen ist, trägt man die Hosts ein, die auf den Scanner zugreifen dürfen, z. B.

# /etc/sane.d/saned.conf
localhost
192.168.2.25

In /etc/services (auf Server und Clients) muss ein Port für Sane definiert sein:

# /etc/services
# [...]
sane 6566/tcp # SANE network scanner daemon

(ab SuSE 9.2 beginnt die Zeile mit sane-port statt sane.)

Anschließend muss man noch dafür sorgen, dass Sane auch übers Netzwerk erreichbar ist. Am einfachsten geht das, wenn man den "saned" aktiviert:

rcsane start
insserv sane

Einbindung über (x)inetd

Alternativ zum "saned" kann man Sane auch über den inetd oder xinetd einbinden. Dies spart etwas RAM, weil Sane nicht immer im Hintergrund läuft; im Gegenzug muss Sane für jeden Scan einzeln gestartet werden. Die Lösung über den (x)inetd ist also nur für selten benutzte Scanner geeignet.

Um den Zugriff über den inetd zu ermöglichen, muss man in der /etc/inetd.conf einen Eintrag für Sane hinzufügen:

# /etc/inetd.conf
# [...]
sane stream tcp nowait root.root /usr/sbin/tcpd /usr/sbin/saned

Falls der xinetd verwendet werden soll, der ab SuSE 8.2 Standard ist, legt man eine passende Konfigurationsdatei im Ordner /etc/xinetd.d/ namens sane an, in der folgendes steht:

# /etc/xinetd.d/sane
# Sane network access

service sane
{
    disable         = no
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = root # oder nobody
    server          = /usr/sbin/saned
}

Ab SuSE 9.2 wird bereits die Datei sane-port (in SuSE 9.1 sane.xinetd) mitgeliefert und muss nur noch angepasst werden.

Falls der Scanner nicht zwingend unter root laufen muss (das ist z. B. bei einigen Parallelport-Scannern nötig), kann man als User auch "nobody" angeben.

Anschließend sollte man noch über /etc/hosts.allow und /etc/hosts.deny die Zugriffsmöglichkeiten regeln.

Nach diesen Änderungen ist ein Neustart des (x)inetd erforderlich. Dies erfolgt auf der Kommandozeile mit rcinetd restart bzw. rcxinetd restart.

Einrichtung der Clients

Auf den Clients, die auf den Scanserver zugreifen sollen, muss der Scanserver in die /etc/sane.d/net.conf eingetragen werden:

# /etc/sane.d/net.conf
scanserver
192.168.2.1

Anschließend muss das net-Backend in der /etc/sane.d/dll.conf aktiviert werden:

# /etc/sane.d/dll.conf
# [...]
net

Außerdem muss in /etc/services wie oben beschrieben der Port für Sane festgelegt werden.

Wenn alles korrekt konfiguriert ist, sollte scanimage -L auf dem Client ein Ergebnis ähnlich dem folgenden liefern:

user@host:~> scanimage -L
device `net:tux.boltz:mustek_pp:Mustek-1200CP' is a \
    Mustek 1200CP flatbed scanner

Falls der Scanner nicht gefunden wird, kann man in /var/log/messages auf Server und Client nach der Ursache des Fehlers suchen.

Scannen mit Windows-Clients

Auch wenn es für diese FAQ eigentlich OT ist ;-) - mit SaneTwain kann man auch von Windows-Clients aus auf einen Scanserver zugreifen. SaneTwain kann von http://sanetwain.ozuzo.net/ heruntergeladen werden, dort findet man auch weitere Informationen.

(cboltz, schott)