BEZEICHNUNG
sane-sharp - SANE-Backend für Scanner von SHARPBESCHREIBUNG
Die Bibliothek sane-sharp implementiert ein SANE-(Scanner Access Now Easy) Backend zum Zugriff auf Sharp-SCSI-Scanner. Dieses Backend sollte als Software im Beta-Stadium betrachtet werden! Im aktuellen Zustand arbeitet sie mit JX-610- und JX-250-Scannern zusammen. Sie ist für die Verwendung mit den Scannern der JX-330-Serie vorbereitet, was wir aber nicht testen konnten. Mit anderen SHARP-Scannern kann es funktionieren oder auch nicht. Gegenwärtig sollten die folgenden Scanner mit diesem Backend funktionieren:Anbieter Produktkennung: ----- ----------- Sharp JX-610 Sharp JX-250 Sharp JX-320 Sharp JX-330 Sharp JX-350
Anbieter Produktkennung: ----- ----------- Sharp JX-325
GERÄTENAMEN
Dieses Backend erwartet Gerätenamen der folgenden Form:Spezialdatei
Die angegebene Spezialdatei ist der Pfadname eines Spezialgeräts,
das einem SCSI-Scanner entspricht. Der Name des Spezialgeräts muss ein
generisches SCSI-Gerät oder ein symbolischer Link zu so einem
Gerät sein. Unter Linux könnte ein solcher Gerätename
beispielsweise /dev/sga oder /dev/sge sein. Siehe
sane-scsi(5) für Details.
SCAN-OPTIONEN
- --mode
- Scan-Modus. Mögliche Einstellungen sind: Lineart (1 bit schwarz-und-weiß-Scans), Gray (8 bit Graustufenscans), Lineart Color (zweistufige Farbscans) und Color (8 bit RGB-Scans). Der Vorgabewert ist Color.
- --halftone-pattern
- Rastermuster. Nur für die Scanner der JX-330-Serie verfügbar. Mögliche Einstellungen sind: none, Dither Bayer, Dither Spiral, Dither Dispersed und Error Diffusion. Der Vorgabewert ist none.
- --source
- Papierquelle. Diese Option ist nur verfügbar, falls ein automatischer Dokumenteneinzug oder ein Transparenz-Adapter installiert ist. Mögliche Einstellungen sind: Flatbed, Automatic Document Feeder und Transparency Adapter. Falls ein ADF oder ein Transparenz-Adapter installiert ist, ist deren Verwendung die Vorgabe.
- --custom-gamma
- Angepasstes Gamma. Diese Option bestimmt, ob eine eingebaute oder eine angepasste Gammatabelle verwendet wird. Mögliche Einstellungen sind: yes (aktiviert angepasste Gamma-Tabellen) oder no (aktiviert eine eingebaute Gamma-Tabelle).
- --gamma
- Gamma. Diese Option ist nur verfügbar, falls Custom Gamma auf no gesetzt ist. Mögliche Werte sind: 1.0 oder 2.2. Der Vorgabewert ist 2.2. (Die JX-250 und JX-350 haben keine eingebaute Gammakorrektur; für diese Scanner wird eine Gamma-Tabelle vom Backend zum Scanner heruntergeladen.)
- --gamma-table
- Gamma-Tabelle. Erlaubte Werte: 0…255. 256 Zahlen müssen definiert werden. Die Vorgabewerte sind 0, 1, 2, … 255 (d.h. Gamma == 1). Diese Tabelle wird nur für Graustufen-Scans verwendet.
- --red-gamma-table
- Rote Gamma-Tabelle. Erlaubte Werte: 0…255. 256 Zahlen müssen definiert werden. Die Vorgabewerte sind 0, 1, 2, … 255 (d.h. Gamma == 1).
- --green-gamma-table
- Grüne Gamma-Tabelle. Erlaubte Werte: 0…255. 256 Zahlen müssen definiert werden. Die Vorgabewerte sind 0, 1, 2, … 255 (d.h. Gamma == 1).
- --blue-gamma-table
- Blaue Gamma-Tabelle. Erlaubte Werte: 0…255. 256 Zahlen müssen definiert werden. Die Vorgabewerte sind 0, 1, 2, … 255 (d.h. Gamma == 1).
- --resolution
- wählt die Auflösung des gescannten Bildes. Erlaubte Werte: 30…600 (JX-330, JX-350 und JX-610) und 30…400 (JX-250). Der Vorgabewert ist 150.
- -l, -t, -x, -y
- Scan-Fenster. Obere linke x-Position des Scanbereichs (-l), obere linke y-Position des Scanbereichs ( -t), untere rechte Position des Scanbereichs ( -x) und untere rechte Position (-y) des Scanbereichs. Die möglichen Einstellungen hängen vom Scannermodell und, für den JX-250 und den JX-350, auch vom Einsatz des automatischen Dokumenteneinzugs bzw. des Transparenz-Adapters ab. Bitte schauen Sie sich die erlaubten Werte in xscanimage(1) oder xsane(1) an. Bei scanimage(1) geben Sie einen der folgenden Befehle ein, um die erlaubten Parameterwerte für das Scan-Fenster zu sehen:
scanimage -d sharp --source "Automatic
Document Feeder" --help
scanimage -d sharp --source Flatbed --help
scanimage -d sharp --source "Transparency Adapter" --help
- --edge emphasis
- Randbetonung. Diese Option ist für den JX-250 und den JX-350 nicht verfügbar. Mögliche Einstellungen: None, Middle, Strong und Blur. Die Vorgabe ist None.
- --threshold
- setzt den Schwellwert für schwarze und weiße Pixel im Modus Lineart. Mögliche Werte sind 1…255. Der Vorgabewert ist 128. Diese Option ist nur im Scanmodus lineart verfügbar.
- --threshold-red
- setzt den Schwellwert für die rote Komponente eines Pixels im Lineart-Farbscan-Modus. Mögliche Werte sind 1…255. Der Vorgabewert ist 128. Diese Option ist nur im Farb-Scanmodus lineart verfügbar.
- --threshold-green
- setzt den Schwellwert für die grüne Komponente eines Pixels im Lineart-Farbscan-Modus. Mögliche Werte sind 1…255. Der Vorgabewert ist 128. Diese Option ist nur im Farb-Scanmodus lineart verfügbar.
- --threshold-blue
- setzt den Schwellwert für die blaue Komponente eines Pixels im Lineart-Farbscan-Modus. Mögliche Werte sind 1…255. Der Vorgabewert ist 128. Diese Option ist nur im Farb-Scanmodus lineart verfügbar.
- --lightcolor
- setzt die Farbe der Lichtquelle. Mögliche Werte sind white, red, green und blue. Der Vorgabewert ist white. Diese Option ist nur in den Scanmodi lineart color und color verfügbar.
ADF-VERWENDUNG
Falls ein Papierstau auftritt, muss der Wartungsdeckel geöffnet und geschlossen werden, selbst wenn das verstopfte Papier ohne Öffnen der Wartungsklappe entfernt werden kann. Andernfalls wird der Fehlerzustand nicht zurückgesetzt.KONFIGURATION
Der Inhalt der Datei sharp.conf ist eine Liste von Optionen und Gerätenamen, die Sharp-Scannern entsprechen. Leere Zeilen und Zeilen, die mit einer Raute (#) beginnen, werden ignoriert. Siehe sane-scsi(5) für Details über Gerätenamen. Zeilen, die eine Option setzen, beginnen mit dem Schlüsselwort option, gefolgt vom Optionsnamen und dessen Wert. Derzeit sind drei Optionen definiert: buffers, buffersize und readqueue. Optionen am Anfang von sharp.conf gelten für alle Geräte; Optionen, die nach Gerätenamen definiert sind, gelten für dieses Gerät. Die Optionen buffers und readqueue sind nur von Bedeutung, falls das Backend so kompiliert wurde, dass jeder Scan einen zweiten, mit Fork gestarteten Prozess auslöst (Schalter USE_FORK in sharp.c). Dieser Prozess liest die Scandaten aus dem Scanner und schreibt diese Daten in einen Block gemeinsam benutzten Speichers. Der Elternprozess liest die Daten aus diesem Speicherblock und liefert sie an die Oberfläche aus. Die Optionen steuern die Größe und die Verwendung dieses gemeinsamen Speicherblocks. option buffers definiert die Anzahl der verwendeten Puffer. Die kleinste erlaubte Zahl ist 2. option buffersize definiert die Größe eines Puffers. Da jeder Puffer mit einem einzelnen Lesebefehl, der an den Scanner gesendet wird, gefüllt wird, wird seine Größe automatisch auf die durch das Betriebssystem oder durch die SANE-SCSI-Bibliothek für SCSI-Lesebefehle erlaubte Größe begrenzt. Für Scan-Auflösungen von 300 DPI oder höher wird eine Puffergröße von 128 kB oder 256 kB empfohlen. option readqueue definiert, wie viele Lesebefehle, die an den Scanner gesandt werden sollen, in die Warteschlange sollen. Derzeit unterstützt die SANE-SCSI-Bibliothek Warteschlangen für Lese-Befehle nur unter Linux. Für andere Betriebssysteme sollte option readqueue auf 0 gesetzt werden. Für Linux sollte option readqueue auf 2 gesetzt werden. Größere Werte als 2 für option readqueue sind in den meisten Fällen nicht vernünftig. option buffers sollte größer als option readqueue sein.Leistungsbetrachtungen
Dieser Abschnitt fokussiert sich auf das Problem des Anhaltens des Schlittens des Scanners während eines Scans. Schlittenstops passieren hauptsächlich bei dem JX-250. Dieser Scanner hat offensichtlich nur einen kleinen internen Puffer verglichen zu seiner Geschwindigkeit. Das bedeutet, dass das Backend die Daten so schnell wie möglich vom Scanner lesen muss, um die Schlittenstopps zu vermeiden. Selbst der JX-250 benötigt nur weniger als 10 Sekunden für einen A4-Graustufenscan in 400 DPI, was zu einer Datenübertragungsrate von mehr als 1,6 MB pro Sekunde führt. Das bedeutet, dass die vom Scanner erstellten Daten recht schnell verarbeitet werden müssen. Aufgrund des kleinen internen Puffers des JX-250 muss das Backend Leseanforderungen für den nächsten Datenblock nach dem Lesen eines Datenblock so früh wie möglich ausgeben, um Schlittenstopps zu vermeiden. Der Schlitten kann aus folgenden Gründen stehen bleiben:- zu viel »Verkehr« auf dem
SCSI-Bus
- langsame Antworten des Backends an den Scanner
- ein Programm, das die vom Backend erlangten Daten verarbeitet, ist zu
langsam
Zu viel »Verkehr« auf dem SCSI-Bus: Dies passiert beispielsweise,
falls Festplatten an den gleichen SCSI-Bus wie der Scanner angeschlossen sind
und wenn der Datentransfer von/zu diesen Festplatten einen
beträchtlichen Teil der SCSI-Bandbreite während eines Scans
benötigt. Falls dies der Fall ist, sollten Sie in Betracht ziehen, den
Scanner an einen separaten SCSI-Adapter anzuschließen.
Langsame Antworten durch das Backend an den Scanner: Unglücklicherweise
haben im Allgemeinen UNIX-artige Betriebssysteme keine
Echtzeitfähigkeiten. Daher gibt es keine Garantie, dass das Backend
unter allen Bedingungen in der Lage ist, mit dem Scanner so schnell wie
möglich zu kommunizieren. Um das Problem zu minimieren, sollte das
Backend so kompiliert werden, dass ein separater Leseprozess mit Fork
gestartet wird: Stellen Sie sicher, dass USE_FORK definiert ist, wenn
Sie sharp.c kompilieren. Falls weiterhin das Problem der langsamen
Antworten durch das Backend bleibt, könnten Sie versuchen, die
Systemlast zu reduzieren. Selbst obwohl das Backend und der Leseprozess nur
einen geringen Anteil der Prozessorzeit benötigen, können andere
laufende Prozesse zu einer Erhöhung der Zeitverzögerung zwischen
zwei Zeitfenstern, die dem Leseprozess zugeteilt werden, führen. Auf
langsameren Systemen kann solch eine Verzögerung groß genug
sein, um einen Schlittenstopp bei dem JX-250 auszulösen. Für
Linux wird die Verwendung des SG-Treibers Version 2.1.36 oder neuer empfohlen,
da er im Zusammenspiel mit der SCSI-Bibliothek von Sane Version 1.0.2 das
Einreihen von Befehlen im Kernel unterstützt. Diese Implementierung,
kombiniert mit einer Puffergröße von mindestens 128 kB, sollte
die meisten Schlittenstopps vermeiden.
Langsame Verarbeitung der Scan-Daten: Ein Beispiel für diese Situation
ist der Zugriff auf den Scanner über eine 10-MBit-Ethernet-Verbindung,
die definitiv für die Übertragung der Scandaten in der
Geschwindigkeit, in der sie der Scanner erstellt, zu langsam ist. Falls Sie
über genug Arbeitsspeicher verfügen, können Sie option
buffers erhöhen, so dass das gesamte Bild in diesen Puffern
gespeichert werden kann.
Um herauszufinden, ob das Backend oder die weitere Verarbeitung der Daten zu
langsam ist, setzen Sie die Umgebungsvariable SANE_DEBUG_SHARP auf 1.
Wenn ein Scan abgeschlossen ist, schreibt das Backend die Zeile »buffer
full conditions: nn« auf die Standardfehlerausgabe. Falls
nn null ist, werden Schlittenstopps durch zu langsame Verarbeitung des
Backends oder durch zu viel »Verkehr« auf dem SCSI-Bus
ausgelöst. Falls nn größer als null ist, musste
das Backend nn mal warten, bis ein Puffer durch die Oberfläche
verarbeitet wurde. (Bitte beachten Sie, dass option buffers
größer als option readqueue sein muss, um
nützliche Ausgaben für die »Puffer-Voll-Bedingung«
zu erhalten.)
DATEIEN
- /etc/sane.d/sharp.conf
- Die Backend-Konfigurationsdatei.
- /usr/lib/x86_64-linux-gnu/sane/libsane-sharp.a
- Die statische Bibliothek, die dieses Backend implementiert.
- /usr/lib/x86_64-linux-gnu/sane/libsane-sharp.so
- Die dynamische Bibliothek, die dieses Backend implementiert (auf Systemen verfügbar, die dynamisches Laden unterstützen).
UMGEBUNGSVARIABLEN
- SANE_DEBUG_SHARP
- Falls die Bibliothek mit Debug-Unterstützung kompiliert wurde, steuert diese Umgebungsvariable die Debug-Stufe für dieses Backend. Beispielsweise bewirkt ein Wert von 128 die Anzeige sämtlicher Debug-Ausgaben. Kleinere Werte reduzieren die Ausführlichkeit.
BEKANNTE PROBLEME
1. ADF-ModusNach verschiedenen Scans aus der automatischen
Dokumentenzuführung fährt der Scanner den Schlitten in die
ADF-Ruheposition zurück, bevor ein Scanvorgang beginnt. Wir wissen
nicht, ob dies am Scanner liegt oder ein Fehler im Backend ist. Momentan ist
es nötig, den Scanner aus- und wieder einzuschalten, um dieses
ärgerliche Verhalten zu beheben.
SIEHE AUCH
sane(7), sane-scsi(5)AUTOREN
Kazuya Fukuda, Abel DeuringDANKSAGUNGEN
Das Sharp-Backend basiert auf dem von Helmut Koeberle geschriebenen Canon-Backend. Teile dieser Handbuchseite sind eine direkte Kopie von sane-mustek(5) von David Mosberger-Tang, Andreas Czechanowski und Andreas Bolsch.ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <[email protected]> und Helge Kreutzmann <[email protected]> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer11. Juli 2008 |