Unterabschnitte


SANE - Scanner Access Now Easy

Allgemein

Scanner Access Now Easy, kurz SANE, ist ein freies Application Programming Interface (API) für den Zugriff auf bildgebende Geräte wie Scanner, Digitale Kameras, Videokameras und andere über verschiedene Schnittstellen (USB, SCSI etc.) Es ist die Alternative zu TWAIN als Programmierschnittstelle.

Im Gegensatz zu TWAIN sind bei SANE die Funktionalitäten von Frontend und Backend strikt getrennt.

Aufgabe der Backends ist die Kommunikation mit dem jeweiligen Bilderfassungsgerät über eine der zahlreichen unterstützten Schnittstellen (USB, Firewire, SCSI, Parallele Schnittstelle oder Serielle Schnittstelle).

Die Frontends stellen den zum Benutzer gerichteten Teil des Arbeitsablaufes dar und sind normalerweise in ein Anwendungsprogramm integriert.

Durch die standardisierte Schnittstelle können alle Frontends mit allen Backends ohne Probleme verwendet werden, die verfügbaren Optionen werden lediglich durch die tatsächlichen Fähigkeiten der Bildquelle (Auflösung, Farbtiefe, mit oder ohne Einzelblatteinzug, Diawechsler usw.) beschränkt.

Das SANE-Paket enthält bereits ein fertiges Frontend, das Programm 'scanimage', mit dem sich in einem Skript automatisch Bilder einlesen lassen ohne dafür eine grafische Benutzeroberfläche zu benötigen. [Quelle: Wikipedia]

Es werden die Ausgabeformate:

an der Konsole unterstützt.

Für das Ausgabeformat jpg und png ist das 'netpbm' Paket erforderlich.

Für die Scannertasten(button) gibt es die Pakete 'scanbd' und 'scanbuttond'. Diese Pakete müssen extra installiert werden. Es kann aber immer nur eines davon aktiv geschaltet werden.

Bei benutzung eines der Scannertasten Pakete gibt es eine Beschränkung die zu Beachten ist.

Während der Scannertasten Daemon aktiv ist, ist es nicht möglich das im Paket SANE enthaltene Frontend 'scanimage' zu benutzen. Um die Benutzung trotzdem möglich zu machen ist dafür der Benutzer(user) 'saned' eingerichtet der zu der Gruppe 'scanner' gehört.

Um mit dem Benutzer 'saned' arbeiten zu können muss dafür ein Passwort angelegt werden.

Als root: passwd saned

Das Menü im Setup-Programm

SANE kann auch als Benutzer, ohne Administratorrechte, auf der Konsole ausgeführt werden.

Das Menü im Setup-Programm ist für den Administrator wie folgt aufgebaut:

  4. Service administration  
  x. SANE Scanner Access    
  1. Sane server configuration    
  1. View documentation    
  2. Edit configuration    
  3. Status saned    
  4. Start saned    
  5. Stop saned    
  6. Scanner database    
  7. Find scanners    
  8. Test scanner    
  9. List all activated backends    
  10. Scan image    
  11. Sane backend configuration    
  12. Sane scanbuttond configuration    
  2. List all activated backends    
  3. Scan image    

Das Menü im Setup-Programm ist für den Benutzer, mit Benutzerrechten, wie folgt aufgebaut:

  4. Service administration  
  x. SANE Scanner Access    
  1. List all activated backends    
  2. Scan image    
       

Das Menü ist für den Benutzer 'saned' mit Benutzerrechten, wie folgt aufgebaut:

  1. List all activated backends  
  2. Scan image  

Die Änderung der Konfiguration

Die Konfiguration kann über den Menüpunkt 'Edit configuration' geändert werden.

Nachdem der Editor beendet wurde, wird abgefragt, ob die Konfiguration aktiviert werden soll. Wird dies bestätigt, so werden über ein Skript die Anpassungen umgehend wirksam gemacht.

Die Konfigurationsdatei

