Der Linuxserver als Scannerserver
Ein Linuxrechner kann mittels spezieller Software im Netzwerk den gemeinsamen Zugriff auf einen Scanner ermöglichen.
Gliederung
1 Einleitung
2 Voraussetzungen
3 SANE selbst kompilieren
4 Konfiguration des Servers
5 Konfiguration eines Linux-Clients
6 Konfiguration eines Windows-Clients
7 Probleme
1 Einleitung
Ein Linuxrechner kann mittels spezieller Software im Netzwerk den gemeinsamen
Zugriff auf einen Scanner ermöglichen. Ich habe im Moment zwar noch
ein kleines Problem mit der Konfiguration, halte das Thema aber für
so interessant, daß ich im Gegensatz zu meinen sonstigen Gepflogenheiten
hier eine "unvollständige" Beschreibung ins Netz stelle, da ich bisher
im Netz zu diesem Thema noch nicht viel Informationen gefunden habe.
Vielleicht hat auch jemand eigene Erfahrungen, die mir eventuell weiterhelfen
könnten. Für entsprechende Anregungen wäre ich dankbar,
ich bin mir nicht sicher, ob meine Probleme mit meinem Scanner oder mit
Konfigurationsfragen zusammenhängen.
2 Voraussetzungen
Natürlich müssen Sie über einen Scanner verfügen und
dazu noch über einen Scanner, der von Linux unterstützt wird.
Die aktuelle Liste finden Sie auf der Homepage des SANE-Projekts.
Dieses Projekt hat sich zum Ziel gesetzt, mittels freier Software den Zugriff
auf Scanner und vergleichbare Geräte zu ermöglichen.
Sie müssen die SANE-Module Ihrer Distribution installieren. Beachten
Sie, daß bei SuSE-Linux (jedenfalls bis einschließlich Version
6.1) das Programm für den Scannerserver nicht im Standardpaket
enthalten ist. Sie müssen hier zumindestens für den Server die
Software selbst kompilieren (Anleitung dazu folgt)!
Wenn Sie unsicher sind, ob die Software bei Ihnen komplett ist, suchen
Sie auf der Festplatte nach der Datei saned (meistens im Verzeichnis
/usr/local/sbin oder /usr/sbin).
Wenn Sie dauerhaft und häufiger über das Netzwerk auf einen
Scanner zugreifen wollen, ist auch die Geschwindigkeit im Netz von größerer
Bedeutung. Ein DIN-A4-Farbscan kann leicht 30 MByte an Daten bedeuten.
Hier macht es sich stark bemerkbar, ob Sie über 10 MBit oder über
100 MBit-Netzwerkkarten verfügen.
Auf den Linuxclients reicht unter S.u.S.E. die normale Installation
mittels YaST. Sane befindet sich im Paket gra "Alles rund um Grafik".
Den Quellcode, den Sie im Falle eines Linuxservers benötigen, finden
Sie unter S.u.S.E. im Paket zq "Quellpakete" oder Sie besorgen ihn
vom oben genannten Server des SANE-Projektes. Wenn Sie auf der SANE-Hompeage
sind, sehen Sie nach, ob es für Ihren Scanner aktuelle Patch-Dateien
gibt. Bei mir steht ein Agfa Snapscan zur Verfügung und der funktioniert
nur, wenn der entsprechende Patch installiert ist (Traditionell ein Ärgernis
der S.u.S.E.-Distribution, daß der nicht installiert ist!).
3 SANE selbst kompilieren
Quellprogramme werden in der Regel in gepackter Form zur Verfügung
gestellt. Das entsprechende Archiv müssen Sie sich, wie bereits gesagt
entweder von den CDs Ihrer Distribution oder von der SANE-Homepage oder
woher auch immer besorgen. Ich erläutere die folgenden Schritte am
Archiv der Version 1.00 von SANE. Das heißt sane-1.00.tar.gz. Kopieren
Sie dieses in ein beliebiges Verzeichnis, für das Sie Lese- und Schreibrechte
haben. Dann müssen Sie das Paket auspacken. Geben Sie den Befehl:
tar -xvzf sane-1.00.tar.gz
an der Kommandozeile ein oder benutzen Sie die Entpackfunktionen Ihres
Dateimanagers.
Wenn dieser Schritt erfolgreich war, finden Sie im aktuellen Verzeichnis
ein neues Unterverzeichnis mit dem Namen sane-1.00. Wechseln Sie
in dieses Verzeichnis, indem Sie
cd sane-1.00
eingeben. Wenn Sie einen Patch installieren wollen oder müssen,
kopieren Sie die entsprechende Patch-Datei in das richtige Verzeichnis.
Bei mir gehört z.B. die Datei patch0.5-0.6 in das Verzeichnis backends.
Wechseln Sie in das entsprechende Verzeichnis und installieren Sie den
Patch (logischerweise unbedingt vor dem Kompilieren !!!).
patch < patch0.5-0.6
Dann müssen Sie mit Hilfe des Skriptes configure die Konfiguration
Ihres Rechners abfragen. Wichtig ist, daß Sie an dieser Stelle unter
anderem die Voreinstellungen für die Verzeichnisse festlegen können.
Hier kommt für S.u.S.E. wieder eine Besonderheit ins Spiel. SANE ist
normalerweise z.B. darauf eingerichtet, die Konfigurationsdateien unter
usr/local/etc/sane.d zu speichern, bei S.u.S.E. ist das aber /etc/sane.d.
Soweit ich das sehe, muß configure für S.u.S.E. wie folgt aufgerufen
werden:
./configure --mandir=/usr/man --libdir=/usr/lib --prefix=/usr --sysconfdir=/etc
Wenn Sie die Standardeinstellungen bevorzugen, reicht der Aufruf:
./configure
Dann werden alle Programmdateien und Bibliotheken erzeugt:
make
Zur Installation müssen Sie entweder als root eingeloggt sein
oder Sie müssen Superuser-Rechte haben (Geben Sie su ein
und dann das root-Passwort).
Durch Eingabe von
make install
werden die Dateien endgültig installiert. Wenn Sie knapp mit Platz
auf der Festplatte sind, können Sie jetzt das Verzeichnis löschen,
in dem Sie die Quellen von sane-1.00 gespeichert hatten.
4 Konfiguration des Servers
Die Konfiguration des Servers wird durch Konfigurationsdateien im Verzeichnis
/etc/sane.d (S.u.S.E.) bzw /usr/local/etc/sane.d (Standard)
bestimmt.
Die Datei dll.conf bestimmt, welche Geräte zur Verfügung
stehen. Auf dem Server muß hier eine Zeile mit dem Wort net enthalten
sein und eine Zeile für das Interface zu Ihrem Scanner. Bei mir ist
es ein Agfa Snapscan, deshalb steht dort snapscan. Die komplette Datei
dll.conf auf dem Server muß also lediglich zwei Zeilen enthalten:
net
snapscan
Die Datei net.conf auf dem Server ist bei mir leer. Es soll aber
einige Geräte geben, wo hier localhost eingetragen sein muß,
weil dann auch auf dem Server über das Netzwerkinterface auf das Gerät
zugegriffen wird. Das ermöglicht wohl einige spezielle Parameter.
In der Datei saned.conf auf dem Server wird angegeben, welche
Rechner auf den Scanner zugreifen dürfen. Es ist ganz wichtig, daß
hier die sogenannten voll qualifizierten Rechnernamen stehen. Achten Sie
bitte darauf, daß diese auch in der Datei /etc/hosts mit
der entsprechenden IP-Nummer eingetragen sind. Ansonsten würde bei
jedem Scanvorgang auf den Nameserver zugegriffen und das kostet bei Netzen
mit Dial-Up-Verbindung Telefoneinheiten.
calluna.meinnetz.com
begonia.meinnetz.com
Wenn auch lokal das Netzinterface benötigt wird, fügen Sie
noch eine Zeile
localhost
hinzu (Das schadet auch dann nicht, wenn Sie lokal nicht mit dem Netzinterface
arbeiten).
Dann muß in der Datei, die zu Ihrem Scanner gehört, noch
angegeben werden, um welches "Gerät" es sich handelt. In den meisten
Fällen gibt es einen symbolischen Link /dev/scanner, der bei der Installation
erzeugt wird. Andernfalls können Sie auch z.B. das SCSI-Gerät
direkt angeben (/dev/sg0 oder /dev/sga oder ähnliches). Wenn bei Ihnen
kein Link /dev/scanner existiert, überprüfen Sie durch Eingabe
von find-scanner, an welchem anschluß der Scanner erkannt wird. Tragen
Sie das dann entsprechend in die Konfigurationsdatei ein. Bei mir ist das
snapscan.conf und dort steht:
/dev/scanner
Damit der Scanner im Netz zur Verfügung gestellt wird, müsse
Sie noch zwei Dateien im Verzeichnis /etc ändern. Öffnen Sie
die Datei /etc/services und fügen Sie eine Zeile mit dem
Inhalt
sane 6566/tcp
hinzu. Zusätzlich müssen Sie in der Datei /etc/inetd.conf
die Zeile
sane stream tcp nowait root /usr/local/sbin/saned saned
ergänzen. Beachten Sie, daß hier die Pfadangabe den Verhältnissen
auf Ihrem Rechner entsprechen müssen. Für meine S.u.S.E.-Konfiguration
muß dort z.B. stehen:
sane stream tcp nowait root /usr/sbin/saned saned
Das müßte es gewesen sein. Überprüfen Sie jetzt
z.B. mit scanimage oder xscanimage, ob die Konfiguration lokal funktioniert.
Das ist natürlich Voraussetzung dafür, daß Sie den Scanner
im Netz zur Verfügung stellen können.
5 Konfiguration eines Linux-Clients
Auf einem Linuxclient muß saned nicht installiert sein, daher reicht
auch unter S.u.S.E. die Standardinstallation von SANE. Für die Konfiguration
reichen hier dann die zwei Dateien dll.conf und net.conf .
In der dll.conf auf dem Client muß lediglich der Netzzugriff
aktiviert werden:
net
In der Datei net.conf auf dem Client muß der voll qualifizierte
Name des Servers eingetragen sein.
azalea.meinnetz.com
Auch hier sollte dieser in /etc/hosts eingetragen sein.
6 Konfiguration eines Windows-Clients
Für Windows gibt es meines Wissens nach derzeit zwei Portierungen
der SANE-Software.
Eine davon ist noch in einem sehr frühen Stadium (Version 0.1).
Sie ist zu finden unter http://www.sunshinecomputing.com/winsane/
und hat zum Ziel eine völlig freie Implementierung der Client-Software
zu realisieren. Es soll langfristig ein TWAIN-Modul enstehen, so daß
aus jeder Windows-Anwendung mit Scanner-Interface auf den Netzdrucker zugegriffen
werden kann.
Eine zweite stammt von der Firma Integramicro.
Sie ist zwar auch noch nicht fertiggestellt (Version 0.9), es kann aber
bereits damit gearbeitet werden. Als Freeware und mit vollem Quellcode
stehen Kommandozeilenprogramme zum Zugriff auf einen Netzwerkscanner und
ein Tool zur Identifikation von Netzwerkscannern zur Verfügung. Zusätzlich
wird derzeit als Freeware auch ein Twain-Interface (Dies aber nicht als
Quellcode) zur Verfügung gestellt. Die Installation ist in den readme-Dateien
beschrieben. Aufgrund des frühen Stadiums der Software spare ich mir
hier größere Details. Lediglich die winSANE.ini-Datei soll hier
abgedruckt werden:
;WinSANE.ini for WinSANE data source
;
[ScannerParams]
; ScanPartner: 0 --> L/A, 1 --> H/T, 2 --> Gray and 3 --> Color
Mode=3
; -100 to +100
Brightness=0
Contrast=0
; 1 to 1200
XResolution=300
YResolution=300
; 0 --> F/B, 1 --> ADF
ADFScan=0
NoOfXfers=1
; scan window parameters
X=0
Y=0
Width=100
Height=100
; Devices
DeviceList=azalea.meinnetz.com:snapscan:/dev/scanner
ScanDevice=azalea.meinnetz.com:snapscan:/dev/scanner
Scannen per Kommandozeile sollte dann wie folgt möglich sein:
scanimg -d azalea.meinnetz.com:snapscan:/dev/scanner > Bild.ppm
7 Probleme
Derzeit habe ich noch folgendes Probleme beim Netzzugriff. In der Datei
/var/log/messages erscheinen folgende Meldungen:
May 15 15:34:58 azalea saned[363]: access by saned-user@calluna.meinnetz.com
accepted
May 15 15:38:14 azalea saned[363]: process_request: received unexpected
procedure number 0
May 15 15:38:14 azalea saned[363]: exiting
Diese Meldungen erscheinen sowohl beim Zugriff eines Linux-Clients als
auch eines Windows-Clients. Ein Linux-Client erhält wenigstens ein
Preview-Window, allerdings ohne vernünftigen Inhalt.
Alles andere führt zu keinen brauchbaren Ergebnissen.
Soweit ich die Diskussionen in der SANE-developers-mailingliste verfolgt
habe, liegt dieses Problem wohl an einem Fehler in dem speziellen Scannermodul.
Die beschriebene Konfiguration müßte also mit anderen Scannern
funktionieren.
|