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! |
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 nicht direkt in ihrer Konfigurationsoberfläche anbieten,benötigen man ein wenig Handarbeit um die gewünschte Funktionalität zu erhalten. Dazu benötigt man sowohl auf der Serverseite als auch auf der Clientseite nur recht wenig von besagter Handarbeit.
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 dier 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 muss im xinetd-Daemon noch in seiner Konfiguration der 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, daß dieser Port auch in /etc/services eingetragen sein sollte sowie eine eventuell laufende Firewall so eingestellt ist, daß 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 neustarten 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 per default vergeben 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 daß 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.
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 sondenr 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 schonmal die Umleitung aufs Netzwerk aktiviert aber der Clientrechner weiss 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
musikbox:/etc/sane.d # cat 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 Verüfgbarkeit für 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 udn man kann das Frontend seiner Wahl nun scannen lassen.