Scanner installieren
Aus Gentoo Linux Wiki
| Installationsmethoden • LiveCDs • Kernel & Hardware • Laptops & Notebooks • Portage • System • Netzwerke & Services • X • Software • Anderes • alphabetischer HOWTO Index |
Inhaltsverzeichnis |
[Bearbeiten] Vorwort
Bevor man anfängt lohnt sich ein Blick in folgende Liste um überhaupt zu wissen, ob der Scanner unterstützt wird. Auch ist es eine gute Kaufentscheidungshilfe ;)
[Bearbeiten] Kernel konfigurieren
cd /usr/src/linux make menuconfig
Nach dem Setzen der Optionen für den jeweiligen Scanner noch den Kernel kompilieren und neustarten.
[Bearbeiten] USB Scanner
für USB Scanner sollte folgendes gesetzt werden:
Device Drivers ---> USB support ---> <M> Support for Host-side USB [*] USB device filesystem <M> EHCI HCD (USB 2.0) support [*] Full speed ISO transactions (EXPERIMENTAL) [ ] Root Hub Transaction Translators (EXPERIMENTAL) < > OHCI HCD support <M> UHCI HCD (most Intel and VIA) support
Je nach Chipsatz sollte OHCI oder UHCI gesetzt sein und wenn man USB 2.0 hat auch noch EHCI. USB device filesystem ist ganz wichtig, sonst ist kein Zugriff möglich.
[Bearbeiten] SCSI Scanner
Device Drivers ---> SCSI device support ---> <*> SCSI device support [*] legacy /proc/scsi/ support SCSI low-level drivers --->
Unter SCSI low-level drivers sollte man die Karte wählen, an der der Scanner angeschlossen ist.
[Bearbeiten] Parallel-Scanner
Solche Scanner-Typen werden meist nicht unterstützt. Um ihn evtl. trotzdem zum Laufen zu bekommen, könnte folgender Link helfen. Für Primax-Scanner wäre noch dieser Link hilfreich. Und für Umax-Scanner: umax_pp
Auf alle Fälle muss im Kernel erst einmal der Parallelport freigegeben werden. Der Eintrag für IEEE1284 ist für EPP/ECP ebenfalls wichtig.
| Linux Kernel Configuration: |
<M> Parallel port support ---> <M> PC-style hardware <M> Multi-IO cards (parallel and serial) [*] Use FIFO/DMA if available (EXPERIMENTAL) [*] SuperIO chipset support (EXPERIMENTAL) [*] IEEE 1284 transfer modes |
Ob der Parallelport richtig erkannt wurde und der benötigte Modus unterstützt wird, kann man mit diesem Script erkennen:ppdiag. Gegebenenfalls muß im Bios noch der Parallelportmodus umgestellt werden.
Ein "ls -la /dev/lp0" müsste dann folgendes Ergebnis liefern. Nutzer in der Gruppe lp können jetzt auf den Scanner am Port zugreifen.
crw-rw---- 1 root lp 6, 0 Apr 19 2007 /dev/lp0
Das Paket libieee1284 ist für den Zugriff notwendig, es wird im Normalfall als Abhängigkeit bei der Installation der sane-backends mit installiert (das Paket sane-backends ist wiederum von xsane abhängig). Sollte das nicht der Fall sein, wird es einfach nachinstalliert:
emerge -av libieee1284
Gibt es Zugriffsprobleme auf den Scanner (als root funktioniert es, als Nutzer nicht), dann hilft nachfolgende Vorgehensweise: Zuerst muss ppdev im Linux-Kernel aktiviert werden. Es erzeugt ein Device (/dev/parport0), durch das der einfache Benutzer auf den Parallelport zugreifen kann. ppdev kann als Modul oder statisch in den Kernel kompiliert werden. Das Modul hat den Vorteil, dass nach dem Laden des Moduls automatisch Benutzerrechte am Device vergeben werden können:
Im Kernel den Eintrag
| Linux Kernel Configuration: |
Device Drivers ---> Character devices ---> <M> Support for user-space parallel port device drivers |
setzen. In der Datei /etc/modules.autoload.d/kernel-2.6 den Eintrag
# parport device for scanner access by user ppdev
setzen. Nach dem Laden des Moduls sollte /dev/parport0 der Gruppe "lp" gehören, alle User der Gruppe "lp" sollten den Scanner also nutzen können. Ansonsten im Verzeichnis /etc/modules.d die Datei ppdev erzeugen. Dort sollte
post-install ppdev chgrp scanner /dev/parport0; chmod 0660 /dev/parport0
stehen. Anschließend den Befehl update-modules laufen lassen, um die Änderungen in der modules.conf Datei nachzutragen. Nach dem Laden des Moduls mit modprobe ppdev sollte das Device die Rechte
crw-rw---- 1 root scanner 99, 0 7. Feb 15:13 /dev/parport0
besitzen, so daß alle Benutzer der Gruppe scanner darauf zugreifen können.
User dem Scanner zugänglich machen:
id -a username usermod -G users,[sonstige gruppen aus id -a],scanner username id -a username
Der User sollte jetzt alle vorherigen Gruppen plus der Scannergruppe zeigen. Natürlich muß für username der korrekte Benutzer eingetragen werden. Falls der Scanner als Gruppe noch nicht vorhanden ist, kann mit
groupadd scanner
nachgeholfen werden.
Es kann vorkommen, dass der Befehl chgrp von oben nicht funktioniert. In diesem Fall gibt:
#ls -l /dev/parport0
nicht:
crw-rw---- 1 root scanner 99, 0 7. Feb 15:13 /dev/parport0
aus, sondern:
crw-rw---- 1 root root 99, 0 7. Feb 15:13 /dev/parport0
was dazu führt, dass das Device nur als root genutzt werden kann.
Abhilfe kann man dadurch schaffen, dass man das Device manuell in die richtige Gruppe schiebt:
#chgrp scanner /dev/parport0
Danach sollte der Scanner auch als normaler Nutzer erreichbar sein.
[Bearbeiten] Handheld Scanner
Hier empfiehlt sich ein Blick auf diesen Link
[Bearbeiten] Benötigte Tools
Für den Zugriff auf den Scanner benötigt man folgendes:
XSANE ein sehr benutzerfreundliches grafisches Frontend. Erwähnenswert ist jedoch auch das Paket "sane-frontends", das bei gesetztem USE-Flag ("gimp") das Scannen aus GIMP heraus ermöglicht. Installation mit: emerge -av xsane bzw. emerge -av sane-frontends
Die benötigten Treiber (Backends) installiert man mit emerge -av sane-backends
Bei USB-Scannern ist darauf zu achten, dass das USE-Flag "usb" gesetzt ist. Teilweise benötigt man noch zusätzliche Firmware vom Hersteller (vom Scanner-Modell abhängig). Auf der SANE-Homepage ist aufgelistet, für welches Modell man was benötigt (siehe Link im Vorwort >> Unterstützte Scanner)
Als User sollte man nun den Scanner nutzen können. Dazu reicht das Kommando xsane.
[Bearbeiten] USB Scanner Setup mit Hotplug
Achtung: die Geräte laufen jetzt über udev und nicht mehr hotplug! Dieser Abschnitt muss noch angepasst werden. siehe: http://www.gentooforum.de/artikel/9998/2/geloest-xsane-nur-als-root.html
Es kann vorkommen, dass der Scanner von xsane als User nicht erkannt wird, während er als root funktioniert. Dies liegt bestimmt daran, dass für das Gerät nicht die richtigen Zugriffsrechte gesetzt wurden. Im Gegensatz zum früheren Zugriff per /dev/scanner bekommt beim Zugriff per USB (mittels libusb) jeder Scanner eine eigene Gerätedatei unter /proc/bus/usb/.
Hotplug bringt bereits eine große Liste der bekannten Scanner mit und setzt deren Zugriffsrechte automatisch richtig. Vermutlich ist der gesuchte Scanner dort einfach nicht eingetragen. Das bei Hotplug mitgelieferte Script libusbscanner setzt die Geräte-Rechte auf root:scanner mit Modus 660. Das bedeutet, der Benutzer, der Zugriff auf den Scanner haben soll, muss in der Gruppe scanner sein.
Als erstes sollte man als root folgendes aufrufen, um die Geräte-Daten des Scanners zu erhalten: sane-find-scanner -q
Das hat bei mir folgende Ausgabe:
found USB scanner (vendor=0x04a9 [Canon], product=0x220d [CanoScan], chip=LM9832/3) at libusb:004:003
Wichtig hierbei sind die vendor- und product-Angaben.
In der Datei /etc/hotplug/usb.usermap kann man eigene Einträge definieren. Als Vorlage für einen Scanner kann man eine beliebige Zeile aus der Datei /etc/hotplug/usb/libsane.usermap benutzen. Dort muss man lediglich die vendor- und product-Angaben anpassen. Im obigen Fall entsteht als folgenden Zeile:
libusbscanner 0x0003 0x04a9 0x220d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
(Diese Zeile ist in aktuellen Versionen schon fertig enthalten und soll nur als Beispiel dienen.)
Hotplug startet dann beim Einstecken dieses Geräts das Script libusbscanner, das die Rechte wie oben genannt setzt. Es ist keinerlei manuelles Eingreifen mehr notwendig, die Rechte werden in dem Moment automatisch gesetzt, wenn der Scanner eingesteckt wird.
[Bearbeiten] Zusätzliche Hinweise, Problemlösungen
Bei einigen Scannern (z.B. Primax) kann es vorkommen, dass sich der Scanner zum Schluss des Scannvorgangs nicht mehr bewegt/keine Geräusche mehr macht, aber der Vorgang nicht abgeschlossen wird. Die Ursache hierfür kann ein falsch eingestellter Scan-Bereich (Bottom-right y) sein. Verringern Sie diesen zunächst auf die Hälfte und testen Sie erneut. Funktioniert das, kann der Bereich erhöht werden. Bei mir funktionierte 29.5 cm noch einwandfrei.
Der aktuellere Primax-Treiber liegt hier. Die Version 0.93 lieferte bei mir keine libsane-primax Bibliotheken. Vor dem Installieren (AMD64 - x86_64-System) muss im Makefile.am an die CFLAGS-Zeile ein -fPIC angehangen werden, sonst bricht der Vorgang mit einem Fehler ab.
Die primax_scan-0.93beta3 versucht die "asm/io.h" einzubinden. Der aktuelle Ort liegt aber in "sys/io.h". Dies muss in den *.c-Dateien geändert werden, welche die Datei nicht finden.
Für die Nutzung unter gimp wird ein Link benötigt (wählen Sie bitte die für sie passende gimp-Version): ln -s /usr/bin/xsane ~/.gimp-x.x/plug-ins/
In "man xsane" wird beschrieben, dass durch "xsane -v" geprüft werden kann, ob die Gimp-Unterstützung installiert ist. Dies gilt aber für xsane und nicht für die sane-frontends. Stellen Sie daher sicher, dass Sie die sane-frontends nach Änderung des use-Flags neu mergen.
Beim Scannen übers Netz muss bei langsamen Verbindungen die Auflösung zurückgenommen werden. Bei mir funktionierte bei RGB 100 dpi, 150 dpi waren zu viel.
Als normaler Benutzer den scanner benutzen:
# ls -l /dev/bus/usb/00*/
-rw-rw-r-- 1 root scanner 43 Sep 10 2006 001
# gpasswd -a <user> scanner
<user> wird der Gruppe scanner hinzugefügt.
