sane-scsi(5) SANE Scanner Access Now Easy sane-scsi(5) BEZEICHNUNG sane-scsi - SCSI-Adapter-Tipps fur Scanner BESCHREIBUNG Diese Handbuchseite enthalt verschiedene betriebssystemabhangige Tipps und Tricks, wie Sie Scanner mit einer SCSI-Schnittstelle zum Laufen bekommen. ALLGEMEINE INFORMATIONEN Fur Scanner mit einer SCSI-Schnittstelle kann es notwendig sein, die geeignete Backend-Konfigurationsdatei zu bearbeiten, bevor SANE erstmalig verwendet wird. Fur die meisten Systeme sollte die Konfigurationsdatei die Namen der generischen SCSI-Gerate auffuhren, mit denen der Scanner verbunden ist (z.B. ist unter Linux /dev/sg4 oder /dev/sge ein solches generisches SCSI-Gerat). Es ist ublich, einen Symlink von /dev/scanner auf das generische SCSI-Gerat zu erstellen, mit dem der Scanner verbunden ist. In diesem Fall fuhrt die Konfigurationsdatei einfach die Zeile /dev/scanner auf. Fur eine detaillierte Beschreibung der Backend-Konfigurationsdateien schauen Sie bitte in die Handbuchseite des relevanten Backends (z.B. sane-epson(5) fur Epson-Scanner, sane-hp(5) fur HP-Scanner usw.). Bei einigen Betriebssystemen (z.B. Linux und OS/2) gibt es eine alternative Moglichkeit, Scanner-Gerate festzulegen. Diese alternative Art ermoglicht es, Scanner uber den SCSI-Lieferanten und die Modellbezeichnungs-Zeichenkette und/oder uber die SCSI-Gerate-Adresse (bestehend aus der Bus-Nummer, der Kanalnummer, der Kennung und der logischen Einheitennummer) zu identifizieren. Die Syntax fur die Festlegung eines Scanners auf diese Art ist wie folgt: scsi LIEFERANT MODELL TYP BUS KANAL KENNUNG LUN wobei LIEFERANT die Zeichenkette mit dem SCSI-Lieferanten, MODELL ist die SCSI-Modellbezeichnungs-Zeichenkette, TYP ist die SCSI-Geratetypzeichenkette, BUS ist die SCSI-Bus-Nummer (genannt >>host<< in /proc/scsi/scsi), KANAL ist die SCSI-Kanalnummer, KENNUNG ist die SCSI-Kennung und LUN ist die logische Einheitennummer des Scanner-Gerats. Die ersten zwei Felder sind Zeichenketten, die in doppelten englischen Anfuhrungszeichen eingeschlossen werden mussen, falls sie Leerraumzeichen enthalten. Die verbleibenden vier Felder sind nicht-negative Ganzzahlen. Die korrekten Werte fur diese Felder konnen mit betriebssystemspezifischen Werkzeugen ermittelt werden, z.B. fur Linux durch Prufen der Ausgabe des Befehls cat /proc/scsi/scsi. Um die Konfiguration zu erleichtern, kann der Wert eines Feldes durch ein Sternsymbol (>>*<<) ersetzt werden. Ein Stern hat den Effekt, dass fur dieses bestimmte Feld jeder Wert erlaubt ist. Dies kann dazu fuhren, dass eine einzelne SCSI-Zeile auf mehrere Gerate passt. Wenn dies passiert, wird nacheinander jedes passende Gerat durch das Backend gepruft und registriert, falls das Backend glaubt, dass dies ein kompatibles Gerat ist. Die Zeile scsi MUSTEK MFS-06000CX Scanner 0 00 03 00 wurde beispielsweise einen Mustek-SCSI-Scanner mit dem folgenden /proc/scsi/scsi-Eintrag anhangen: Host: scsi0 Channel: 00 Id: 03 Lun: 00 Vendor: MUSTEK Model: MFS-06000CX Rev: 4.04 Type: Scanner ANSI SCSI revision: 0 Normalerweise reicht es aus, nur die Zeichenketten fur den Lieferanten und das Modell oder sogar nur fur den Lieferanten zu verwenden. Das folgende Beispiel scsi MUSTEK * * * * * * hatte den Effekt, das alle SCSI-Gerate in dem System, deren Lieferantenzeichenkette MUSTEK lautet, gepruft und durch das Backend registriert wurden. Falls der Rest einer SCSI-Zeichenkette nur aus Sternchen besteht, konnen die Sternchen entfallen. Beispielweise ist die folgende Zeile aquivalent zu der vorher festgelegten: scsi MUSTEK Auf einigen Plattformen (z.B. OpenStep) nehmen die SANE-Geratenamen eine besondere Form an. Dies ist nachfolgend in dem relevanten Plattform-spezifischen Abschnitt beschrieben. Beim Einsatz von SCSI-Scannern stellen Sie sicher, dass die Zugriffsberechtigungen fur das generische SCSI-Gerat geeignet gesetzt sind. Wir empfehlen, eine Gruppe >>scanner<< zu /etc/group hinzuzufugen, die alle Benutzer enthalt, die Zugriff auf den Scanner haben sollen. Die Berechtigungen fur das Gerat sollten dann so gesetzt werden, dass sie der Gruppe Lese- und Schreibzugriff erlauben. Falls der Scanner beispielsweise das generische SCSI-Gerat /dev/sg0 ist, dann wurden die folgenden zwei Befehle die Berechtigungen korrekt setzen: $ chgrp scanner /dev/sg0 $ chmod 660 /dev/sg0 Wenn Ihr System das Geratedateisystem (devfs) verwendet, mussen Sie /etc/devfs/perms bearbeiten. Dort mussen Sie nach der Zeile REGISTER ^sg[^/]* PERMISSIONS root.root 0600 suchen, und eine neue Zeile (z.B. zur Anderung der Berechtigung von sg4) hinzufugen: REGISTER ^sg4 PERMISSIONS root.scanner 0660 FREEBSD-INFORMATIONEN Die automatische Konfiguration mittels der Zeilen >>scsi *<< in den Konfigurationsdateien funktioniert nur, falls der Benutzer, der die Oberflache ausfuhrt, Lese-/Schreibzugriff auf /dev/xpt0 hat. Sie konnen stattdessen auch einen Link /dev/scanner auf das geeignete Gerat /dev/uk setzen. Adaptec AHA1542CF Lauft Berichten zu Folge gut unter FreeBSD 2.2.2R mit dem Treiber aha. Adaptec 2940 Soll unter FreeBSD 2.2.2 gut laufen. Adaptec 1522 Der Scanner wird korrekt erkannt, aber jeder Zugriffsversuch darauf hangt das gesamte System auf. Es sieht so aus, als ob etwas Interrupts deaktivieren und dann nicht wieder aktivieren wurde, es sieht also wie ein Fehler im Treiber aic von FreeBSD aus. Adaptec 1505 Funktioniert unter FreeBSD 2.2.5R und 3.0 mittels des Treibers aic, vorausgesetzt, dass die Unterstutzung fur >>Plug-and-Play<< fur die Karte deaktiviert ist. Falls es keine uk-Gerate gibt, fuhren Sie einfach ein sh MAKEDEV uk0 in dem Verzeichnis /dev durch. Auf den Scanner sollte dann uber /dev/uk0 zugegriffen werden konnen, so, als ob er wahrend des Systemstarts erkannt worden ware. Tekram DC390 Soll unter FreeBSD 2.2.2R mit dem Treiber amd gut laufen. LINUX-INFORMATION Als erstes stellen Sie bitte sicher, dass die generische SCSI-Unterstutzung im Kernel aktiviert ist. In make xconfig taucht dies unter >>SCSI support->SCSI generic support<< auf. Um Scanzeiten zu minimieren, wird nachdrucklich empfohlen, einen grossen Puffer fur den generischen SCSI-Treiber zu verwenden. Seit SG-Treiber Version 2.0 kann die Puffergrosse zur Laufzeit verandert werden und es gibt keine Grossenbeschrankung. Diese Treiberversion ist seit Version 2.2.7 Teil des Linux-Kernels. Falls der neuere SG-Treiber verfugbar ist, erbitten einige Backends (z.B. sane-umax(5), sane-mustek(5), sane-sharp(5)) automatisch grossere Puffergrossen. Falls ein Backend nicht automatisch einen grosseren SCSI-Puffer anfordert, setzen Sie die Umgebungsvariable SANE_SG_BUFFERSIZE auf die gewunschte Puffergrosse in Byte. Es wird nicht empfohlen, mehr als 1 Megabyte zu verwenden, da fur grossere Werte die Wahrscheinlichkeit zunimmt, dass der SG-Treiber den/die notwendigen Puffer nicht reservieren kann. Fur ISA-Karten kann selbst 1 MB ein zu grosser Wert sein. Fur eine detaillierte Beschreibung des Linux-SG-SCSI-Treibers lesen Sie https://tldp.org/HOWTO/SCSI-Generic-HOWTO. Fur Linux-Kernel vor Version 2.2.7 ist die Puffergrosse nur 32 kB. Das funktioniert, aber viele gunstigere Gerate scannen dadurch nur noch mit ungefahr einem Viertel der Geschwindigkeit wie bei der Verwendung von 127 kB. Linux definiert die Grosse dieses Puffers durch das Makro SG_BIG_BUFF in der Header-Datei /usr/include/scsi/sg.h. Wenn das System nicht extrem speicherarm ist, wird empfohlen, diesen Wert auf den maximal gultigen Wert von 128*1024-512=130560 byte zu erhohen. Nach der Anderung dieses Werts ist es notwendig, sowohl den Kernel (oder das generische SCSI-Modul) als auch die SCSI-Backends neu zu kompilieren. Beachten Sie, dass dies nur mit alteren Linux-Kerneln notwendig ist. Ein haufiges Problem bei SCSI-Scannern besteht darin, was Sie machen mussen, wenn Sie Ihr System gestartet haben, wahrend der Scanner ausgeschaltet war. In diesem Fall wird der Scanner nicht vom Kernel erkannt und SANE ist nicht in der Lage, darauf zuzugreifen. Glucklicherweise stellt Linux einen einfachen Mechanismus bereit, um bei Bedarf nach SCSI-Geraten zu suchen. Nehmen wir an, Ihr Scanner hangt an SCSI-Bus 2 und der Scanner hat die SCSI-Kennung 5. Wenn das System hochgefahren ist und der Scanner eingeschaltet ist, konnen Sie folgenden Befehl eingeben: echo "scsi add-single-device 2 0 5 0" > /proc/scsi/scsi Dann wird der Kernel Ihren Scanner untersuchen und erkennen (dies muss als Root erfolgen). Es ist auch moglich, ein SCSI-Gerat dynamisch mit dem Befehl >>remove-single-device<< zu entfernen. Fur Details schauen Sie bitte in das SCSI-2.4-HOWTO. Scanner funktionieren bekanntermassen mit den nachfolgend aufgefuhrten SCSI-Adaptern unter Linux. Die Liste ist nicht vollstandig, normalerweise sollte jeder unter Linux unterstutzte SCSI-Adapter funktionieren. Acard/Advance SCSI-Adapter Einige alte Versionen des Kerneltreibers (atp870u.c) schnitten die Abfrageinformationen ab. Daher konnte der Scanner nicht korrekt erkannt werden. Verwenden Sie einen aktuellen Kernel. Adaptec AHA-1505/AHA-1542/AHA-2940 Soll unter Linux seit Version 2.0 gut funktionieren. Falls der Kernel bei Ihnen einfriert oder anderes unerwartetes Verhalten auftritt, verwenden Sie den neusten Kernel (2.2.17 scheint zu funktionieren) oder reduzieren Sie die SCSI-Puffergrosse auf 32 kB. ASUS SC200 Soll unter Linux seit Version 2.0 gut funktionieren. BusLogic BT958 Zur Konfiguration des BusLogic-Karte konnte es notwendig sein, den folgenden Anweisungen (beigesteuert von Jeremy ) zu folgen: Wahrend des Systemstarts, wenn Ihr BusLogic-Adapter initialisiert wird, drucken Sie Strg-B, um in das BusLogic-Adapter-Setup zu kommen. Wahlen Sie die Adresse, unter der Ihr Scanner im BusLogic enthalten ist. Wahlen Sie >>SCSI Device Configuration<<. Wahlen Sie >>Scan SCSI Bus<<. Wahlen Sie die SCSI-Kennung, die Ihr Scanner enthalt, aus und wahlen Sie dann >>View/Modify SCSI configuration<<. Andern Sie >>Negotiation<< auf >>async<< und >>Disconnect<< auf >>off<<. Drucken Sie Esc, speichern Sie und erneut Esc, bis Sie zum Neustart aufgefordert werden. NCR/Symbios 53c400/53c400a oder Domex DTC3181E/L/LE (DTCT436/436P) ISA-SCSI-Karte Diese Karte wird von Mustek (und anderen Lieferanten) bereitgestellt. Sie wird seit Linux 2.2 unterstutzt. Die SCSI-Karten werden von dem Modul >>g_NCR5380<< unterstutzt. Es ist notwendig, dem Kernel den E/A-Port und den Typ der Karte mitzuteilen. Beispiel fur ein 53c400a: modprobe g_NCR5380 ncr_addr=0x280 ncr_53c400a=1. Sobald der Kernel die Karte erkennt, sollte alles korrekt funktionieren. Obwohl alles funktioniert, erwarten Sie keine gute Leistung von dieser Karte. Sie verfugt uber keine Interrupt-Leitung und daher wird das System fast unbenutzbar, wahrend der Scan lauft. Sie konnen den Wert des Makros USLEEP in drivers/scsi/g_NCR5380.c andern. Etwas Dokumentation befindet sich in dieser Datei und in NCR5380.c. NCR/Symbios 810 Bei einigen Scannern kann es notwendig sein, >>disconnect/reconnect<< zu deaktivieren. Um dies zu erreichen, verwenden Sie die Option ncr53c8xx="disc:n". Einige Leute berichten, dass ihr Scanner nur mit dem Treiber >>53c7,8xx<< funktioniert, nicht mit dem >>ncr53c8xx<<. Verwenden Sie beide, wenn Sie Probleme haben. Fur Linux-Kernel vor 2.0.33 kann es notwendig sein, die SCSI-Zeituberschreitung zu erhohen. Die Vorgabezeituberschreitung fur Linux-Kernel vor 2.0.33 ist 10 Sekunden, was fur das Scannen grosser Bereiche zu klein ist. Falls Sie Nachrichten der Form >>restart (ncr dead ?)<< in Ihrer Datei /var/log/messages oder auf der System-Konsole erhalten, ist das ein Anzeichen, dass die Zeituberschreitung zu klein ist. In diesem Fall, suchen Sie die Zeile >>if (np->latetime>10)<< in der Datei ncr53c8xx.c (normalerweise im Verzeichnis /usr/src/linux/drivers/scsi) und andern die Konstante auf beispielsweise 60 (eine Minute). Dann bauen Sie das Kernelmodul neu und versuchen es erneut. Tekram DC315 Der Treiber kann von http://www.garloff.de/kurt/linux/dc395/ heruntergeladen werden. Fur einige altere Scanner kann es notwendig sein, samtliche fortgeschrittene Funktionalitaten zu deaktivieren, beispielsweise mittels modprobe dc395x_trm dc395x_trm=7,5,1,32. Tekram DC390 Version 1.11 des Tekram-Treibers scheint grosstenteils korrekt zu funktionieren, ausser dass der Scan nicht korrekt beendet wird (er fuhrt zu einer SCSI-Zeituberschreitung nach 10 Minuten). Der generische AM53C974 scheint auch korrekt zu funktionieren und leidet nicht unter den Zeituberschreitungsproblemen. SOLARIS-, OPENSTEP- UND NEXTSTEP-INFOMATION Unter Solaris, OpenStep und NeXTStep bezieht sich der generische SCSI-Geratename auf einen SCSI-Bus, nicht ein individuelles Gerat. Beispielsweise bezieht sich /dev/sg0 auf den ersten SCSI-Bus. Um SANE mitzuteilen, welches Gerat verwendet werden soll, hangen Sie das Zeichen >>a<<+Zielkennung an den besonderen Geratenamen an. Das SCSI-Gerat, das am ersten SCSI-Controller mit der Zielgeratekennung 0 hangt, wurde beispielsweise /dev/sg0a genannt werden und das Gerat mit der Zielgeratekennung 1 auf dem gleichen Bus wurde /dev/sg0b genannt werden und so weiter. UMGEBUNGSVARIABLEN SANE_DEBUG_SANEI_SCSI Falls die Bibliothek mit aktivierter Debug-Unterstutzung kompiliert wurde, steuert diese Umgebungsvariable die Debug-Stufe fur das generische SCSI-E/A-Subsystem. Ein Wert von 128 fordert beispielsweise, dass samtliche Debug-Ausgabe vom Backend dargestellt wird. Ein Wert von 255 gibt auch die Kernelnachrichten vom SCSI-Subsystem aus (soweit verfugbar). Kleinere Stufen reduzieren die Ausfuhrlichkeit. SANE_SCSICMD_TIMEOUT setzt den Zeituberschreitungswert fur SCSI-Befehle in Sekunden. Nur bei sehr langsamen Scannern sollte das Ausserkraftsetzen des Vorgabewertes von 120 Sekunden notwendig sein. SIEHE AUCH sane(7), sane-find-scanner(1), sane-"backendname"(5), sane-usb(5) AUTOR David Mosberger UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Mario Blattermann und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . 14. Juli 2008 sane-scsi(5)