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)
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).
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:
sane-backends kompilieren:
beim Crosskompilieren der Doku bricht das make ab, da das mipsel-binary sane-desc auf i386 nicht ausführbar ist:
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:
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:
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.
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 */
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
Code:
/bin/sh: line 1: ./sane-desc: cannot execute binary file
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
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 &
So ich hoff ich hab jetzt nix vergessen, wenn doch könnt ihr ja fragen.
Anhänge
Zuletzt bearbeitet: