Mittwoch, 25. Juli 2007

Scannen mit NSLU2 und SANE, SaneTwain

EDIT 05.01.2008: Das Streifenproblem ist behoben!

Nachdem mein NSLU2-Setup ja vernünftig läuft und die Spielereien ein erstes Ende gefunden haben, musste eine neue Herausforderung her.

Neben meinem Drucker, der ja per CUPS angesteuert wird, steht auch noch ein Canon Lide30-Scanner, der bisher an einem der PCs seinen Dienst verrichtet. Warum aber nicht den Scanner per SANE im Netzwerk verfügbar machen?

Sehr gute Idee!
Also erstmal schlau machen, was es denn so gibt und was man so machen kann.

Da der Zugriff ja weiterhin über Windows-Rechner auf den Scanner erfolgen soll, muss TWAIN weiterhin unterstützt werden. Die vielversprechendste Lösung schien mir SaneTwain.

Also rauf auf die Slug als root und dann:

apt-get update
apt-get install udev libsane sane-utils libsane-extras
(udev wird vermutlich schon installiert sein, zumindest war's das bei mir)

//NSLU2~# apt-get install udev libsane sane-utils libsane-extras
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
udev ist schon die neueste Version.
Die folgenden zusätzlichen Pakete werden installiert: libexif12 libgphoto2-2 libgphoto2-port0 libhal1 libieee1284-3 libltdl3
Vorgeschlagene Pakete: gphoto2 gtkam hotplug hpoj hplip unpaper
Die folgenden NEUEN Pakete werden installiert: libexif12 libgphoto2-2 libgphoto2-port0 libhal1 libieee1284-3 libltdl3 libsane libsane-extras sane-utils0 aktualisiert, 9 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 5313kB Archive geholt werden.Nach dem Auspacken werden 15,0MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]?
Hole:1 http://ftp.de.debian.org/ etch/main libhal1 0.5.8.1-9 [271kB]
Hole:2 http://security.debian.org/ etch/updates/main libexif12 0.6.13-5etch1 [136kB]
Hole:3 http://ftp.de.debian.org/ etch/main libgphoto2-port0 2.2.1-16 [127kB]
Hole:4 http://ftp.de.debian.org/ etch/main libgphoto2-2 2.2.1-16 [1111kB]
Hole:5 http://ftp.de.debian.org/ etch/main libieee1284-3 0.2.10-4 [27,2kB]
Hole:6 http://ftp.de.debian.org/ etch/main libltdl3 1.5.22-4 [170kB]
Hole:7 http://ftp.de.debian.org/ etch/main libsane 1.0.18-5 [3099kB]
Hole:8 http://ftp.de.debian.org/ etch/main libsane-extras 1.0.18.5 [249kB]
Hole:9 http://ftp.de.debian.org/ etch/main sane-utils 1.0.18-5 [123kB]
Es wurden 5313kB in 5s geholt (891kB/s)
Wähle vormals abgewähltes Paket libexif12.
(Lese Datenbank ... 22906 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke libexif12 (aus .../libexif12_0.6.13-5etch1_arm.deb) ...
Wähle vormals abgewähltes Paket libhal1.
Entpacke libhal1 (aus .../libhal1_0.5.8.1-9_arm.deb) ...
Wähle vormals abgewähltes Paket libgphoto2-port0.
Entpacke libgphoto2-port0 (aus .../libgphoto2-port0_2.2.1-16_arm.deb) ...
Wähle vormals abgewähltes Paket libgphoto2-2.
Entpacke libgphoto2-2 (aus .../libgphoto2-2_2.2.1-16_arm.deb) ...
Wähle vormals abgewähltes Paket libieee1284-3.
Entpacke libieee1284-3 (aus .../libieee1284-3_0.2.10-4_arm.deb) ...
Wähle vormals abgewähltes Paket libltdl3.
Entpacke libltdl3 (aus .../libltdl3_1.5.22-4_arm.deb) ...
Wähle vormals abgewähltes Paket libsane.
Entpacke libsane (aus .../libsane_1.0.18-5_arm.deb) ...
Wähle vormals abgewähltes Paket libsane-extras.
Entpacke libsane-extras (aus .../libsane-extras_1.0.18.5_arm.deb) ...
Wähle vormals abgewähltes Paket sane-utils.
Entpacke sane-utils (aus .../sane-utils_1.0.18-5_arm.deb) ...
Richte libexif12 ein (0.6.13-5etch1) ...
Richte libhal1 ein (0.5.8.1-9) ...
Richte libgphoto2-port0 ein (2.2.1-16) ...
Richte libgphoto2-2 ein (2.2.1-16) ...
Richte libieee1284-3 ein (0.2.10-4) ...
Richte libltdl3 ein (1.5.22-4) ...
Richte libsane ein (1.0.18-5) ...
Adding scanner group...udev active, devices will be created in /dev/.static/dev/udev active, devices will be created in /dev/.static/dev/
Richte libsane-extras ein (1.0.18.5) ...
Richte sane-utils ein (1.0.18-5) ...
Adding saned group and user...
Sehr schön, nun mal den Scanner angeschlossen. Ein tail-f auf /var/log/kern.log lässt mich in Echtzeit zuschauen, was der Kernel denn so erkennt. Urgs, was ist denn das?

Jul 20 12:15:25 NSLU2 kernel: usb 2-1: new full speed USB device using ohci_hcd and address 2
Jul 20 12:15:25 NSLU2 kernel: usb 2-1: device descriptor read/64, error -110
Jul 20 12:15:26 NSLU2 kernel: usb 2-1: device descriptor read/64, error -110
Jul 20 12:15:26 NSLU2 kernel: usb 2-1: new full speed USB device using ohci_hcd and address 3
Jul 20 12:15:26 NSLU2 kernel: usb 2-1: device descriptor read/64, error -110
Jul 20 12:15:26 NSLU2 kernel: usb 2-1: device descriptor read/64, error -110
Jul 20 12:15:26 NSLU2 kernel: usb 2-1: new full speed USB device using ohci_hcd and address 4
Jul 20 12:15:27 NSLU2 kernel: usb 2-1: device not accepting address 4, error -110
Jul 20 12:15:27 NSLU2 kernel: usb 2-1: new full speed USB device using ohci_hcd and address 5
Jul 20 12:15:27 NSLU2 kernel: usb 2-1: device not accepting address 5, error -110
Der Scanner wird nicht erkannt, geht ja schon gut los. Google meint, 110 ist ein schnöder Timeout. Der Lide 30 hat kein eigenes Netzteil, er zieht seinen gesamten Saft aus dem USB-Anschluss. Eventuell hält er sich da nicht ganz an die spezifizierten 500mA? Vielleicht hat es auch mit meinem merkwürdigen Stromanschluss zu tun? Der testweise (zusätzliche) Anschluss des Originalnetzteils brachte keine Änderung.

Also, mal einen aktiven USB2.0-Hub besorgt und siehe da, es geht:

//NSLU2~# sane-find-scanner
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.
# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
# Also you need support for SCSI Generic (sg) in your operating system.
# If using Linux, try "modprobe sg".
found USB scanner (vendor=0x04a9 [Canon], product=0x220e [CanoScan], chip=LM9832/3) at libusb:003:008
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
# Not checking for parallel port scanners.
# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.
//NSLU2~# scanimage -L
device `plustek:libusb:003:008' is a Canon N1240U/LiDE30 USB flatbed scanner
Ja, scannen kann ich jetzt. Über o.g. SaneTwain sogar im Netzwerk. Allerdings funktionieren nur s/w und Graustufenscans. Bei Farbe ist das Ergebnis nicht zu gebrauchen, hier mal ein Beispiel:

Ich kann euch versichern, das sieht im Original anders (bunter und ohne Streifen ;-)) aus.

Eventuell liegt es daran, dass der verwendetete plustek-Backend nicht ganz die aktuelle Version ist. Einspielen einer neueren Version aus der Debian testing kommt nicht in Frage - zuviel Abhängigkeiten, habe keine Lust, das System zu zerschießen.

Vielleicht kompiliere ich die Quellen, mal sehen, ob das geht. Ansonsten hilft nur warten, bis die testing mal zu stable wird :-0

Das Ergebnis gibt's hier!

blog comments powered by Disqus

Design von Dicas Blogger, angepasst durch Mario Ruprecht