• Teilen
  • Bookmark "Scannserver mit Sane" auf del.icio.us
  • Bookmark "Scannserver mit Sane" auf Digg
  • Bookmark "Scannserver mit Sane" auf Reddit
  • Bookmark "Scannserver mit Sane" auf StumbleUpon
  • Bookmark "Scannserver mit Sane" auf Facebook
  • Bookmark "Scannserver mit Sane" auf Twitter
  • Bookmark "Scannserver mit Sane" auf Slashdot

Scannserver mit Sane

Ein Scannserver auf Basis von saned gibt Scanner für weitere Ubuntu Rechner im Heimnetz frei. Diese können nun den Scanner des Servers verwenden. Windowsrechner können durch das Programm SaneTwain ohne zusätzliche Treiber vom Server erkannte Scanner nutzen. Diese Anleitung beschreibt die Einrichtung von saned sowohl auf dem Client, als auch auf dem Server.

Softwarevoraussetzungen: siehe weiter unten | Paketverwaltung | Texteditor | Testclient
Schwierigkeitsgrad: Mittel
Ausgetestet mit folgenden Betriebssystemen: Ubuntu | Debian

Achtung! sudo: In dieser Anleitung verdeutlicht der Befehl sudo, dass die folgende Codezeile mit Root-Rechten ausgeführt werden muss. In normalen Ubuntu Installationen (Root-/VServer siehe Debian) kann dies durch den Befehl sudo erreicht werden.
Bei Debian wird bei der Installation ein Passwort für den Root-Benutzer festgelegt, so kann man sich entweder direkt als Root oder als „normaler“ Benutzer mit Eingabe von su als Root einloggen (Root-Passwort benötigt) → sudo bleibt dann überflüssig!

Voraussetzungen

Voraussetzung ist ein von Linux auf dem Server erkannter Scanner (…und funktionstüchtig), HP Multifunktionsgeräte und Drucker werden oftmals schon durch

user@server:~$ sudo apt-get install hplip

vollständig nutzbar. Für andere Scanner müssen unter Umständen erst Treiber installiert werden (siehe ubuntuusers.de)

Pakete

Ebenfalls wird das Paket sane-utils benötigt, welches oft bereits installiert ist:

user@server:~$ sudo apt-get install sane-utils

Server

Der Scanner muss an dem Rechner angeschlossen werden, der als Server dienen soll.

USB-Rechte

Aktuelle Ubuntus

Falls folgender Befehl einen Error oder keine Ausgabe erstellt

user@server:~$ scanimage -L

aber dieser:

user@server:~$ sudo scanimage -L

einen Scanner in dieser Art anzeigt:

device `net:localhost:hpaio:/usb/Officejet_Pro_8500_A909a?serial=CN03T4Q0W5' is a Hewlett-Packard Officejet_Pro_8500_A909a all-in-one

legt man eine neue udev Regel für den Scanner in /etc/udev/rules.d an. Dazu erstellt man die Datei 90-scanner.rules

user@server:~$ sudo nano /lib/udev/rules.d/90-scanner.rules  #mit nano (Editor) die Datei öffnen

und fügt folgendes ein:

# change device file permission to group scanner for sane access
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="220d", SUBSYSTEMS=="usb", ACTION=="add", MODE="0664", GROUP="scanner"

Die Werte für idVender und idProduct entnimmt man dem Befehl lsusb. Nun fügt man den Benutzer saned und alle Benutzer, die Zugriff auf den Scanner haben sollen der Gruppe scanner hinzu:

user@server:~$ sudo adduser saned scanner
user@server:~$ sudo adduser BENUTZER scanner     #BENUTZER durch den jeweiligen Benutzer ersetzten
user@server:~$ sudo adduser ich scanner          #Beispiel mit Benutzer ich

Nach den Änderung sollte man am Besten den Server neustarten:

user@server:~$ sudo reboot

Ältere Ubuntus und Debian

Es ist wichtig, dass folgender Befehl nicht als root ausgeführt wird! Ansonsten kann nicht überprüft werden, ob die Zugriffsrechte auf den Scanner stimmen! Sollte aber kein anderer Benutzer auf dem System vorhanden sein, kann der Benutzer saned gleich zur Gruppe scanner hinzugefügt werden:

root@server:~# adduser saned scanner

Wenn folgender Befehl einen Error oder keine Ausgabe erstellt:

user@server:~$ scanimage -L

aber dieser Befehl:

user@server:~$ sudo scanimage -L

einen Scanner in dieser Art anzeigt:

device `net:localhost:hpaio:/usb/Officejet_Pro_8500_A909a?serial=CN03T4Q0W5' is a Hewlett-Packard Officejet_Pro_8500_A909a all-in-one


