USB Scanner

stofftier

Active Member
Hallo allerseits,

ich versuche gerade meinen Canon Lide 50 zum laufen zu kriegen...ohne Erfolg. Ich habe hier im Forum gesucht aber meistens werden die usb-Scanner unter uscanner0 erkannt und dafür gibts auch gute Beschreibungen aber meiner wird unter ugen0 erkannt.
sane-find-scanner gibt mir:
Code:
found USB scanner (vendor=0x04a9 [Canon], product=0x2213 [CanoScan], chip=GL841) at libusb:/dev/usb2:/dev/ugen0

scanimage -L:
Code:
No scanners were identified.

Ich hab keine Ahnung wie ich den Scanner zum laufen kriegen kann bzw. wo ich was nachtragen muß. Da ich neu mit der ganzen FreeBSD Materie bin möchte ich noch nicht an den Kernel.

Außerdem hab ich auch noch einen usb-Drucker (noch nicht installiert). Gibt es da später konflikte, weil dieser auch über ugen0 erkannt wird? :confused:

gruß,
stofftier
 
ugen ist der Wald-und Wiesentreiber, der für jedes USB geladen wird, wenn kein besserer Treiber vorhanden ist;
ich fürchte, das ist schlecht; solange das Ding nicht als usanner auftaucht, glaube ich dass du kein Glück mit einer Userland-Applikation haben wirst.
 
Haste es mal als root probiert?

Meines Wissens nach muss im FreeBSD-Kernel bei 6.1 nichts weiter angepasst sein, sollte mit GENERIC funktionieren. Mein LIDE 30 läuft jedenfalls einwandfrei. Entscheidend für den Scaner ist eigentlich auch sane (bzw. xsane) und das sagt, dass der Unterstützt wird. Sollte also an sich gehen:

http://www.sane-project.org/sane-backends.html
 
Zuletzt bearbeitet:
Hallo,

danke für die links...werd da mal durchsstapfen.

Haste es mal als root probiert?
ja ich bin root...ich hab keinen user angelegt.

das in ugen0 alles reingeknallt wird, was er nicht zu ordnen kann dachte ich mir schon. nur versteht ich nicht das er mit dem generic kernel sowohl den usb scanner als auch den drucker als ugen0 erkennt...

ich hab freeBSD 6.1.

gruß,
stofftier
 
Hallo nochmal,

also die links helfen mir nicht wirklich weiter...oder ich bin zu bekloppt :mad: habe beide vor posten dieses threads druchgelesen/probiert. wie gesagt direkt an den kernel wollte ich eigentlich nicht.

wenn ich per dmesg den uscanner ausgeben will dann ist dieser gar nicht da! also dachte ich mir ich schreibs in die /boot/loader.conf das er den uscanner laden soll. danach bekam ich per dmesg folgendes:
Code:
module_register: module uhub/uscanner already exists!
Module uhub/uscanner failed to register: 17

was heißt das jetzt? ich werd hier langsam noch bekloppt :ugly:

wenn ich dran denke das ich mit dem drucker das selbe problem habe... :zitter:
ist denn da bei der freebsd installation was schief gelaufen oder habe ich was vergessen? ich lese überall das der uscanner und ulpt haben sollte nur bei mir iss da niente...

gruß,
stofftier, welches zugegebenermaßen verzweifelt ist
 
Aaaalso.....nun noch einmal ein wenig ausführlicher!

stofftier schrieb:
also die links helfen mir nicht wirklich weiter...

Doch tun sie, du musst nur genauer lesen und die Anweisungen exakter befolgen.

stofftier schrieb:
wie gesagt direkt an den kernel wollte ich eigentlich nicht.

Musst du auch nicht!

stofftier schrieb:
wenn ich per dmesg den uscanner ausgeben will dann ist dieser gar nicht da! also dachte ich mir ich schreibs in die /boot/loader.conf das er den uscanner laden soll. danach bekam ich per dmesg folgendes:
Code:
module_register: module uhub/uscanner already exists!
Module uhub/uscanner failed to register: 17

was heißt das jetzt? ich werd hier langsam noch bekloppt :ugly:

Ähm...welchen Teil von "already exists" haste denn nicht verstanden? uscanner ist fest im Standardkernel implementiert. Wenn man versucht das Modul per Hand zu laden meckert er, dass es schon da ist. Logisch oder? ;)