In der Konfigurationsdatei, die über das Menü zugänglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will, findet sie unter
/etc/config.d/sane

Die Parameter

SANE

START_SANE

Für die Aktivierung von 'SANE' muss diese Variable lediglich auf den Wert 'yes' gestellt werden. Die Einstellung 'no' schaltet 'SANE' ab.

Gültige Werte: yes, no

Standardeinstellung: START_SANE='no'

SANE_PORT

Auf welchen Port soll der saned service laufen?

Gültige Werte: Portnummer

Standardeinstellung: SANE_PORT='6566'

SANE_NETACCESS_N

Anzahl der Net-Einträge

Gültige Werte: Zahl

Standardeinstellung: SANE_NETACCESS_N='1'

SANE_NETACCESS_x_NET

Hostname, IP-Adresse oder Netzwerk der Clients, die auf den sane service zugreifen dürfen

Standardeinstellung: SANE_NETACCESS_x_NET='192.168.0.0/24'

SANE_BACKEND_N

Anzahl der verwendeten backends

Gültige Werte: Zahl

Standardeinstellung: SANE_BACKEND_N='2'

SANE_BACKEND_x_NAME

Name des backends für den verwendeten Scanner

Gültige Werte: Ein Treiber aus der Auswahlliste

abaton agfafocus apple artec artec_eplus48u as6e avision bh canon canon630u canon_dr canon_lide70 canon_pp cardscan coolscan coolscan2 coolscan3 dc25 dc210 dc240 dell1600n_net dmc epjitsu epson epson2 epsonds fujitsu genesys gt68xx hp hp3500 hp3900 hp4200 hp5400 hp5590 hpsj5s hpljm1005 hs2p ibm kodak kodakaio kvs1025 kvs20xx kvs40xx leo lexmark ma1509 magicolor matsushita microtek microtek2 mustek mustek_pp mustek_usb mustek_usb2 nec net niash pie pieusb pixma plustek plustek_pp qcam ricoh ricoh2 rts8891 s9036 sceptre sharp sm3600 sm3840 snapscan sp15c st400 stv680 tamarack teco1 teco2 teco3 test u12 umax umax_pp umax1220u v4l xerox_mfp p5

Welches Backend für den Scanner das richtige ist, erfahrt ihr hier: SANE Backends

Eine Kurzfassung ist unter dem Menupunkt 'Scanner database' abgelegt.

Standardeinstellung: SANE_BACKEND_x_NAME='abaton'

SCANBD

'scanbd' ist ein Optionales Paket und muss extra installiert werden.

'scandb' benutzt die backends von SANE. Alle Scanner die von SANE unterstüzt werden, werden auch durch 'scanbd' unterstüzt.

SANE_START_SCANBD

Soll scanbd gestartet werden?

Gültige Werte: yes, no

Standardeinstellung: SANE_START_SCANBD='no'

SANE_SCANBD_SCAN_FOLDER

Absoluter Pfad an dem die Scans abgelgt werden sollen.

Default: /public/scan

Gültige Werte: Absoluter Pfad

Standardeinstellung: SANE_SCANBD_SCAN_FOLDER='/public/scan'

Die Konfiguration und die Skripte liegen in '/etc/scanbd' und müssen an die Gegebenheiten angepasst werden. Dieser Vorgang lässt sich nicht über die gewohnte Konfigurationsdatei abbilden.

Alle Skripte sind auch als Vorlage unter '/usr/share/scanbd' abgelegt und können von da wieder kopiert werden.

Es ist schwierig den Vorgang im einzelnen zu beschreiben, da es auch je nach Scanner Modell Unterschiede mit den Tasten gibt. Bitte dazu die Informationen im Web nachlesen.

Ob die Tasten am Scanner erkannt werden sollten, kann im Terminal mit dem Aufruf von 'scanimage -A' überprüft werden. Die erkannten Tasten ('Sensors') werden am Ende der Ausgabe aufgeführt.