muss der Benutzer saned der Gruppe scanner hinzugefügt werden:

user@server:~$ sudo adduser saned scanner

Unter Debian Squeeze muss dies noch mit der Gruppe lp erfolgen:

user@server:~$ sudo adduser saned lp


Es ist praktisch alle Benutzer, die Zugriff auf die Scanner haben sollen, dieser/n Gruppe/n hinzuzufügen:

user@server:~$ sudo adduser BENUTZER scanner     #BENUTZER durch den jeweiligen Benutzer ersetzten
user@server:~$ sudo adduser ich scanner          #Beispiel mit Benutzer ich
 
#zusätzlich für Squeeze:
user@server:~$ sudo adduser BENUTZER lp     #BENUTZER durch den jeweiligen Benutzer ersetzten
user@server:~$ sudo adduser ich lp          #Beispiel mit Benutzer ich

Inetd anpassen

Damit saned richtig starten kann sind folgende Schritte notwendig:

/etc/inetd.conf

In der /etc/inetd.conf muss folgendes eingetragen sein:

sane-port       stream  tcp     nowait  saned:saned     /usr/sbin/saned saned

Die Datei kann man so öffnen:

user@server:~$ sudo nano /etc/inetd.conf

/etc/default/saned

Hier muss

# Set to yes to start saned
RUN=no

auf yes gesetzt werden:

# Set to yes to start saned
RUN=yes

Die Datei kann so geöffnet werden:

user@server:~$ sudo nano /etc/default/saned

Inetd neustarten

Nach den Änderungen muss Initd neu gestartet werden, dies geschieht folgendermaßen:

user@server:~$ sudo /etc/init.d/openbsd-inetd restart

Nun müsste durch folgenden Befehl:

user@server:~$ nmap localhost

ein Eintrag für Port 6566 (saned) vorhanden sein:

6566/tcp  open  unknown

Konfiguration von saned

In /etc/sane.d/saned.conf müssen nun noch alle Rechner mit IP-Adresse eingetragen werden, die Zugriff auf den Scannserver erhalten sollen:

user@server:~$ sudo nano /etc/sane.d/saned.conf

und zwar in folgender Art (Beispiel):

localhost
192.168.1.101
192.168.1.102
192.168.1.103

danach muss saned noch neugestartet werden:

user@server:~$ sudo /etc/init.d/saned restart

Linux - Clients

auch am Client müssen gewisse Dinge eingestellt werden:

Server eintragen

In /etc/sane.d/net.conf muss der Scannserver mit IP-Adresse eingetragen werden:

user@client:~$ sudo nano /etc/sane.d/net.conf 

Beispiel:

192.168.1.105

Netzwerkbackend aktivieren