Im Hanbuch (1. Link) steht exakt folgendes:

Im GENERIC-Kernel sind schon alle, für einen USB-Scanner notwendigen, Treiber enthalten. Wenn Sie einen angepassten Kernel benutzen,....

Das mit dem angepassten Kernel willst du ja gerade nicht und hast du auch nicht!

Weiterhin steht im Handbuch (immer noch 1. Link):

Wenn Sie den Kernel nicht neu bauen wollen und einen angepassten Kernel verwenden, können Sie den Treiber uscanner(4) direkt mit dem Kommando kldload(8) laden:...

Auch hier gilt, nur wenn du einen angepassten Kernel hast, was bei dir nicht der Fall ist. Also ist der ganze Krams mit kldload etc. für dich nie ein Thema gewesen. Damit kann es nicht klappen! Also vergiss den 1. Link!

Kommen wir zum 2. Link. Den kenne ich noch sehr gut aus der Zeit als mein Canon LIDE 20 noch nicht direkt unterstützt wurde.

Werfen wir doch als erstes mal einen Blick in die Harwareunterstützung von uscanner, was du eigentlich gleich zu Beginn der Probleme hättest tun sollen:

http://www.freebsd.org/cgi/man.cgi?query=uscanner&sektion=4&manpath=FreeBSD+6.1-RELEASE

Und siehe da: Es wird der Canon LIDE 20 und der Canon LIDE 30 von uscanner direkt unterstützt. Aber weit und breit kein Canon LIDE 50 zu sehen! Ergo: Dein Scanner wird nicht unterstützt. Da kannst du noch so viele module laden oder hunderte von Kerneln bauen, er wird nicht unterstützt.

Und was können wir jetzt tun? Hmm...aufgeben? Nein! Wir haben ja noch den 2. Link ;)

Und zu welchem Thread führt uns der Link? Er führt uns zu dem Thread mit dem wundervollen Titel "USB Scanner den FreeBSD nicht erkennt einrichten. " Hey! Das ist doch genau das, was hier gerade passiert ist ;) Zudem ist die Anleitung für den LIDE 20, der ja mit dem LIDE 50 eng "verwandt", was die Chance erhöht, dass es funktioniert. Der Nachteil: Du musst einmal den Kernel neu bauen, aber du musst ihn nicht modifizieren. Du musst nur die Anleitung Schritt für Schritt befolgen.

Da ich gerade Zeit habe, hier die Kurzanleitung für dich auf FreeBSD 6.1 angepasst:

Code:
1. Falls du die Kernelsourcen nciht installiert haben solltest, ist jetzt der richtige Zeitpunkt dafür: sysinstall --> configure --> Distributions --> src

2. Folgende Zeile in die Datei /sys/dev/usb/usbdevs im CANON-Abschnitt einfügen:

product CANON Lide50 0x220d CANOSCAN Lide50

Wobei ich nicht weiß, ob 0x220d korrekt ist. Vielleicht hilft da das Handbuch oder so.

3. Dann folgende Zeile zu /sys/dev/usb/uscanner.c hinzufügen:

{{ USB_VENDOR_CANON, USB_PRODUCT_CANON_Lide50 }, 0 },

4. Und folgendes auführen:

root# cd /sys/dev/usb/
root# make -f Makefile.usbdevs
root# cd ../../modules/usb
root# make

5. Kernel neu bauen mit

root# make buildkernel
root# make installkernel

Also nix irgendwo verändern. Dein Kernel bleibt also ein Standardkernel.

6. Neustarten

7. Test
# dmesg |grep scanner uscanner0: Canon CanoScan, rev 1.10/1.00, addr 3

8. SANE einrichten

stofftier schrieb:
wenn ich dran denke das ich mit dem drucker das selbe problem habe... :zitter:
ist denn da bei der freebsd installation was schief gelaufen oder habe ich was vergessen? ich lese überall das der uscanner und ulpt haben sollte nur bei mir iss da niente...

Nun, dein Drucker wird wohl auch nicht unterstützt...wirf doch mal einen Blick in die Hardware Notes....
 
Zuletzt bearbeitet:
hallo styx,

