SuSE GmbH

SuSE Support-Datenbank

Titel: Scanner unter Linux

----------

Übersicht o Stichwortsuche o History o Versionen o Kategorien o Alle Artikel
English

----------

Scanner unter Linux

Bezieht sich auf

SuSE Linux: Versionen ab 5.2

Vorbemerkung

Das grundsätzliche Vorgehen zum Einrichten eines Scanners ist im Handbuch seit SuSE Linux 5.2 beschrieben (vgl. den Index, Stichwort: Hardware -> Scanner).
1. Hardware
2. Software
3. Handscanner
4. Installation einees SCSI-Scanners
5. Automatisches Laden der Kernelmodulei (für Experten!!)
6. Scannen über's Netzwerk

1. Hardware

Mittlerweile werden zahlreiche SCSI-Modelle unterstützt; hier eine Auswahl:

Für einige Handscanner gibt es auch Treiber, allerdings nicht im Rahmen der SuSE Linux! Vgl. die Bemerkungen weiter unten.

Scanner am Parallelport werden bislang nur in Ansätzen unterstützt (Stand: 1999-03-11); vgl. http://www.buzzard.org.uk/jonathan/scanners.html. -- Zum Stand der allgemeinen Parallelport-Programmierung unter Linux vgl. http://www.torque.net/linux-pp.html.

2. Software

Mit SANE (Scanner Access Now Easy) steht eine leistungsfähige, aber noch nicht immer betriebssichere Software zur Verfügung: http://www.mostang.com/sane/; SANE ist in der Distribution enthalten. In dem Paket "sane" ist auch das unten beschriebene Programm xscanimage enthalten. Um aus Gimp scannen zu können müssen Sie also mindestens gimp und sane installiert haben. Dies können Sie mit YaST tun, Sie finden die Pakete in der Serie gra :)

OCR-Software ist ebenfalls verfügbar. Unter X kann das Programm xocr verwendet werden. Sie finden es z.B. auf den Linux Snapshot CDs. Diese OCR-Software steckt allerdings noch immer in den "Kinderschuhen".

3. Handscanner

Treiber für Handscanner sind bei SuSE Linux bislang (Stand: 6.0) nicht enthalten. Einige Treiber sind auf tsx-11.mit.edu unter .../ALPHA/scanner zu finden (leider z.T. veraltete Versionen). Vgl. auch die CD-Sets Snapshot und Dekathlon.

Es gibt Treiber z.B. für:

4. Installation einees SCSI-Scanners

Installieren Sie Ihre SCSI Hardware so das sie unter /proc/scsi/scsi erscheint. Hier im Beispiel ist ein HP Scanjet am zweiten SCSI Kontroller angeschlossen (Der Scanner wird als Processor erkannt, das ist normal):

 $ cat /proc/scsi/scsi 
Attached devices: 
Host: scsi0 Channel: 00 Id: 02 Lun: 00
  Vendor: TOSHIBA  Model: DVD-ROM SD-M1201 Rev: 1R08
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 00
  Vendor: YAMAHA   Model: CRW4416S         Rev: 1.0f
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 01 Lun: 00
  Vendor: HP       Model: C6270A           Rev: 3828
  Type:   Processor                        ANSI SCSI revision: 02
Es muss ein Device /dev/sg0 vorhanden sein. Die Nummer kann entsprechend Ihren Hardwarevorraussetzungen variieren. In diesem Beispiel wäre es das dritte erkannte SCSI Gerät und ist somit unter /dev/sg2 ansprechbar. sg ist der generische SCSI Treiber den die Scannersoftware anspricht. Dies ist ein char-major 21 und sollte per Modul geladen werden.
 $ ls -l /dev/sg*
crw-------   1 root disk  21,   0 Jul 23 01:05 /dev/sg0
crw-------   1 root disk  21,   1 Jul 23 01:05 /dev/sg1
crw-rw----   1 root disk  21,   2 Jul 23 01:05 /dev/sg2

 $ ls -l /dev/scanner
lrwxrwxrwx   1 root root     3 Nov  3 16:59 /dev/scanner -> sg2

 $ grep char-major-21 /etc/conf.modules
alias char-major-21       sg
Dies alles ist in SuSE Linux schon vorinstalliert. Sie können den Scanner ganz einfach unter YaST einrichten wenn Ihr SCSI eingerichtet ist. Im Menü "Administration des Systems - Hardware in das System integrieren" können Sie den Scanner installieren. Hier im Beispiel müssten Sie /dev/sg2 wählen, dabei sehen Sie im Hintergrund welches Gerät sich meldet. Wenn Sie eine SCSI Festplatte wählen sind meist Ihre Daten futsch, also Vorsicht! :)
Dabei legt YaST einen symbolischen Link /dev/scanner an der auf das richtige Device /dev/sg2 zeigt.

Jetzt ist die Hardware konfiguriert. Um als User z.B. aus Gimp scannen zu können muss der entsprechende User noch in der Gruppe disk sein:

 $ grep ^disk /etc/group
disk:x:6:olaf
Der Benutzer olaf könnte also auf den Scanner zugreifen. Wenn Sie einen Benutzer erstmalig einer neuen Gruppe hinzufügen so muss sich dieser neu einloggen damit die Gruppenrechte neu gelesen werden. Gruppen können Sie in YaST verwalten, "Adminstration des Systems - Gruppenverwaltung"
Starten Sie jetzt Gimp, dabei wird das Verzeichnis ~/.gimp-1.1/plug-ins angelegt (die Versionsnummer kann natürlich anders sein). Dort müssen Sie einen symbolischen Link auf das Programm xscanimage anlegen:
 $ cd ~/.gimp-1.1/plug-ins/

 $ ln -s /usr/X11R6/bin/xscanimage

 $ ls -l ~/.gimp-1.1/plug-ins/