In /etc/sane.d/dll.conf darf net nicht auskommentiert (#) sein:

user@client:~$ sudo nano /etc/sane.d/dll.conf 

Ansonsten einfach net ergänzen:

net

/etc/default/saned

Hier muss

# Set to yes to start saned
RUN=no

auf yes gesetzt werden:

# Set to yes to start saned
RUN=yes

Die Datei kann so geöffnet werden:

user@client:~$ sudo nano /etc/default/saned

saned neustarten

Die geschieht folgendermaßen:

user@client:~$ sudo /etc/init.d/saned restart

Test

Nun kann man die Konfiguration auf dem Client überprüfen

Zugang

Wir verbinden uns mit telnet auf den Scannerserver, um zu sehen, ob 1.der Port existiert 2.ob der Client von der Serverkonfig zugelassen wird:

user@client:~$ telnet ip_des_scannservers 6566

Eine erfolgreiche Verbindung sieht so aus:

Trying host...
Trying 127.0.0.1...
Connected to host.
Escape character is '^]'.

Eine gescheiterte:

Trying host...
Connected to host.
Escape character is '^]'.
Connection closed by foreign host.

Wenn die Verbindung erfolgreich war, kann zum nächsten Test übergegangen werden, bei einer gescheiterten muss überprüft werden, ob in der /etc/sane.d/net.conf des Servers die Client IP richtig eingetragen ist, ggf. Hostname zusätzlich eintragen (muss mit der /etc/hosts des Servers übereinstimmen) und IP-Adressen ohne Netzmasken (statt 192.168.1.1/255 192.168.1.101) verwenden. Falls die auch nichts hilft Server und Client neu starten und nochmal überprüfen, ansonsten externe Hilfe holen (Forum).

Scannererkennung

Auf dem Client führt man folgende Befehl aus

user@client:~$ scanimage -L

falls die Konfiguration stimmt, erhält man eine Ausgabe dieser Art:

device `net:192.168.2.104:hpaio:/usb/Officejet_Pro_8500_A909a?serial=CN03T4Q0W5' is a Hewlett-Packard Officejet_Pro_8500_A909a all-in-one

Nun kann man mit GUIs wie Simple Scan (standardmäßig in aktuellen Ubuntus enthalten) und co. erste Testseiten scannen. Wenn scanimage -L nur Errors liefert sollte man den Befehl vielleicht einmal mit root-Rechten ausführen (sudo davor), wenn dies wieder schief läuft sollten vorherige Tests (telnet) durchgeführt werden und ein Forum mit den Ausgaben der Tests aufgesucht werden.

Windows-Clients

Windows Clients benötigen das Programm SaneTwain. Aber auch diese Clients müssen korrekt auf dem Server eingetragen sein.

Problemlösungen

Canon Multifunktionsgeräte

Bei Canon Multifunktionsgeräten kann es zu Problemen kommen, die hier beschreiben sind. Die Lösung findet sich hier, sowie hier.


chrisge 2013/06/24 17:56

Diskussion

AndreasGuest, 2013/06/23 21:35

Die USB-Rechte müssen nicht in der DEFAULT RULE /lib/udev/rules.d/50-udev-default.rules für alle USB-Geräte geändert werden! Es reicht völlig aus wenn man für den Scanner eine neue UDEV-Rule anlegt. Dazu erstellt man einfach in /etc/udev/rules.d eine Datei 90-scanner.rules und fügt folgendes ein:

# change device file permission to group scanner for sane access
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="220d", SUBSYSTEMS=="usb", ACTION=="add", MODE="0664", GROUP="scanner"

Die Werte für idVender und idProduct entnimmt man dem Befehl lsusb. Diese Änderung muss auch nicht nach jedem update des Pakets udev wiederholt werden! Das schöne an dieser Lösung ist auch das man den Zugriff auf den Scanner jetzt über die Gruppe scanner regeln kann. Und nicht jeder Benutzer am System hat automatisch vollen Zugriff auf jedes USB-Gerät das am Rechner angeschlossen wird.

Christoph Winklerchrisge, 2013/06/24 18:08

Vielen Dank für den Hinweis! Habe die Anleitung angepasst :-)
Mittlerweile würde ich auch den Weg über eine extra Udev-Regel gehen. Vor zwei Jahren war diese „Pfuscherei“ an den Default Regeln als Würgaround bei Scannern sehr weit verbreitet (teilweise immer noch):

AndreasGuest, 2013/06/24 22:12

Ja, da muss man wohl etwas Aufklärung betreiben ;-) Jetzt steht es auf jeden Fall schon mal im deutschen top Google Ergebnis. Danke.

techrunnerGuest, 2014/06/25 13:43

Hi,

mit der Beschreibung wurde mir schon soweit geholfen, das der Scanner (ein HPAIO-Gerät) mit normalem user bei scanimage -L erkannt wird. Bei dem Versuch, auf dem Server zu scannen, erhalte ich die Fehlermeldung: ….Error during device I/O… habe mich im Internet schon halb tot gesucht, aber nix brauchbares gefunden. Witzigerweise lief der Scanner vor Monaten unter Debian 6, irgendwann dann nicht mehr, nun habe ich Raspbian laufen. Drucker geht, Scanner mit der benannten Fehlermeldung nicht :-((

Hast du da eine Idee? Entweder schmeisse ich für immer Linux aus dem Fenster oder den Drucker….

Christoph Winklerchrisge, 2014/06/26 20:42

Wie lautet die Fehlermeldung genau? Kannst du als root scannen?

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
ZLLMJ
 
  • Teilen
  • Bookmark "Scannserver mit Sane" auf del.icio.us
  • Bookmark "Scannserver mit Sane" auf Digg
  • Bookmark "Scannserver mit Sane" auf Reddit
  • Bookmark "Scannserver mit Sane" auf StumbleUpon
  • Bookmark "Scannserver mit Sane" auf Facebook
  • Bookmark "Scannserver mit Sane" auf Twitter
  • Bookmark "Scannserver mit Sane" auf Slashdot
Sonstiges
Drucken/exportieren
Archiv

Archivierter Inhalt der alten Seite