# FAQ Tips > Hier Suchen und Finden, Links, Tutorials >  Scanner unter Linux einrichten

## stefan.becker

*Scanner unter Linux betreiben*

Zum Betrieb von Scannern unter Linux gibt es das Paket *SANE* (*S*canner *A*ccess *N*ow *E*asy).

SANE ist das Grundmodul zum Betrieb jedweder Scanner unter Linux.

Homepage: http://www.sane-project.org/

Im folgenden eine kurze Anleitung zur Installation eines Mustek-Parallelportscanners 1200 CP (Nachbau: Medion LT 9350). 

Vieles dieser Anleitung ist aber modellunabhängig, daher kann ein Teil der Anleitung auch allgemein zum Thema Scanner verwendet werden.

Hinweis zu SANE: SANE ist unterteilt in ein Paket *sane-backends* für die Scanner-Treiber und ein Paket *sane-frontends* für Anwendungen zum Scannen.

*Fertige Pakete nutzen:* Wer eine halbwegs aktuelle Distribution einsetzt, kann die Punkte 1-2 überspringen. Statt Compilieren sollte man mit der Paketverwaltung der Distribution einfach das Paket "sane-backends" installieren.

*Distributionswerkzeuge zum konfigurieren:* Einige Distributionen bieten Werkzeuge zum Einrichten des Scanners. Bei Suse z. B. unter Yast2 / Hardware / Scanner.

Im zweiten Teil des Howtos sind auch ein paar Tipps zu USB-Scannern zu finden.


*1) Download Sourcen*

Der Download der Sourcen erfolgt über die Homepage.

Das Paket "sane-backends" enthält die Scannertreiber und das Kommandozeilenprogramm "scanimage". "sane-frontends" enthält eine einfache Scan-GUI "xscanimage". Hier gibt es jedoch bessere Alternativen, siehe auch unten. Das Paket scheint außerdem nicht mehr gepflegt zu werden.

Nach dem Download das Paket nach /usr/src kopieren und mit "tar zxvf sane*" entpacken.


*2) SANE übersetzen*



```
cd /usr/src/sane-backends-1.xyz
./configure --prefix=/usr --sysconfdir=/etc
make
make install
```

Die Werte für prefix und sysconfdir sind abhängig von der Distribution. Man kann auch ohne starten, dann wird als Default für alles /usr/local verwendet.

Bei Parallelport-Scannern muss zusätzlich der Parameter *enable-parport-directio* beim configure angegeben werden, sonst wird der Scanner später nicht erkannt.



```
./configure --prefix=/usr --sysconfdir=/etc --enable-parport-directio
```

Alternativ kann man auch "libieee1284" und "libieee1284-devel" installieren (siehe rpmseek.com). Wenn dieses Paket installiert ist, kann der Parameter "enable-parport-directio" entfallen.


*3) Konfigurationsdateien anpassen*

*3.1) /etc/sane.d/mustek_pp.conf bzw. /usr/local/etc/sane.d/mustek_pp.conf*

Hier muss der Scanner konfiguriert werden. Bei meinem Scanner habe ich folgende Werte angegeben:



```
scanner LT9350 0x378 cis1200+
  option top_adjust 0
  option bw 127
```

Hinweis auf sane ab 1.0.14: Es gibt eine "Autoprobefunktion", die automatisch die zu verwendende Schnittstelle sucht. Der Eintrag sieht dann so aus:



```
scanner mustek-cis1200 * cis1200
```

Bei anderen Modellen von Mustek sind den Kommentaren der Beispieldatei die Konfiguration zu entnehmen. Bei Mustek-Modellen mit anderen Schnittstellen (USB, SCSI) bzw. Scannern anderer Firmen sind andere Dateien anzupassen.

In einem vom User yasuo gemeldeten Fall bei einem Scanexpress 6000p half folgende Änderung:



```
# scanner 6000P 0x378 ccd300
ersetzen durch:
scanner 6000P parport0 ccd300
```

*3.2) /etc/sane.d/dll.conf bzw. /usr/local/etc/sane.d/dll.conf*

