Scannen per Netzwerk
Dieser Artikel oder Teile davon wurden mit 'Review' markiert. Das bedeutet, dass größere Arbeiten am Inhalt des Artikels abgeschlossen sind und der Autor eine Korrekturlesung durch andere User zur Qualitätssicherung für angebracht hält.
Zu sichtende Teile: kompletter Artikel Bitte hilf LinuxClubWiki, indem du den zu sichtenden Teil überprüfst und den Artikel gegebenenfalls überarbeitest! |
Inhaltsverzeichnis
Scannen per Netzwerk
Da hat man nun einen Scanner, der mit Hilfe von Sane unter Linux direkt läuft und ein Netzwerk und will auch von anderen Rechnern aus scannen statt nur von dem Rechner aus an dem der Scanner hängt. Da saned (der sane-Backenddaemon) durchaus dazu in der Lage ist als Server oder als Vermittler für die eigentlichen Frontends wie kooka, xsane, xscanimage, GIMP, Libreoffice oder ähnliche zu fungieren, aber die gängigen Konfigurationstools der meisten Distributionen dies aber nicht direkt in ihrer Konfigurationsoberfläche anbieten, benötigt man ein wenig Handarbeit um die gewünschte Funktionalität zu erhalten, und zwar sowohl auf der Serverseite als auch auf der Clientseite.
Die Scanserverkonfiguration
Als erstes benötigt man die Information, welche Clientrechner überhaupt scannen dürfen sollen. Diese tragen wir entweder alle einzeln in die Datei /etc/sane.d/saned.conf bzw. bei einigen Distributionen /etc/saned.conf ein. Je nachdem ob man mit verfügbarer Namensauflösung per eigenem DNS-Server im eigenen Netz arbeitet oder mit entsprechenden Einträgen in /etc/hosts oder nur puren IP-Adressen, trägt man nun entweder die Namen der Clientrechner, deren IP-Adressen oder gar einen kompletten Netzwerkadressbereich ein.
Beispiel:
## Access list # A list of host names, IP addresses or IP subnets (CIDR notation) that # are permitted to use local SANE devices. IPv6 addresses must be enclosed # in brackets, and should always be specified in their compressed form. # # The hostname matching is not case-sensitive. #scan-client.somedomain.firm #192.168.0.1 192.168.2.1/24 #[2001:7a8:185e::42:12] #[2001:7a8:185e::42:12]/64
Je nach verwendeter Software und der Frage, ob der Rechner an dem der Scanner hängt auch als Arbeitsrechner genutzt wird oder nicht, kann ein zusätzlicher Eintrag für localhost dort auch Sinn machen.
Anschließend muss im xinetd-Daemon noch in seiner Konfiguration saned aktiviert werden, damit der Scandaemon saned überhaupt über das Netzwerk verfügbar ist.
/etc/xinetd.d/sane-port
# default: off # description: The saned provides scanner service via the network. \ # Applications like kooka, xsane or xscanimage can use the remote \ # scanner. service sane-port { socket_type = stream wait = no disable = no protocol = tcp user = root group = root server = /usr/sbin/saned port = 6566 }
Wie in der Konfigfuration zu sehen ist, nutzt saned den Port 6566 im TCP-Modus, weswegen noch sicherzustellen ist, dass dieser Port auch in /etc/services eingetragen ist, sowie eine eventuell laufende Firewall so eingestellt ist, dass der Paketfilter die Übertragung auf Port 6566 im lokalen Netzwerk (nicht über das Internet!) auch zulässt.
Sofern xinetd und die Firewall bereits laufen, sollte man beide neu starten oder zumindest ihre Konfigurationen neu einlesen lassen. Der User root mit der Gruppe root wird nur benötigt, wenn man nicht die Gerätedateien mit anderen Rechten als sie per default vergeben sind versehen will. Bei den meisten Distributionen wäre jedoch der User saned aus der Gruppe saned die korrektere Wahl. Allerdings kann bei USB-Scannern vorkommen, dass dieser Benutzer nicht auf den Scanner zugreifen darf, da die Rechte aufgrund der dynamischen Einbindung von USB-Geräten per default eben nicht dazu passen. Dort ist root eben der einfachere Weg den Zugang zu ermöglichen.
Wenn diese Schritte soweit erfolgt sind kann der erste Test stattfinden: Man startet auf einem der Clientrechner einfach
telnet scanservername 6566
und schaut, ob dort telnet mit einer Fehlermeldung abbricht oder nicht. Wartet telnet auf eine Eingabe, dann ist kein Fehler vorhanden und der Serverdaemon läuft bereits. Abbrechen kann man telnet in der Konsole / einer Terminalemulation mit der Tastenkombination Strg-C.
Nun fehlt nur noch die Clientrechnereinrichtung.
Die Clientrechnerkonfiguration
Hier bedarf es nicht viel. Es muss nur das net-Backend im saned (der hier ja nicht als Server, sondern als Vermittler zum tatsächlichen Server fungieren soll) aktiviert werden und diesem Backend der Server bekanntgegeben werden. Dazu editiert man /etc/sane.d/dll.conf und fügt folgende Zeile ein bzw. entfernt die Auskommentierung der entsprechenden Backendzeile, die per Default schon dort, aber eben auskommentiert ist:
net
Nun ist prinzipiell schon mal die Umleitung aufs Netzwerk aktiviert, aber der Clientrechner weiß ja noch nicht, welchen Server er dafür befragen soll. Dies wird sichergestellt in der Konfiguration des net-Backends unter /etc/sane.d/net.conf, indem man dort den Server einträgt:
Beispiel: /etc/sane.d/net.conf
# This is the net backend config file. ## net backend options # Timeout for the initial connection to saned. This will prevent the backend # from blocking for several minutes trying to connect to an unresponsive # saned host (network outage, host down, ...). Value in seconds. # connect_timeout = 60 ## saned hosts # Each line names a host to attach to. # If you list "localhost" then your backends can be accessed either # directly or through the net backend. Going through the net backend # may be necessary to access devices that need special privileges. # localhost 192.168.2.1
Den Eintrag localhost sollte man aktivieren, sofern man einen weiteren Scanner an dem Clientrechner hängen hat, der auch an den Server gehen soll um einen "Zweitscanner" zu erreichen, ansonsten dürfte dieser Eintrag für die meisten Frontends nicht benötigt werden. Nun kann die Verfügbarkeit für den / die Clientrechner am Clientrechner selbst getestet werden, indem man
scanimage -L
in einer Konsole eingibt. Dort sollte der Scanner, der am Server vor der Aktivierung der Netzwerkfunktion logischerweise ja schon eingerichtet worden sein sollte, nun auch zu sehen sein und man kann das Frontend seiner Wahl nun scannen lassen.
Weiterführende Informationen
Generelle Informationen
Netzwerkfähige Frontends für SANE für diverse Nicht-Linux Systeme
- wiasane, ein SANE-Frontend (eher:WIA-Treiber) für Windows 7
- SANEDroid, ein SANE-Frontend für Android-Systeme
- SaneTwain, eine SANE 2 Twain Bridge (Windows XP)
- Tame/2, ein SANE-Frontend für OS/2 / eComstation
- TWAIN SANE Interface for MacOS X