danke für die anleitung...ich dachte immer das wäre schon kernel-neubau. na wie auch immer wollte es gerade probieren, aber (und jetzt bitte nicht lachen, das ist erst mein erster versuch mit freebsd) ich scheitere schon am ersten punkt
2. Folgende Zeile in die Datei /sys/dev/usb/usbdevs im CANON-Abschnitt einfügen:
äh...diesen pfad gibt es bei mir nicht...oder muß ich den erst so in der form anlegen? ich hab mal nach den dateien usbdevs und uscanner.c gesucht mit dem ergebnis das er die nirgends findet.

stell ich mich jetzt wieder zu doof an? :confused:

gruß,
stofftier
 
Auf der anderen Seite zwingt dich aber auch niemand dazu ums Verrecken uscanner(4) zu benuzen.
Ich kann hier (FreeBSD 6-STABLE vom 2. Juni) mit einem CanoScan LiDE 30 z.B. entweder per uscanner(4) oder ueber das entsprechende ugen device zusammen mit devel/libusb scannen:

Beispiel:
Code:
# scanimage -d plustek:libusb:/dev/usb1:/dev/ugen0 --format tiff -v -x 215 -y 297 --resolution 150 > test0.tiff
# file test0.tiff
test0.tiff: TIFF image data, big-endian
# kldload uscanner
# scanimage -d plustek:/dev/uscanner0 --format tiff -v -x 215 -y 297 --resolution 150 > test1.tiff
# file test1.tiff
test1.tiff: TIFF image data, big-endian
Anmerkung dazu: Ich habe uscanner(4) nicht im meinem Kernel, aber bei dir, stofftier, spielt das erstmal keine Rolle, weil der CanoScan LiDE 60 im Moment nicht von uscanner(4) unterstuetzt wird. Allerdings erkennt ein "scanimage -L" als root hier auch den Scanner jeweils entsprechend.

Mit einem CanoScan LiDE 60, der ja ganz offensichtlich auch nicht von uscanner(4) out-of-the-box untersuetzt wird, und der "devel/libusb + ugen - Methode" konnte ich auf sonst unveraenderter Hardware auch angemessen scannen.

Ich habe dieses Wochenende die Moeglichkeit das Ganze mit dem CanoScan LiDE 60 nochmal zu testen, falls Bedarf besteht. Der CanoScan LiDE 60 scheint dem CanoScan LiDE 50 naemlich aenhnlicher zu sein als der CanoScan LiDE 30 bzw. 20 (wenn wir als Mass fuer die Aehnlichkeit die SANE-Backend-Zugeheorigkeit annehmen, statt nur den Namen).


teuk
 
Zuletzt bearbeitet:
So, ich habe das eben mal mit dem CanoScanLiDE 60 ausprobiert:
Der Scanner wird wie oben schon beschreiben als ugen device erkannt und per devel/libusb kann ich hier ohne weiter Probleme scannen.

Hier mal grob ein Ueberblick:
Code:
# dmesg | grep ugen
ugen0: Canon CanoScan, rev 2.00/3.06, addr 2
# scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
# usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb3:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 addr 2: high speed, power 500 mA, config 1, CanoScan(0x221c), Canon(0x04a9), rev 3.06
 port 4 powered
 port 5 powered
 port 6 powered
# scanimage -d genesys:libusb:/dev/usb3:/dev/ugen0 --format tiff -v -x 215 -y 297 --resolution 150 > test.tiff
# file test.tiff
test.tiff: TIFF image data, big-endian
Der Scanner ist also ueber /dev/ugen0 erreichbar. scanimage selbst findet den Scanner anscheinend nicht, wie bei dir auch. Mit "usbdevs -v" erfaehrst du nun wo der Scanner per USB genau angeschlossen ist (wenn scanimage den Scanner findet, leifert es aber auch einen Pfad wie "genesys:libusb:/dev/usb3:/dev/ugen0" zurueck). Nachdem man das nun alles weiss und das zugehoerige SANE-Backend kennt, kann man also auch ganz ohne uscanner(4) scannen.
Entsprechend geparsed kann man das sicherlich noch huebsch in einem Script verpacken, so dass man sich die manuelle Scannersuche per dmesg und usbdevs sparen kann.

Ich hoffe, dass dir das evtl. ein bisschen weiter hilft.