Um nähere Informationen darüber zu erlangen, welche Tasten 'scanbd' erkennt, kann zunächst im Terminal ein Aufruf mit dem Befehl

export SANE_CONFIG_DIR=/etc/scanbd/sane.d/
scanbd -f -d7

erfolgen. Dazu muss der SANE-Daemon ausgeschaltet sein (mit /etc/init.d/sane stop und es darf keine weitere scanbd Instanz laufen wenn der Dienst vorher gestartet wurde), sonst erkennt scanbd keine Scanner. Mit dem Befehl läuft scanbd im Vordergrund im höchsten 'debugging'-Level, im Terminal erscheinen zunächst die Angaben zum Gerät sowie Ergebnisse die Standard-Filter-Abfragen, die in der scandb.conf vorgesehen sind.

Die vorstehenden Angaben sind dem Ubuntu Wicki entnommen, wo auch weiteres erklärt wird.

Die Filter in der scanbd.conf müssen den Tasten entsprechend zugeordnet werden.

SCANBUTTOND

'scanbuttond' ist ein Optionales Paket und muss extra installiert werden

'scanbuttond' benutzt seine eigenen backends. Die unterstützten Scanner sind im Anschluss gelistet.

SANE_START_SCANBUTTOND

Soll der scanbuttond daemon gestartet werden?

Gültige Werte: yes, no

Standardeinstellung: SANE_START_SCANBUTTOND='no'

SANE_SCANBUTTOND_BUTTON_N

Anzahl der buttons am Scanner

Gültige Werte: Zahl

Standardeinstellung: SANE_SCANBUTTOND_BUTTON_N='3'

SANE_SCANBUTTOND_BUTTON_x_EXEC

Pfad und Name des Scripts, welches für diesen Button verwendet werden soll

Standardeinstellung: SANE_SCANBUTTOND_BUTTON_x_EXEC='/etc/scanbuttond/button1.sh'

Supported scanners by Scanbuttond

Supported by the epson backend (via libusb):
* Epson Expression 1600 (expected to work)
* Epson Expression 1680 (expected to work)
* Epson Perfection 610 (expected to work)
* Epson Perfection 636U (expected to work)
* Epson Perfection 640 (expected to work)
* Epson Perfection 1200U (expected to work)
* Epson Perfection 1240 (working, tested)
* Epson Perfection 1640 (expected to work)
* Epson Perfection 1650 (working, tested)
* Epson Perfection 1660 (working, tested)
* Epson Perfection 2400 (working, tested)
* Epson Perfection 2450 (expected to work)
* Epson Perfection 3200 (expected to work)
* Epson Stylus CX3200 (working, tested)
* Epson Stylus Scan 2500 (working, tested)

Supported by the fujitsu backend (via libusb):
* Fujitsu ScanSnap S1500
* Fujitsu fi-5110EOX
* Fujitsu fi-5220C
* Fujitsu fi-6130
* Fujitsu fi-6130Z

Supported by the genesys backend (via libusb):
* Canon CanoScan LiDE 60
* Canon CanoScan LiDE 35
* Xerox Travel Scanner 100

Supported by the gt68xx backend (via libusb):
* Genius Colorpage Vivid4 (working, experimental)

Supported by the hp3500 backend (via libusb):
* HP ScanJet 3500C (expected to work)
* HP ScanJet 3530C (expected to work)
* HP ScanJet 3570C (expected to work)

Supported by the hp3900 backend (via libusb):
* HP ScanJet 3800 (working, tested)
* HP ScanJet 3970 (working, tested)
* HP ScanJet 4070 (working, tested)
* HP ScanJet 4370 (working, tested)
* HP ScanJet G2710 (working, tested)
* HP ScanJet G3010 (working, tested)
* HP ScanJet G3110 (working, tested)
* Umax Astra 4900/4950 (expected to work)
* BenQ 5550T