total 0
lrwxrwxrwx 1 olaf  users   25 Okt 27 19:31 xscanimage -> /usr/X11R6/bin/xscanimage
Im Gimpmenü "Xtns" taucht jetzt ein Eintrag "Aquire Image -> Device dialog" auf. Hier muss jetzt ein Punkt "/dev/scanner" auftauchen, diesen können Sie anwählen und loslegen.
Wenn hier nur etwas mit png erscheint haben Sie etwas falsch gemacht, gehen Sie die Schritte noch einmal durch.

5. Automatisches Laden der Kernelmodule (für Experten!!)

Meist ist der Scanner in dem Augenblick nicht angeschaltet wenn man scannen will. Den Scannertreiber sg.o kann man aber bei Bedarf laden und aktivieren lassen. Dazu kann man in /etc/conf.modules oder /etc/modules.conf einen entsprechenden Befehl eingeben:
post-install sg echo "scsi add-single-device 1 0 1 0" > /proc/scsi/scsi
Die Bedeutungen kommen aus /proc/scsi/scsi (siehe obiges Beispiel):
1 = Host (von 0 gerechnet)
0 = Channel
1 = SCSI ID des Gerätes
0 = LUN Nummer
Ein Auszug aus /usr/src/linux/drivers/scsi/scsi.c:
...
    /*
     * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
     * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
     * Consider this feature BETA.
     *     CAUTION: This is not for hotplugging your peripherals. As
     *     SCSI was not designed for this you could damage your
     *     hardware !
     * However perhaps it is legal to switch on an
     * already connected device. It is perhaps not
     * guaranteed this device doesn't corrupt an ongoing data transfer.
     */
...
Wenn man den Treiber für den SCSI Hostadapter nicht im Kernel hat dieser noch nicht geladen wurde kann man ein pre-install einfügen:
pre-install sg modprobe advansys
Wenn gescannt werden soll greift sane u.a. auf /dev/scanner zu. Dies hat zur Folge das sg.o geladen werden muss. Erst wird mit dem pre-install der eigentliche SCSI Treiber geladen, dann der generische SCSI Treiber sg.o und mit dem post-install wird noch das Gerät initialisiert.
Zusammengefasst sieht die modules.conf/modules.conf so aus (passen Sie das an Ihre Gegebenheiten an!):
pre-install sg modprobe advansys
alias char-major-21       sg
post-install sg echo "scsi add-single-device 1 0 1 0" > /proc/scsi/scsi

6. Scannen über's Netzwerk

Hat man den Scanner an der Scanstation richtig eingerichtet und ist man es leid gimp übers Netzwerk zu spielen kann man sich des saned bedienen. Dieser Dämon lauscht auf Port 6566, greift dann auf den Scanner zu und reicht die gescannten Daten direkt an den Client weiter. Es muss auf beiden Seiten sane installiert sein.

Einrichtung des Scan-Servers:
Als erstes muss in der Datei /etc/services ein weiterer Eintrag gemacht werden:
 $ grep sane /etc/services 
# Entry for the sane scan daemon
sane            6566/tcp        # SANE network scanner daemon
Man kann den saned entweder direkt starten oder er wird über den inetd bei Bedarf gestartet. Dazu fügt man in die Datei /etc/inetd.conf einen weiteren Dienst ein:
 $ grep sane /etc/inetd.conf
# sane scan daemon
sane stream tcp nowait root /usr/sbin/saned saned
Der inetd muss jetzt neu gestaret werden:
su - -c "/sbin/init.d/inetd restart"
In der Datei /etc/sane.d/saned.conf werden die Hostnamen eingetragen die auf den Scanner zugreifen dürfen. Es sind keine Wildcards und keine IP Addressen erlaubt, nur der volle Domainname (vergleichbar mit der /etc/hosts.lpr)
Oder Sie tragen ein einfaches plus + ein, dies gewährt allen Hosts Zugriff. Sollten Sie Bedenken haben so starten Sie den saned über den tcpd. Dabei können Sie die hosts.allow und hosts.deny einsetzen um den Zugriff nur auf bestimmte Rechner zu gewähren. Dies ist in der Manpage zu saned beschrieben: man saned

Einrichtung des Clients:
Auf der Clientseite muss man in der Datei /etc/saned.d/net.conf den Host eintragen an dem der Scanner angeschlossen ist. Weiterhin muss in der Datei /etc/saned.d/dll.conf die Zeile "net" eingetragen oder auskommentiert werden. Dies sagt dem lokalem xscanimage das auch ein Netzscanner geprüft werden soll.

----------

Siehe auch:

----------

Stichwörter: SCANNER, OCR, BILDBEARBEITUNG

----------

Kategorien: Hardware

----------

Feedback willkommen: Send Mail to mb@suse.de (Geben Sie bitte folgendes Stichwort an: SDB-scanner)

----------

Übersicht o Stichwortsuche o History o Versionen o Kategorien o Alle Artikel
English

----------

SDB-scanner, Copyright SuSE GmbH, Nuremberg, Germany - Version: 17. Mar 1997
SuSE GmbH - Zuletzt generiert: 19. Nov 1999 14:58:55 by olh with sdb_gen 1.00.0