Scanner an Fritzbox läuft!

clawiter

Neuer User
Mitglied seit
27 Okt 2005
Beiträge
58
Punkte für Reaktionen
0
Punkte
6
Ich habe den sane auf der Fritzbox 7170 zum Laufen bekommen und kann so mit meinem Epson DX3850 Multifunktionsdrucker übers Netz drucken und scannen. Das ganze funktioniert auch unter Windows, siehe http://sanetwain.ozuzo.net. Auch andere von sane unterstützten Scanner sollten laufen.

Beiliegendes vorkompiliertes Archiv ist nur zum Testen. Es wird nach /tmp/local installiert, damit man nicht gleich ein neues Image flashen muss. Achtung nicht über die Größe erschrecken, das kommt daher, dass alle Scannertreiber enthalten sind, die nicht benötigten können natürlich gelöscht werden.

Zur Zeit starte ich alles noch von Hand, das ganze lässt sich natürlich leicht auch beim Systemstart erledigen, wenn alles im Flash ist.

Kompilier- und Installationsanleitung:
(ich habe zum Übersetzen debian sarge mit gcc 3.3.5 benutzt)

Code:
make toolchain
make kernel-precompiled

Kernelmodul scanner.o zusätzlich compilieren
(ds-0.2.7/source/ref-ohio-8mb-04.06/kernel/linux/drivers/usb/scanner.c)

Bei meinem Scanner musste ich noch folgende Patches machen, da der Scanner noch nicht mit seiner Product-ID gelistet ist und außerdem der Scanner schon durch den Druckertreiber der Fritzbox belegt ist. Wie ihr sehen könnt habe ich einfach die Abfrage rausgeschmissen, evtl. gibt das Kuddelmuddel, wenn zur selben Zeit gescannt und gedruckt wird, aber anders gehts halt gar nicht (in der Praxis treten bei mir keine Probleme auf).