Hier muss der Treiber "mustek_pp" aktiviert werden. Hierzu einfach das vorgestellte Kommentarzeichen "#" löschen, also "#mustek_pp" => "mustek_pp".

Alle anderen Zeile können mit einem Kommentar versehen werden, das bringt bessere Zugriffszeiten, da weniger Scannermodelle beim Start getestet werden müssen.

Dies ist übrigens eine beliebte Fehlerquelle. Bei Installation einer neuen SANE-Version wird häufig in dieser Datei vor dem eigenen Modell wieder ein Kommentarzeichen eingefügt.


*4) Geht mein Scanner ?*

Nun als "root" anmelden und mit "scanimage -L" testen, ob der Scanner geht. Es sollte eine Zeile angezeigt werden wie 

"device `mustek_pp:LT9350' is a Mustek 1200CP flatbed scanner"

Das Login als "root" ist bei Parallelport-Scannern leider erforderlich. Weiter unten werden noch 2 Alternativen genannt.


*5) Scanner GUIS*

*5.1) Sane-Frontends*

Unter obiger Adresse gibt es auch das Paket "sane-frontends". Enthalten ist das für einfache Scan-Arbeiten ausreichende "xsanimage". Enthalten ist auch ein Plugin für Gimp, so dass direkt aus GIMP gescannt werden kann.

*5.2) Kooka*

Seite KDE 3.0x ist kooka (inkl. libkscan) serienmäßig enthalten

*5.3) XSANE*

Sehr leistungsfähige GTK-Anwendung, Download unter 

http://www.xsane.org/

Funktionen (u. a.): Drucken, Preview, Faxen, E-Mail, ...

*5.4) OpenOffice*

In OpenOffice kann über SANE gescannt werden (Menü Einfügen/Bild/Scannen).

*5.5) Gimp*

Gimp selbst kann nicht scannen, die Funktion kann jedoch über ein Plugin z. B. von xsane nachgerüstet werden.

Hierzu muss im Verzeichnis "~/.gimp-x.y/plug-ins" (x.p=Gimp-Version) ein entsprechender Link angelegt werden. Beispiel xsane:



```
cd ~/.gimp-x.y/plug-ins
ln -s /usr/bin/xane-gimp xane-gimp
```

Danach kann über Datei/Holen/xsane direkt eingescannt werden.


*6) OCR*

*6.1) Gocr*

Download unter http://jocr.sourceforge.net/download.html

gocr ist ein Kommandozeilentool. Es kann jedoch über Kooka benutzt werden.

Siehe auch 10.2), Scannen in virtuellen Maschinen.

*6.2) Ocropus*

Neues OCR-System von Google.

http://code.google.com/p/ocropus/


*7) Scannen als USER*

Ohne weitere Konfigurationsarbeiten ist ein Login als "root" erforderlich bei Parallelport-Scannern. Mir sind 2 alternative Lösungen bekannt:

*7.1) SANE.D*

sane.d ist ein Netzwerk-Demon, der es Usern erlaubt, auf Scanner jedweder Art zuzugreifen. Eine Anleitung ist zu finden unter:

http://penguin-breeder.org/sane/saned/

*7.2) SUDO*

sudo ermöglicht das Starten von Anwendungen mit root-Rechten ohne root-Login.

Download als rpm-Paket unter:

http://rpmfind.net/linux/rpm2html/search.php?query=sudo

In der Datei /etc/sudoers müssen die zu startenden Anwendungen eingetragen sein. Beispiel:



```
username  ALL=NOPASSWD:/usr/bin/kooka
```

Für Username ist der Name einzutragen, unter dem man sich anmeldet. Danach kann über "sudo kooka" der Start von Kooka mit root-Rechten ohne erforderliches root-Login stattfinden.


*8) SANE-Pakete erstellen*

Falls Sane als Binärpaket in der Paketverwaltung notiert ist, kann man die Version der Distribution auf folgendem Weg durch die selbst übersetzte Version ersetzen (Bsp. RPM):

- Login als root
- SANE wie oben beschrieben entpacken, übersetzen
- Installierte Version deinstallieren: "rpm -e sane-backends --nodeps"
- Statt "make install" das selbst übersetzte Paket mit "checkinstall" installieren.
- Danach sind alle notwendigen Abhängigkeiten der Pakete wieder hergestellt.

