Inhaltsverzeichnis
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
Archiv: Diese Anleitung behandelt ältere Softwareversionen, kann aber noch als Referenz verwendet werden.
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 service 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 service 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 service 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.