teuk

EDIT:
Ich habe grade gesehen, dass dir dein "sane-find-scanner" Aufruf ja schon den libusb-Pfad ausgibt (libusb:/dev/usb2:/dev/ugen0). In dem Fall probier es doch ganz einfach mal mit:
Code:
# scanimage -d genesys:libusb:/dev/usb2:/dev/ugen0 [WAS AUCH IMMER DU HIER BRAUCHST]
 
Zuletzt bearbeitet:
stofftier schrieb:
äh...diesen pfad gibt es bei mir nicht...oder muß ich den erst so in der form anlegen? ich hab mal nach den dateien usbdevs und uscanner.c gesucht mit dem ergebnis das er die nirgends findet.

Hast du denn Punkt 1 befolgt und die Kernelsourcen installiert? Falls nicht, kann Punkt 2 auch nicht funktionieren. Du musst die Liste schon Punkt für Punkt abarbeiten....
 
hallo,

danke für die tips nochmal....
also so wie teuk es beschrieben hat geht es wohl, sprich via console zu scannen...aber da ich den scanner/sane gerne in verbindung mit gimp benutzen wollte, hab ich jetzt versucht nach styx anleitung vor zu gehen...sorry nochmal also du hattest recht , hatte den 1. punkt glatt vergessen (sollte wohl nicht mitten in der nacht versuchen sowas zu machen :ugly: ). nachdem ich die sourcen installiert hatte, hatte ich auch das verzeichnis. allerdings bin ich jetzt nur bis punkt 4 gekommen:

Code:
FBSD# cd /sys/dev/usb/
FBSD# make -f Makefile.usbdevs
make: cannot open Makefile.usbdevs.

er hat die file gar nicht. watt nu?

gruß,
stofftier
 
Ja stimmt, das ist in 6.1 offensichtlich geändert worden. Ich vermute mal (weiß es aber nicht), dass das Modul ohnehin beim Kernelbau neu kompiliert wird und somit dieser Schritt Nr. 4 überflüssig sein dürfte. Mach also einfach bei 5. weiter und teste, ob das geht.

Randbemerkung:
Mit usbdevs -v kannst du die Richtige Vendorzahl (0x220d wird ja vermutlich nicht stimmen) heraus bekommen.

Viel Erfolg! :)
 
hallo styx,

also die Vendorzahl hatte ich schon rausbekommen.

Nächstes Problem bei Schritt 5:
Code:
FBSD# make buildkernel
make: don't know how to make buildkernel. Stop

Gibbet da ne Alternative?

gruß,
stofftier
 
hallo allerseits,

ja das mit dem verzeichnis konnte ich nicht riechen...

also ich hab alles so gemacht und nun hab ich den scanner endlich auf uscanner0.

jetzt hab ich via der Anleitung aus styx 2. link Folgendes gemacht um sane einzurichten:
Code:
5. SANE einrichten

Dazu muß man folgende Zeilen in /usr/local/etc/sane.d/plustek.conf einfügen:
[usb] 0x04A9 0x220D
device /dev/uscanner0

Außerdem in /usr/local/etc/sane.d/dll.conf plustek "unkommentieren". Am einfachsten sollte es der einzigste Eintrag, der unkommentiert ist, sein.

6. Test
root# scanimage -L device
plustek:/dev/uscanner0 is a Canon N670U/N676U/LiDE20 USB flatbed scanner

