Scanner installieren

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
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 ;)

Unterstützte Scanner

[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.

[Bearbeiten] Links

'Persönliche Werkzeuge