Checkinstall erstellt aus selbst übersetzten Sourcen ein RPM-Paket (auch Debian Pakete!). Es wird statt "make install" ausgeführt. Die Bedienung ist selbsterklärend. Einfach "checkinstall" aufrufen, alles weitere wird abgefragt.

Downloadquellen:

http://rpmfind.net/linux/rpm2html/se...mit=Search+...
http://asic-linux.com.mx/~izto/checkinstall/


*9) Andere Mustek Scanner* 

*9.1) Mustek Paragon 600 II N (Tip von klaus_harrer)*

Standard Sane installieren und in der Datei "/etc/sane_d/mustek.conf" folgenden Eintrag ändern:

Im Abschnitt 600 II N
Gleich die erste Zeile auf
von "#0x2eb" auf "0x3ab" setzen, wichtig ist das ihr # weglasst.

*9.2) Weitere Modelle*

"man sane-mustek_pp" bringt eine Liste unterstützter Modelle.


*10) Scannen im Netzwerk*

Ein interessanter Aspekt ist das Scannen über das Netzwerk.

Hierzu wird am Linux-Server der Scanner angeschlossen und mit Sane eingerichtet.

Dann muss der Sane-Netzwerk-Dienst "saned" eingerichtet werden (siehe 7.1).

Auf den Windows Clients muss jetzt ein Sane-Treiber installiert werden. Zum Beispiel SaneTwain (http://sanetwain.ozuzo.net/), das einen Standard-Scan-Dialog für Windows Anwendungen realisiert. Damit können alle Windows-Anwendungen mit Scanfunktion auf den Scanner, der am Linux-Server hängt, zugreifen.

*10.2) Scannen in virtuellen Maschinen*

Z. B. im Bereich OCR sind die Linux-Alternativen nicht besonders leistungsfähig.

Aber hier gibt es eine einfache Lösung. Der eigene Linux-PC ist sozusagen der Server, an dem der Scanner mit sane/saned eingerichtet wird. Der Windows Client wird durch eine virtuelle Maschine mit Qemu/Windows realisiert. 

Die virtuelle Maschine wird mit Netzwerkzugriff (-user-net -smb ...) gestartet. 

Die Einrichtung ist also genau wie unter 10.1).

Im virtuellen Qemu-PC kann dann ein OCR-Programm installiert werden, bei PC-Zeitungen sind regelmäßig Vollversionen zu finden, außerdem ist zumeist auf der Treiber-CD des Scanners so ein Programm zu finden.

Die Einrichtung wird im Qemu Howto näher beschrieben: http://www.linuxforen.de/forums/showthread.php?t=141201


*11) Scanner-Buttons nutzen*

Das Programm "scanbuttond" ermöglicht die Nutzung der Scanner-Buttons. Also auf Knopfdruck scannen und z. B. direkt drucken, mailen, Bildbearbeitung starten.

Homepage: http://scanbuttond.sourceforge.net/


*12) Alternativen zu Sane (Treiber und Software)*

Falls der Scanner von Sane nicht unterstützt wird, gibt es das kostenpflichtige VueScan als Alternative.

http://hamrick.com/vsm.html

Epson-Treiber: http://www.avasys.jp/lx-bin2/linux_e/scan/DL1.do

HP-Officejet: http://hplipopensource.com

Kodak: http://scantwain.wiki.sourceforge.net/, http://www.pro-linux.de/news/2009/13926.html


*13) Links*

*13.1) Liste unterstützter Modelle:*
Aktuelle Version: http://www.sane-project.org/sane-backends.html
Entwicklungsversion: http://www.sane-project.org/lists/sa...-external.html

*13.2) Weitere Howtos*

http://www.pl-berichte.de/t_hardware/pscanner.html (Parallelport-Scanner)
http://tldp.org/HOWTO/Scanner-HOWTO/index.html


Änderungen:

03.12.03: Anpassung an sane 1.0.13
22.02.04: Links aktualisiert
25.09.04: Links aktualisiert, quiteinsane entfernt
07.08.05: Aktualisiert, Ergänzungen (11, Netzwerk-Scanner), Teil 2 (USB-Scanner)
11.04.06: Scanexpress 6000p (Tipp von yasuo)
30.04.06: Links aktualisiert
05.08.06: Hinweis Paket <=> selbst übersetzen
19.08.06: Aktualisiert
12.01.07: Links aktualisiert
20.03.07: Scanbuttond
24.03.08: Links aktualisiert, VueScan, Ocropus
04.04.09: Links aktualisiert
12.04.09: Links für Scannertreiber der Hersteller (HP, Epson, Kodak usw.)

----------


## stefan.becker

*1) USB-Schnittstelle einrichten*

Zunächst muss die USB-Schnittstelle eingerichtet werden. Dazu müssen Einträge in der Datei /etc/modprobe.conf vorgenommen werden. Beispiel für Fedora Core:



```
alias usb-controller ohci-hcd
alias usb-controller1 ehci-hcd
```

Abhängig vom Motherboard kann statt "ohci" auch "uhci" nötig sein.


*2) Libusb*

Für den Zugriff auf USB-Scanner benötigt Sane die "Libusb", die bei jeder modernen Distribution enthalten sein sollte.

Homepage: http://libusb.sourceforge.net/
RPM-Pakete z. B. unter rpmseek.com, rpmfind.net.

Wichtig: Damit Sane übersetzt werden kann, muss natürlich auch "libusb-devel" installiert werden.


*3) Scannen als User*

Hier sind zunächst die gleichen Methoden wie beim Parallelportscanner einsetzbar: sudo und saned (siehe Kapitel 8 im ersten Teil des Howtos).

*3.1) USBFS bei älten Distributionen*

Eine weitere Möglichkeit ist das Mounten des USB-Filesystems mit Userrechten:



```
mount -t usbfs usbfs /proc/bus/usb -o devmode=0666
```

Alternativ kann das auch in /etc/fstab so eingerichtet werden (=> "man fstab").

*3.2) UDEV bei neueren Distributionen*

Bsp. für Ubuntu: http://wiki.ubuntuusers.de/Scanner#Rechte-Probleme

Aus Thread: http://www.linuxforen.de/forums/showthread.php?t=259120

----------


## stefan.becker

*Kopieren per Kommandozeile*

Sane bietet im Backend Paket das Programm "scanimage", mit dem man an der Kommandozeile scannen kann. Das folgende Script scannt eine DIN-A4 Seite und gibt sie per "lpr-Befehl" direkt auf den Drucker aus.



```
# Scannen eines Dokumentes, ausdrucken
# Scannen
scanimage -p -v --resolution=300 --mode=Gray -x 210 -y 295 --format pnm > /tmp/outfile.pnm
# PNM in Postscript wandeln
pnmtops -equalpixels -dpi 300 -width 8.4 -height 11.6 /tmp/outfile.pnm > /tmp/kopie.ps
# Drucken
lpr -P $1 /tmp/kopie.ps
# Temporäre Dateien löschen
rm /tmp/outfile.pnm 
rm /tmp/kopie.ps
```

Das Script als "/usr/local/bin/copyscan.sh" speichern, mit "chmod +x /usr/local/bin/copyscan.sh" ausführbar machen.

Am einfachsten legt man sich einen Starter auf den Desktop. Als Parameter muss nan den gewünschten Druckernamen angeben.

Also z. B. "/usr/local/bin/copyscan.sh usblp0" als Kommandozeile.

Falls man mehrere Scandevices hat, kann man bei "scanimage" mit dem Parameter "-d" das Device einstellen. "scanimage -L" zeigt die möglichen Devices.

Ursprüngliche Idee: http://www.linuxforen.de/forums/showthread.php?t=217313


*Mehrere Seiten in ein PDF File scannen*

Mit dem Script "scan2pdf" können mehrere Scans in ein PDF Dokument gescannt werden.

Homepage: http://wiki.debianforum.de/Scan2Pdf

Im Anhang findet sich eine angepasste Version mit folgenden Änderungen:

1) Start: wenn Datei vorhanden, löschen statt Abbruch
2) Parameter "-x -y" bei Scanimage für A4 Scan
3) xpdf starten, wenn fertig

----------