ergebnis:
Code:
FBSD# scanimage -L device
device `genesys:/dev/uscanner0' is a Canon LiDE 35/40/50 flatbed scanner

und siehe da er hat mir sogar meinen scanner angezeigt, was ja vorher nicht ging.

so weit so gut...nun dacht ich mir kann ich ja mal das ganze mit GIMP ausprobieren, denn das plugin von xsane hatte ich ja schon installiert...wenn ich dort allerdings und "File -> Aquire -> Xsane device dialog..." was scannen will dann sagt er mir wieder das er keine devices gefunden hat... ;'( selbiges auch wenn ich einfach xsane im terminal starte...
sollte er den scanner jetzt nicht kennen? oder muß man das für xsane auch noch irgendwo (?) einrichten?

gruß,
stofftier
 
Nachtrag:

ich krieg die Krise...hab ebend nochmal scanimage -L probiert...scheinbar zeigt er den Scanner nach dem Zufallsprinzip an...man isser da mal nicht...woran liegt das?

stofftier
 
Ganz einfach, wenn du wuesstest, dass der CanoScanLiDE 50 keinen Plustek Chip sondern einen GenesysLogic Chip verwendet (steht ja alles in der SANE-Dokumentation), dann haettest du in der /usr/local/etc/sane.d/dll.conf den plustek-Eintrag in Ruhe gelassen und statt dessen den genesys-Eintrag "einkommentiert".
Den Eintrag in der /usr/local/etc/sane.d/plustek.conf kannst du dir dann auch sparen. Die fuer das genesys-Backend zustaendige /usr/local/etc/sane.d/genesys.conf sollte den CanoScanLiDE 50 schon kennen, so dass sie unveraendert bleiben kann.
Das ist mir aber auch erst eben aufgefallen und mit der geaenderten /usr/local/etc/sane.d/dll.conf findet auch ein "scanimage -L" den CanoScan LiDE 60 hier.

Habe eben mal das xscanimage plug-in fuer gimp ausprobiert und es scheint soweit zu gehen. ...Wieder ganz ohne uscanner(4), aber das bringt dir ja jetzt auch Nichts mehr *g*.


teuk
 
Zuletzt bearbeitet:
das "mal anzeigen mal nicht" hab ich auch mit der USB-Kamera, sieht man deutlich auch im KDE-Kontrollcenter bzw. Infozentrum unter USB-geräte, zuckelt mal kurz und ist wieder weg, ..hilft meistens ein Neustart des Systems und Gerät dabei eingschaltet lassen bzw. nach dem booten wirds dann auch erkannt....
 
hallo teuk,

also ganz so dämlich bin ich dann auch nicht...;) mir ist schon klar das ich das an meine situation anpassen muß und diese nichts mit plustek zu tun hat...:rolleyes:
muß man vielleicht noch irgendwas bei sane konfigurieren? außer in diese dateien zu gucken?

in meiner dll.conf sind ne ganze menge einträge ohne kommentarzeichen unteranderem auch canon und genesys...das problem bleibt also bestehen...

in der genesys.conf steht mein scanner auch drin. das problem ist, das der scanner via scanimage -L nur erkannt wird wenn ich die genesys.conf-datei geöffnet und wieder geschlossen hab. warum auch immer...

und xsane bzw das gimp-plug-in erkennen den verfluchten scanner nicht...ich kriegt immer wieder die meldung das sane/xsane kein gerät gefunden hat...

ich versteh die welt nicht mehr...;'(

gruß,
stofftier
 
Nachtrag:


also ich habe gerade nochmal in die genesys.conf geguckt und danach sowohl gimp als auch xsane via terminal probiert...
gimp weigert sich immer noch irgendein gerät zu erkennen...und xsane via terminal erkennt wohl was, aber:

Code:
Failed to open device 'genesys:/dev/uscanner0': Operation not supported.

teuk: nur so am rande...via ugen0 konnte ich ja mit scanimage -d scannen (auch wenn er das gerät über scanimage -L nicht erkannt hat), aber es ist mir nicht gelungen das in xsane oder gimp weiterzugeben.

und danke nochmal an alle für die hilfe :)

gruß,
stofftier
 
Sorry, dann habe ich dein Posting missinterpretiert. Hatte sich nur stark nach Plustek angehoert, weils das eben noch ueberall steht *g*.
Aber mehr zu deinem Problem faellt mir im Moment leider auch nicht ein. Ich hatte allerding mit manchen SANE-Versionen und meinem Scanner hier Probleme, die dann mit der naechsten SANE-Version wieder verschwunden waren. Habe hier die SANE-Backends inder Version sane-backends-1.0.17_3 und die Frontends als sane-frontends-1.0.14_2 installiert.

Hast du es eigentlich schon mal mit devel/libusb und ugen statt mit uscanner probiert?

EDIT(13:47): Da warst du mit deiner Antwort schenller *g*. Wie sieht es aus, wenn du xscanimage als plug-in benutzt? Das mault aber auch, wenn es den Scanner nicht selber findet, also wird es das Problem wahrscheinlich auch nicht loesen.

teuk
 
Zurück
Oben