Code:
~/ds-0.2.7/source/ref-ohio-8mb-04.06/kernel/linux/drivers/usb$ diff scanner.c.org scanner.c
875,876c875,876
<               info("probe_scanner: Only one device interface is supported.");
<               return NULL;
---
>               info("probe_scanner: Only one device interface is supported, proceeding anyway..");
>               //return NULL;
~/ds-0.2.7/source/ref-ohio-8mb-04.06/kernel/linux/drivers/usb$ diff scanner.h.org scanner.h
183a184
>         { USB_DEVICE(0x04b8, 0x0818) }, /* Epson CX3800 DX3850 */
source für sane-backends besorgen (http://www.sane-project.org/source.html)
ich habe das cvs genommen, es geht aber auch der stable, je nachdem wie neu der scanner ist:
Code:
  cvs -d:pserver:[email protected]:/cvsroot/sane login
  cvs -z3 -d:pserver:[email protected]:/cvsroot/sane co sane-backends

sane-backends kompilieren:
Code:
~/sane-backends$ PATH=~/ds-0.2.7/toolchain/target/bin:$PATH
~/sane-backends$ ./configure --host=mipsel-linux-uclibc --prefix=/tmp/local
~/sane-backends$ make
beim Crosskompilieren der Doku bricht das make ab, da das mipsel-binary sane-desc auf i386 nicht ausführbar ist:
Code:
/bin/sh: line 1: ./sane-desc: cannot execute binary file
das macht aber nix, die Doku muss sowieso nicht auf die fritzbox, und der Rest ist schon fertig..

make install installiert das Ganze auf dem Intel-Linuxrechner in /tmp/local. Von dort nun das ganze auf die Fritzbox schieben. Von den Scannertreibern in lib braucht man natürlich nur die wirklich benötigten zu behalten, in meinem Fall libsane-epson* und libsane-net*.

Dann müssen noch folgende files auf die fritzbox (siehe dazu weiter unten):
scanner.o
libgcc_s.so.1
/dev/usb/scanner0
saned_wrapper

die libgcc_s.so.1 aus ds-0.2.7~ds/source/crosstool-0.42/build/mipsel-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/build-gcc/gcc/ muss auf der fritzbox an eine Stelle,wo sie gefunden wird, z.B. nach /mod/lib. Alternativ tools mit -static-libgcc kompilieren.

Das Kernelmodul scanner.o gehört eigentlich nach /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/drivers/usb zum Testen einfach irgendwo hinkopieren und mit insmod scanner.o laden. vorher noch das Scannerdevice mit mknod /dev/usb/scanner0 c 180 48 anlegen.

scanimage -L sollte jetzt ein Ergebnis liefern:
Code:
/var/tmp/local/bin # ./scanimage -L
device `epson:/dev/usb/scanner0' is a Epson CX3800 flatbed scanner
Wenn das klappt, den saned konfigurieren, siehe
http://suse-linux-faq.koehntopp.de/q/q-scanner-netzwerk.html

da die fritzbox keinen inetd hat, habe ich den saned durch einen wrapper in einer Endlosschleife gestartet:
Code:
/var/tmp/local/sbin # more saned_wrapper
#!/bin/sh
(while true; do ./saned -d; done) >/dev/null 2>/dev/null &
wenn alles geklappt hat, funktioniert jetzt das Scannen auch übers Netz, unter Linux z.B. mit xsane.

So ich hoff ich hab jetzt nix vergessen, wenn doch könnt ihr ja fragen.
 

Anhänge

  • scanner.tgz
    4.7 MB · Aufrufe: 323
Zuletzt bearbeitet:
Hier meine entgültige Version, die bei mir problemlos läuft. Ich hab noch folgende Änderungen gemacht:

In Flash integriert (mit --prefix / compiliert statt --prefix /tmp/local)
Als addon gepackt
saned.conf: alle Rechner haben Zugriff auf scanner
alle Treiber außer epson rausgeworfen
automatische hotplug-Erkennung (/etc/usbdevice.tab)

Das Package funktioniert für den Epson DX3850, für andere Scanner müssen die Konfigurationsdateien angepasst werden und die entsprechenden Treiber kompiliert werden (evtl funktionieren die aus meinem ersten Beitrag).
Den saned starte ich über die debug.cfg, diese muss entsprechend angepasst werden:

Code:
/var/flash # cat debug.cfg 
#!/bin/sh
(while true; do /sbin/saned -d; sleep 5; done) >/dev/null 2>/dev/null &

btw. Firmware-Version ist die 29.04.06ds-0.2.7.
Die libgcc_s.so.1 ist im Package enthalten, die braucht ihr natürlich nur wenn ihr diese nicht sowieso includet habt.

Gruß, Norbert
 

Anhänge

  • sane-0.1.tar.bz2
    291.7 KB · Aufrufe: 199
Zuletzt bearbeitet:
Anleitung

Hi, da ich es gerade mal geschafft habe den ds-mod auf den die Fritzbox zu packen, habe ich nun ehrlich gesagt, fast keinen blassen Schimmer wie ich meinen kaum unterstützten (--> siehe liste bei "sane") Scanner (CanoScan 3200f) an der Fritzbox betreiben soll.
Selbst wenn ich ihn an der Fritzbox zum laufen bekomme, wie steuere ich ihn über meinen (noch) Windows-Pc an.
Über die normale Scanner software, die es dazu gab wohl kaum, oder?

Wär schön, wenn einer von euch Pro's eine Anleitung (noch etwas detaillierter als die von "clawiter") schreiben könnte, wie man insbesondere den Scanner vom PC aus anspricht. Wenn ich das alles Verstanden habe und ohne Probleme einen Scanner an die Box ranbekomme, so würde ich mich auch bereit erklären die Anleitung (ähnlich wie "DS-MOD mit Cygwin für Newbies") zu schreiben.

Danke im Voraus
H.i.M
 
@H.i.M Das sanetwain unter Windows zum Laufen zu bekommen ist trivial, installieren, Fritzbox als Server eintragen und läuft. Wichtig ist, dass der Linux-server mal läuft. Dein Scanner ist nur im experimental-CVS-Zweig unterstützt. Bei Problemfällen wie deinem ist es evtl. einfacher, erstmal den Server auf einem PC mit Linux auszuprobieren, weil du hier wesentlich bessere Diagnosemöglichkeiten hast. Wenn der Scanner dann läuft, kannst du dann die so herausgefundene Konfiguration ohne weiteres auf die Fritzbox übertragen.
Falls du trotzdem auf der Fritzbox selber weiterprobieren willst, würde ich erstmal mit der scanner.tgz aus meinem ersten Beitrag anfangen. Ich habe dir den Treiber für cs3200f mal übersetzt. scanner.tgz und libsane-cs3200f.tgz auf der Fritzbox auspacken und die Konfigurationsfiles anpassen:

/tmp/local/etc/sane.d/cs3200f.conf enthält nur die Zeile "usb 0x04a9 0x2216"
/tmp/local/etc/sane.d/dll.conf enthält nur die Zeile "cs3200f"
/tmp/local/etc/sane.d/saned.conf enthält nur die Zeile "+"
/tmp/local/etc/sane.d/net.conf unnötig, löschen

Laden des Moduls mit
insmod scanner.o vendor=0x04a9 product=0x2216

Wenn scanimage -L funktioniert hast du das schlimmste geschafft
mit scanimage >/tmp/blaslfasl.img kannst du dann auch lokal ein Bild einscannen.
ansonsten wie in meinem ersten Beitrag weitermachen.

Vom Netz erst probieren wenns lokal funktioniert. bei Problemen => fragen ;-)

Die automatische USB-Erkennung muss natürlich auch angepasst werden, aber probiers erst
mal alles von Hand aus der /tmp/local zu starten.

Gruß, Norbert

Edit: Hab grad noch gesehen, dass da noch ein File reingehört, das aus der Scanner-Firmware von canon extrahiert werden muss - das hab ich jetzt einfach mal dazugepackt - siehe http://cvs.alioth.debian.org/cgi-bi...f.txt?rev=1.1&cvsroot=sane&only_with_tag=HEAD
 

Anhänge

  • libsane-cs3200f.tgz
    102.6 KB · Aufrufe: 34
Zuletzt bearbeitet:
Hallo clawiter,

wie lange dauert denn 'make toolchain'? Mit mehreren Linux-Live-CDs dauert das bei mir entweder Stunden (irgendwann von mir abgebrochen) oder bricht irgendwann mit Fehlern ab. Die Live-CDs setzen natürlich größtenteils schon auf gcc4.1.
 
Chatty schrieb:
Hallo clawiter,

wie lange dauert denn 'make toolchain'? Mit mehreren Linux-Live-CDs dauert das bei mir entweder Stunden (irgendwann von mir abgebrochen) oder bricht irgendwann mit Fehlern ab. Die Live-CDs setzen natürlich größtenteils schon auf gcc4.1.

bin zwar nicht clawiter, aber nen build der toolchain dauert auf meinem (nich live cd) linux rechner, Centino dothan 2ghz, ca 1,5-2h...
wenn du umbedingt windoofs nutzten willst, nimm doch cygwin....
 
@heini66: Also bei mir ist jetzt Knoppix 5.0.0 (von CD gebootet) auf nem 1,5 GHz Yonah auf einer dedizierten XFS-Partition einer 2,5"-Platte nach ich würde schätzen 8 oder sogar 10 Stunden erfolgreich durch. Und da waren einige Warnings zu sehen.
Cygwin habe ich probiert. "make menuconfig & make" funktionierten noch, aber "make toolchain" brach auch irgendwann mit Fehlern ab. Hab allerdings auch nen Snapshot-Build von cygwin genommen.

Werde mich jetzt mal an den Scanner machen. Meine Idee ist, dass ich später mehrere Bookmarks nutzen kann, á la: Scanne A4 grau 300dpi und direkt mit einem Speicherndialog konfrontiert werde. Auf der Box sollte das so laufen, dass die Ergebnisse vom Scanner direkt zum Browser gestreamt werden (denn sie bietet ja nicht genügend Platz für z.B. A4 farbe 600dpi).
 
HI Leute,
ich will auch Scannen aber ich habe keine Ahnung wie man das hier configuiren muss http://sanetwain.ozuzo.net << die seite funktioniert bei mir nicht

will mir vllt einer so eine Konfiguration für mich machen ich habe einen Brother MFC-9750...wäre euch SEHR Dankbar...:D was müßt ihr noch wissen?
 
Wieder da

Hallo allerseits,
Bin mal wieder ein paar Tage im Lande.

@clawriter, ich werde versuchen bei einem Freund an den Linux PC (Ubuntu) zu kommen und da meinen Scanner ausprobieren.
Wenn ich's hinbekomme poste ich hier sofort.
Dank dir erst einmal für deine großartige Hilfe ich komme gerne noch auf dich zurück ;)

Falls ich das dann alles hinter mir habe (hoffe das ich Linux-Noob das hinbekomme) werde ich versuchen ein HowTo zu schreiben.
Verbesserungsvorschläge und Erweiterungen dessen sind auf jedenfall erwünscht.
Aber bis dahin kommt noch ein "kleiner" Berg an Arbeit auf mich und euch zu.

Schöne(n) Ferien oder Urlaub,
H.i.M
 
@Sterk: leider wird der Brother MFC-9750 (noch?) nicht von sane unterstützt.
@all:Eine Liste der unterstützten scanner steht steht auf der sane-Homepage
www.sane-project.org
@H.i.M: In Ubuntu sind nur die stabilen Treiber als Package verfügbar d.h. du musst das ubuntu source-Paket sane-backends nehmen und dann den cs3200f-Patch vom experimental-tag vom CVS holen (hab ich dir attached) und in den source einbauen wie das geht ist dem Patch beschrieben. Kannst ja auch mal mein fritzbox-binary von meinem letzten Post probieren, vielleicht funktionierts ja auf Anhieb.

Die sanetwain.osuzu.net ist zur Zeit wirklich down. Ich hab das zip-File noch auf der Platte, leider ohne Doku.

@Chatty warum nimmst du nicht eine kleine 5-10 GB-Partition mit einem Linux-Entwicklungssystem statt dieser LiveCD/Knoppix Krücke. Ich meine das kann man immer mal brauchen und wenn z.B. eine neue Fritzbox-Firmware daherkommt musst du nicht wieder von vorn anfangen, sondern hast schon alles installiert. Das mit dem Cygwin hab ich auch noch nie verstanden. Klar kriegt man das auch mit ner Emulation irgendwie zum Laufen, aber für so komplexe Sachen wie ner toolchain kommt mirs irgendwie einfacher vor, ein eigenständiges Linux zu nehmen. Ich will jetzt keine religiöse Diskussion lostreten, aber das wollte ich immer schon mal loswerden.

Mein debian brauchte übrigens ca. 5 Stunden für die toolchain auf einem 300MHzNotebook.

EDIT: mittlerweile ist der Sanetwain-Server http://sanetwain.ozuzo.net wieder erreichbar. Das von mir hochgeladene File hatte einen CRC-Fehler (ein Bit war gekippt). ich habe es neu hochgeladen, ihr könnt es aber jetzt auch wieder direkt vom Originalserver runterladen.
 

Anhänge

  • cs3200f.tgz
    32.1 KB · Aufrufe: 27
  • sanetwain126.zip
    1.4 MB · Aufrufe: 38
Zuletzt bearbeitet:
clawiter schrieb:
Kernelmodul scanner.o zusätzlich compilieren
(ds-0.2.7/source/ref-ohio-8mb-04.06/kernel/linux/drivers/usb/scanner.c)

Wie genau kompiliere ich die scanner.c?

Bisher habe ich "make toolchain" "make kernel-precompiled" und "make precompiled" aufgerufen, ich habe dabei keine Fehler beobachten können.
Den $PATH habe ich auf target gesetzt.
Testweise habe ich die hello.c mittels mipsel-linux-gcc kompiliert, diese funktioniert auch auf der FB7170.

ein "mipsel-linux-gcc -DMODULE -D__KERNEL__ -O6 -c /pfadZu/usb/scanner.c -o scanner.o" gibt nur Fehler aus.
 
Zuletzt bearbeitet:
Es gibt zwei Möglichkeiten, eine schnelle und eine saubere.
Die saubere ist, die kernel/Config.in zu modifizieren und das scanner-Modul für make config
anwählbar zu machen:
Code:
diff Config.in Config.in.orig 
50,54d49
< config DS_MODULE_scanner
<       bool "scanner.o"
<       select DS_MODULE_usbcore
<       default n
<
Die schnelle Möglichkeit besteht darin, das Modul mit den selben Parametern zu kompilieren, mit denen auch die anderen Module (z.B. printer.o) kompiliert werden, wenn du make kernel-precompiled machst.
 
ich krieg hier gar nichts hin:-(

hab nen epson 3650

und avm 7170 und win xp
 
tja... habs installiert aber windows startet es nicht

fehler im 16bit cygwin.pif
 
hab nun beim install alle datein gewählt....ups das dauert ja stunden
 
Wenn du die Toolchain erstellen willst, dann würde ich ein echtes Linux nehmen. Tausendmal schneller und unter Cygwin hats bei mir auch nicht geklappt.
 
hmm hab nur kein linux installiert... reicht das einmalig? oder muss man bei jeder änderung es mit linux machen?

welche distri von linux nehm ich da?
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.