Supported by the hp5590 backend (via libusb):
* HP ScanJet 4500
* HP Scanjet 4570 (expected to work)
* HP Scanjet 5550 (expected to work)
* HP Scanjet 5550c
* HP Scanjet 5590 (expected to work)
* HP Scanjet 7650 (expected to work)

Supported by the mustek backend (via libusb):
* Mustek BearPaw 2448TA (experimental)

Supported by the niash backend (via libusb):
* Agfa Snapscan Touch (expected to work)
* HP Scanjet 3300c (expected to work)
* HP Scanjet 3400c (expected to work)
* HP Scanjet 4300c (expected to work)

Supported by the plustek backend (via libusb):
* Canon CanoScan N1220U (expected to work)
* Canon CanoScan D660U (expected to work)
* Canon CanoScan N650U (expected to work)
* Canon CanoScan LiDE 20 (experimental)
* Canon CanoScan LiDE 25 (experimental)
* Canon CanoScan LiDE 30 (experimental)
* Epson Perfection 1250
* Epson Perfection 1260 (working, tested)
* Hewlett-Packard ScanJet 2200c (experimental)
* Genius (KYE) ColorPage-HR6 V2 (experimental)

Supported by the plustek_umax backend (via libusb):
* UMAX Astra 3400/3450 (experimental)

Supported by the snapscan backend (via libusb):
* Epson Perfection 2480 (expected to work)
* Epson Perfection 2580 (expected to work)
* Epson Perfection 1670 (working, tested)
* Epson Perfection 3490 (working, tested)
* Epson Perfection 3590 (working, tested)
* Epson Perfection 1270 (working, tested)
* Fujitsu ScanSnap S1500

Supported by the gt68xx backend (via libusb):
* Genius Colorpage Vivid4 (working, experimental)
* Mustek Bearpaw 1200CS (working, experimental) (needs ßcanimage -nto load firmware)

Supported by the gt68xx_plustek backend (via libusb):
* Plustek OpticSlim 2400 (expected to work)
* Plustek OpticSlim 2400+ (working, tested)

Note: the mustek, niash, plustek, plustek_umax, gt68xx and snapscan backends were implemented using information gathered by ßniffingthe communication between the Windows driver and the scanner, because there is no technical documentation available for these devices! This means that there may be some weird issues (e.g. button press events reported twice).

=======================================================================

Weitere Infos und Fehlerbehebung

Wenn der Scanner zwar gefunden wird aber nicht funktioniert, einfach auf der Konsole folgende Befehle ausführen:

saneeis # sane-find-scanner
saneeis # export SANE_DEBUG_DLL=12
saneeis # export SANE_DEBUG_[backend]=12
saneeis # scanimage -L

Dies aktiviert die Debugausgaben von sane und kann helfen den Fehler einzugrenzen.
Bitte anstatt [backend] den Namen des verwendeten Backends angeben.

Probleme mit dem Scan image Menüpunkt

Es kann sein das das Scannen fehlschlaegt, da scanimage immer meldet das der Scanner beschäftigt sei oder ähnliches.

In diesem Fall kann es helfen, wenn man das Modul 'ehci_hcd' entlädt bzw. neulädt. D.h. auf der Konsole:
saneeis # modprobe -r ehci_hcd
bzw.
saneeis # modprobe -r ehci_hcd
saneeis # modprobe ehci_hcd

Das Scanfrontend lässt sich auf der Konsole dann auch einfachheitshalber aufrufen mit dem Befehl:

/var/install/bin/sane_ScanImage

Weiterführende Informationen und Tipps zur Fehlerbehebung
http://www.sane-project.org/sane-frontends.html
http://www.sane-project.org/docs.html
http://tldp.org/HOWTO/Scanner-HOWTO/index.html

infos zu scandb
https://wiki.ubuntuusers.de/scanbd/
https://wiki.archlinux.org/index.php/Scanner_Button_Daemon
https://bbs.archlinux.de/viewtopic.php?id=20954