Hey, suse folk, Trying to set up an old Microtek Scanmaker X12USL without much success. I had it working on my old RH system, but it died last week. RIP. First thing: I tried Yast2 > Hardware > Scanner. I find the driver in the long list and select it, and click "Next". The words "Setting up microtek2..." hang in the middle of the screen forever, twenty minutes if you let it. However I can click the "Next" button, so I do. Then next screen shows two columns, "Driver Name" & "Associated Scanners". "microtek2" is under the driver name, but there's nothing in the "Scanners" column. The "Finish" button is working and there's really nothing more I can do at that screen (unless I want to back up and do the same thing again), so I "Finish". At the CLI I do "sane-find-scanner" and get back: found USB scanner (vendor=0x05da, product=0x20b0) at libusb:002:002 Correspondingly, "lsusb" shows: Bus 002 Device 002: ID 05da:20b0 Microtek International, Inc. Among the "lsmod" output is: scsi_mod 125384 4 sg,st,sd_mod,sr_mod usbcore 108760 3 ehci_hcd,uhci_hcd I read a doc somewhere which implied that I need usbdevfs (whatever that is) and I don't believe I have it. I'm running Suse Pro 9.3. So the questions... Do I need usbdevfs to get this scanner working? If so, which rpm package is it in? Thanks much. -- "This world ain't big enough for the both of us," said the big noema to the little noema.
ken wrote:
I'm running Suse Pro 9.3.
So the questions...
Do I need usbdevfs to get this scanner working?
You definitely do need a working usb subsystem.
If so, which rpm package is it in?
You already have it. usbdevfs was replaced by usbfs when the kernel changed from 2.4 to 2.6. You can verify you have this by typing mount in a console, it will be listed. -- Joe Morris Registered Linux user 231871
On Thu, 26 Jan 2006 06:36:05 +0800 "Joe Morris (NTM)" <Joe_Morris@ntm.org> wrote:
ken wrote:
I'm running Suse Pro 9.3.
So the questions...
Do I need usbdevfs to get this scanner working?
You definitely do need a working usb subsystem.
If so, which rpm package is it in?
You already have it. usbdevfs was replaced by usbfs when the kernel changed from 2.4 to 2.6. You can verify you have this by typing mount in a console, it will be listed.
Joe, Thanks for the reply. They should hire you to redo the docs. Yeah, I've run mount several times and have seen it... because I was looking hoping for usbdevfs. Okay, so I don't have to chase that ghost anymore because I do have usbfs mounted. But now there's a couple other questions. Why can't yast associate a scanner with the "backend" (aka driver)? Probably the same reason "sane-find-scanner" works: # sane-find-scanner ... found USB scanner (vendor=0x05da, product=0x20b0) at libusb:002:002 ... but "scanimage -L" fails. # 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).... What's the next step? thanks again, ken -- "This world ain't big enough for the both of us," said the big noema to the little noema.
ken wrote:
Probably the same reason "sane-find-scanner" works:
# sane-find-scanner ... found USB scanner (vendor=0x05da, product=0x20b0) at libusb:002:002 ...
Which just basically tells you lsusb found it on the usb bus, but doesn't mean it will work or has a driver.
but "scanimage -L" fails.
# 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)....
What's the next step? Edit /etc/sane.d/dll.conf and comment out microtek2, then retry. According to the sane website, it is supported good (flatbed mode only?). BTW, it does not seem to be listed in usb.ids, you might want to send an email to the maintainer (check /usr/share/usb.ids for email address.) to get its id (20b0) added.
-- Joe Morris Registered Linux user 231871
On Thu, 26 Jan 2006 18:41:16 +0800 "Joe Morris (NTM)" <Joe_Morris@ntm.org> wrote:
ken wrote:
Probably the same reason "sane-find-scanner" works:
# sane-find-scanner ... found USB scanner (vendor=0x05da, product=0x20b0) at libusb:002:002 ...
Which just basically tells you lsusb found it on the usb bus, but doesn't mean it will work or has a driver.
Okay. So we could say that we have connectivity from the scanner to the USB bus, yes?
but "scanimage -L" fails.
# 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)....
What's the next step? Edit /etc/sane.d/dll.conf and comment out microtek2, then retry.
I checked and ascertained that a dozen attempts ago. I've even rebooted a couple times since then. In the interest of expediency, I should also mention that /etc/sane.d/microtek2.conf contains: option dump 1 #option strip-height 14.0 option no-backtrack-option on option lightlid-35 on option toggle-lamp on option lineart-autoadjust on option backend-calibration on #option colorbalance-adjust on scsi * * Scanner These are listed in the suse doc referred to earlier as the default/recommended settings.
According to the sane website, it is supported good (flatbed mode only?). BTW, it does not seem to be listed in usb.ids, you might want to send an email to the maintainer (check /usr/share/usb.ids for email address.) to get its id (20b0) added.
20b0 is listed in /usr/share/usb.ids, but under "04a5 Acer Peripherals Inc. (now BenQ Corp.)" as: 20b0 S2W 3300U/4300U A quick look at this file tells me that the IDs don't have to be unique, so could I just add 20b0 to it along with the name of the scanner? Something like: 20b0 ScanMaker X12USL ??? That's what I just did anyway. Doing this didn't change the output of "scanimage -L" though; it's still not finding a scanner. So do I now need to rerun some hotplug script? If so, which? I also took your advice, am CCing the maintainer of usb.ids and the Suse package maintainers as well. Thanks again for the good tips. Suse HR should be noting all this. :) Regards, ken -- "This world ain't big enough for the both of us," said the big noema to the little noema.
Hello, On Jan 25 20:41 ken wrote (shortened):
"scanimage -L" fails. ... What's the next step?
See http://portal.suse.com/sdb/en/2004/10/jsmeix_scanner-setup-92.html "Trouble-Shooting (Debugging)" Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
On Thu, 26 Jan 2006 14:30:08 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
Hello,
On Jan 25 20:41 ken wrote (shortened):
"scanimage -L" fails. ... What's the next step?
See http://portal.suse.com/sdb/en/2004/10/jsmeix_scanner-setup-92.html "Trouble-Shooting (Debugging)"
Kind Regards Johannes Meixner
That's exactly the document-- that and the *93.html-- are the ones I've been working from. I've tried to run some of the troubleshooting, but I'm probably not divining what the documents are saying. Here's a couple attempts: # scanimage -d microtek2 -T scanimage: open of device microtek2 failed: Invalid argument # scanimage -d microtek2:libusb:002:002 -T scanimage: open of device microtek2:libusb:002:002 failed: Invalid argument Thanks for any tips you might provide. mit freundliche Gruesse, ken -- "This world ain't big enough for the both of us," said the big noema to the little noema.
Hello, On Jan 26 09:55 ken wrote (shortened):
On Thu, 26 Jan 2006 14:30:08 +0100 (CET) Johannes Meixner
See http://portal.suse.com/sdb/en/2004/10/jsmeix_scanner-setup-92.html "Trouble-Shooting (Debugging)"
That's exactly the document-- that and the *93.html-- are the ones I've been working from. I've tried to run some of the troubleshooting, but I'm probably not divining what the documents are saying. Here's a couple attempts:
# scanimage -d microtek2 -T scanimage: open of device microtek2 failed: Invalid argument
# scanimage -d microtek2:libusb:002:002 -T scanimage: open of device microtek2:libusb:002:002 failed: Invalid argument
Why did you ignore the "export" commands? Did you read the backend's man page "man sane-microtek2"? In your particular case "scanimage -L" doesn't show a SANE device therefore you cannot use something like scanimage -d microtek2:libusb:002:002 because there is no such SANE device. But you can test "scanimage -L" the same way: For example what results export SANE_DEBUG_DLL=4 export SANE_DEBUG_EPSON=128 export SANE_DEBUG_SANEI_USB=128 scanimage -L && echo OK || echo FAILED unset SANE_DEBUG_SANEI_USB unset SANE_DEBUG_EPSON unset SANE_DEBUG_DLL Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
On Thu, 26 Jan 2006 16:29:48 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
Hello,
On Jan 26 09:55 ken wrote (shortened):
On Thu, 26 Jan 2006 14:30:08 +0100 (CET) Johannes Meixner
See http://portal.suse.com/sdb/en/2004/10/jsmeix_scanner-setup-92.html "Trouble-Shooting (Debugging)"
That's exactly the document-- that and the *93.html-- are the ones I've been working from. I've tried to run some of the troubleshooting, but I'm probably not divining what the documents are saying. Here's a couple attempts:
# scanimage -d microtek2 -T scanimage: open of device microtek2 failed: Invalid argument
# scanimage -d microtek2:libusb:002:002 -T scanimage: open of device microtek2:libusb:002:002 failed: Invalid argument
Why did you ignore the "export" commands?
Because I wasn't sure that I had the correct values in the Device field in the first two commands (above). The output from the above commands do, after all, say "Invalid argument" for both trials. Isn't it important to determine that a command's arguments have the correct values instead of just running a lot of commands?
Did you read the backend's man page "man sane-microtek2"?
Yes, a couple times. Is there anything in particular a user in my situation would want to take from that...? Or some piece(s) of information necessary or helpful in solving the problem?
In your particular case "scanimage -L" doesn't show a SANE device therefore you cannot use something like scanimage -d microtek2:libusb:002:002 because there is no such SANE device.
Okay. (This is the point I was making above concerning running the rest of the commands.) It would be nice if the documentation indicated in a little more detail how the "Device" argument is to be formed. Users would then be able to do more of the debugging on their own. (I hope you don't mind my offering suggestions.) Concerning the "invalid argument", I used "microtek2" as the first portion because that is the one in the Yast2 listing which best described my scanner. My particular scanner is also listed in the manpage for sane-microtek2. The second part of the (invalid) argument came from the output of sane-find-scanner, i.e., the line: found USB scanner (vendor=0x05da, product=0x20b0) at libusb:002:002 ^^^^^^^^^^^^^^ These sources, then, would seem to be sufficient for deducing the argument used above, yes?
But you can test "scanimage -L" the same way: For example what results
export SANE_DEBUG_DLL=4 export SANE_DEBUG_EPSON=128 export SANE_DEBUG_SANEI_USB=128 scanimage -L && echo OK || echo FAILED unset SANE_DEBUG_SANEI_USB unset SANE_DEBUG_EPSON unset SANE_DEBUG_DLL
Thank you for that. Just to make cutting and pasting easier and the output cleaner, I put these command on one line: # export SANE_DEBUG_DLL=4; export SANE_DEBUG_EPSON=128; \ export SANE_DEBUG_SANEI_USB=128; \ scanimage -L && echo OK || echo FAILED; unset SANE_DEBUG_SANEI_USB; \ unset SANE_DEBUG_EPSON; unset SANE_DEBUG_DLL and was returned [sanei_debug] Setting debug level of dll to 4. [dll] sane_init: SANE dll backend version 1.0.11 from sane-backends 1.0.15 [dll] add_backend: adding backend `microtek2' [dll] sane_get_devices [dll] load: searching backend `microtek2' in `/usr/lib/fglrx/lib:/usr/lib/sane'[dll] load: trying to load `/usr/lib/fglrx/lib/libsane-microtek2.so.1' [dll] load: couldn't open `/usr/lib/fglrx/lib/libsane-microtek2.so.1' (No such file or directory) [dll] load: trying to load `/usr/lib/sane/libsane-microtek2.so.1' [dll] load: dlopen()ing `/usr/lib/sane/libsane-microtek2.so.1' [dll] init: initializing backend `microtek2' [dll] init: backend `microtek2' is version 1.0.0 [dll] sane_get_devices: found 0 devices 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). [dll] sane_exit: exiting [dll] sane_exit: calling backend `microtek2's exit function [dll] sane_exit: finished OK This tells me that scanimage was able to find a dynamic library file corresponding to the "backend" but was (still) not able to find a "device" (I think in this instance a device *file* like /dev/usb/scanner0, yes?). Setting SANE_DEBUG_DLL with a value higher than 4 didn't increase its verbosity. I couldn't find information about the range of permissible values. If there's a next step to take, I'd be glad to know of it. In the meantime, I'll see what else I can find. Hope my comments have been helpful. I thank you for yours. Regards, ken -- "This world ain't big enough for the both of us," said the big noema to the little noema.
Hello, On Jan 27 07:24 ken wrote (shortened):
On Thu, 26 Jan 2006 16:29:48 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
But you can test "scanimage -L" the same way: For example what results
export SANE_DEBUG_DLL=4 export SANE_DEBUG_EPSON=128 export SANE_DEBUG_SANEI_USB=128 scanimage -L && echo OK || echo FAILED unset SANE_DEBUG_SANEI_USB unset SANE_DEBUG_EPSON unset SANE_DEBUG_DLL
Thank you for that. Just to make cutting and pasting easier and the output cleaner, I put these command on one line:
# export SANE_DEBUG_DLL=4; export SANE_DEBUG_EPSON=128; \ export SANE_DEBUG_SANEI_USB=128; \ scanimage -L && echo OK || echo FAILED; unset SANE_DEBUG_SANEI_USB; \ unset SANE_DEBUG_EPSON; unset SANE_DEBUG_DLL
Sorry, I made a copy&paste error from my own test. For you it is of course SANE_DEBUG_MICROTEK2 (see the man page for the microtek2 backend) and not SANE_DEBUG_EPSON which I used for my scanner. Therefore do: export SANE_DEBUG_DLL=4 export SANE_DEBUG_MICROTEK2=255 export SANE_DEBUG_SANEI_USB=128 scanimage -L && echo OK || echo FAILED unset SANE_DEBUG_SANEI_USB unset SANE_DEBUG_MICROTEK2 unset SANE_DEBUG_DLL I expect that the microtek2 backend is loaded and executed successfully but you will see only SCSI reledted tests from the backend but no USB stuff which would show you that this backend doesn't do anything regarding USB and therefore your scanner won't work via USB (but via SCSI). Of course you could inspect the sources to be 100% sure but I prefer first of all using user-level tools. Why can't you simply use the SCSI host adapter with which it had worked before? As far as I know some older SCSI host adapters are no longer supported but I am no SCSI expert so that I cannot help you with SCSI questions.
This tells me that scanimage was able to find a dynamic library file corresponding to the "backend" but was (still) not able to find a "device" (I think in this instance a device *file* like /dev/usb/scanner0, yes?).
Exactly. With "export SANE_DEBUG_MICROTEK2=255" you would additionally see the debug output of the microtek2 backend. Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
On Fri, 27 Jan 2006 13:44:36 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
Hello,
On Jan 27 07:24 ken wrote (shortened):
On Thu, 26 Jan 2006 16:29:48 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
But you can test "scanimage -L" the same way: For example what results
export SANE_DEBUG_DLL=4 export SANE_DEBUG_EPSON=128 export SANE_DEBUG_SANEI_USB=128 scanimage -L && echo OK || echo FAILED unset SANE_DEBUG_SANEI_USB unset SANE_DEBUG_EPSON unset SANE_DEBUG_DLL
Thank you for that. Just to make cutting and pasting easier and the output cleaner, I put these command on one line:
# export SANE_DEBUG_DLL=4; export SANE_DEBUG_EPSON=128; \ export SANE_DEBUG_SANEI_USB=128; \ scanimage -L && echo OK || echo FAILED; unset SANE_DEBUG_SANEI_USB; \ unset SANE_DEBUG_EPSON; unset SANE_DEBUG_DLL
Sorry, I made a copy&paste error from my own test.
For you it is of course SANE_DEBUG_MICROTEK2 (see the man page for the microtek2 backend) and not SANE_DEBUG_EPSON which I used for my scanner.
Therefore do:
export SANE_DEBUG_DLL=4 export SANE_DEBUG_MICROTEK2=255 export SANE_DEBUG_SANEI_USB=128 scanimage -L && echo OK || echo FAILED unset SANE_DEBUG_SANEI_USB unset SANE_DEBUG_MICROTEK2 unset SANE_DEBUG_DLL
export SANE_DEBUG_MICROTEK2=255; \ export SANE_DEBUG_SANEI_USB=128; \ scanimage -L && echo OK || echo FAILED; \ unset SANE_DEBUG_SANEI_USB; \ unset SANE_DEBUG_MICROTEK2; \ unset SANE_DEBUG_DLL [sanei_debug] Setting debug level of dll to 4. [dll] sane_init: SANE dll backend version 1.0.11 from sane-backends 1.0.15 [dll] add_backend: adding backend `microtek2' [dll] sane_get_devices [dll] load: searching backend `microtek2' in `/usr/lib/fglrx/lib:/usr/lib/sane'[dll] load: trying to load `/usr/lib/fglrx/lib/libsane-microtek2.so.1' [dll] load: couldn't open `/usr/lib/fglrx/lib/libsane-microtek2.so.1' (No such file or directory) [dll] load: trying to load `/usr/lib/sane/libsane-microtek2.so.1' [dll] load: dlopen()ing `/usr/lib/sane/libsane-microtek2.so.1' [dll] init: initializing backend `microtek2' [sanei_debug] Setting debug level of microtek2 to 255. [microtek2] sane_init: Microtek2 (v0.96 build 200410042220) says hello... [microtek2] parse_config_file: fp=0x8052468 [microtek2] parse_config_file: read line: # See sane-microtek2(5) for a description of the options [microtek2] parse_config_file: read line: [microtek2] parse_config_file: read line: option dump 1 [microtek2] parse_config_file: found global option option dump 1 [microtek2] parse_config_file: read line: #option strip-height 14.0 [microtek2] parse_config_file: read line: option no-backtrack-option on [microtek2] parse_config_file: found global option option no-backtrack-option on [microtek2] parse_config_file: read line: option
# export SANE_DEBUG_DLL=4;\ lightlid-35 on [microtek2] parse_config_file: found global option option lightlid-35 on [microtek2] parse_config_file: read line: option toggle-lamp on [microtek2] parse_config_file: found global option option toggle-lamp on [microtek2] parse_config_file: read line: option lineart-autoadjust on [microtek2] parse_config_file: found global option option lineart-autoadjust on[microtek2] parse_config_file: read line: option backend-calibration on [microtek2] parse_config_file: found global option option backend-calibration on [microtek2] parse_config_file: read line: #option colorbalance-adjust on [microtek2] parse_config_file: read line: scsi * * Scanner [microtek2] parse_config_file: found device scsi * * Scanner [microtek2] add_device_list: device='/dev/scanner' [microtek2] add_device_list: md=0x8052600, malloc'd 5236 bytes [microtek2] free hdev at 0x8052468 [microtek2] attach: device='/dev/scanner' [microtek2] scsi_inquiry: mi=0x8052604, device='/dev/scanner' [microtek2] scsi_inquiry: 'Invalid argument' [microtek2] attach: 'Invalid argument' [dll] init: backend `microtek2' is version 1.0.0 [microtek2] sane_get_devices: local_only=0 [microtek2] sane_get_devices: sd_list=0x8052178, malloc'd 8 bytes [microtek2] attach: device='/dev/scanner' [microtek2] scsi_inquiry: mi=0x8052604, device='/dev/scanner' [microtek2] scsi_inquiry: 'Invalid argument' [microtek2] attach: 'Invalid argument' [microtek2] sane_get_devices: attach status 'Invalid argument' [dll] sane_get_devices: found 0 devices 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). [dll] sane_exit: exiting [dll] sane_exit: calling backend `microtek2's exit function [microtek2] sane_exit: [microtek2] free md_first_dev at 0x8052600 [microtek2] sane_get_devices: local_only=0 [microtek2] free sd_list at 0x8052178 [microtek2] sane_get_devices: sd_list_freed [microtek2] sane_exit: MICROTEK2 says goodbye. [dll] sane_exit: finished OK
I expect that the microtek2 backend is loaded and executed successfully but you will see only SCSI reledted tests from the backend but no USB stuff which would show you that this backend doesn't do anything regarding USB and therefore your scanner won't work via USB (but via SCSI). Of course you could inspect the sources to be 100% sure but I prefer first of all using user-level tools.
Seems it's wanting to talk to /dev/scanner, but /dev/scanner is saying no. And since it's a scsi_inquiry, it wouldn't help to ln -s /dev/usb/scanner0 /dev/scanner ... or would it? Or should/could I alter the entry in /etc/sane.d/microtek2.conf ?? i.e., scsi * * Scanner
Why can't you simply use the SCSI host adapter with which it had worked before?
I don't have a SCSI port on my laptop. :)
As far as I know some older SCSI host adapters are no longer supported but I am no SCSI expert so that I cannot help you with SCSI questions.
The machine with the (perfectly good) SCSI adapter blew a hard drive last week. I needed to scan a dozen documents and thought it would be simpler and easier to get the scanner working on the laptop than to rebuild the broken machine.
This tells me that scanimage was able to find a dynamic library file corresponding to the "backend" but was (still) not able to find a "device" (I think in this instance a device *file* like /dev/usb/scanner0, yes?).
Exactly. With "export SANE_DEBUG_MICROTEK2=255" you would additionally see the debug output of the microtek2 backend.
Yeah, that's cool. Up to a point, I much prefer too much debugging output over too little. Really helps narrow down the problem. Best again, ken -- "This world ain't big enough for the both of us," said the big noema to the little noema.
Hello, reply without crossposting to various lists. On Jan 25 13:52 ken wrote (shortened):
Trying to set up an old Microtek Scanmaker X12USL without much success. I had it working on my old RH system, but it died last week. RIP. ... At the CLI I do "sane-find-scanner" and get back: found USB scanner (vendor=0x05da, product=0x20b0) at libusb:002:002
Correspondingly, "lsusb" shows: Bus 002 Device 002: ID 05da:20b0 Microtek International, Inc.
According to what I found on the SANE home page and in the sane-microtek2 man page there is only SCSI mentioned. Could it be the case that you had it working via SCSI and now you try to use it via USB? Perhaps it simply doesn't work via USB? Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
On Thu, 26 Jan 2006 14:27:56 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
Hello,
reply without crossposting to various lists.
On Jan 25 13:52 ken wrote (shortened):
Trying to set up an old Microtek Scanmaker X12USL without much success. I had it working on my old RH system, but it died last week. RIP. ... At the CLI I do "sane-find-scanner" and get back: found USB scanner (vendor=0x05da, product=0x20b0) at libusb:002:002
Correspondingly, "lsusb" shows: Bus 002 Device 002: ID 05da:20b0 Microtek International, Inc.
According to what I found on the SANE home page and in the sane-microtek2 man page there is only SCSI mentioned.
Could it be the case that you had it working via SCSI and now you try to use it via USB?
This is true. This scanner has ports for both SCSI and USB. When I launch "Yast2 > Hardware > Scanner", in the "Autodetected Scanners" box I'm shown "USB Scanner (vendor=0x05da, product=0x20b0) at libusb:002:002". This, after making the changes already mentioned in this thread. When I then click on "Configure" I'm given the list of drivers (="backends"?) and select the one for Microtek X12USL. Clicking on "Next", the next panel shows that "microtek2" as an "Active Driver", but lists no "Active Scanner". Telling me the same thing as "scanimage -L".
Perhaps it simply doesn't work via USB?
Well that's true now. :) Seriously, you may well be right. I wouldn't come to that conclusion on the basis of a webpage alone. It's often the case, especially with Linux, that documents and webpages don't reflect the lastest capabilities. Even in the paid, commercial world, writing up the documentation is pretty much an afterthought, far lower down the long list of priorities than providing technical functionality. It's also the case that, as I understand it, scsi modules are required for this to work. I haven't read the code, but isn't the scanner's USB output is read by the USB drivers and this handed off to scsi drivers? Maybe you can describe better the role of the scsi modules in getting this scanner to work.... Johannes, one part of the documentation I didn't understand concerned the libraries (found in /usr/lib/sane/). Perhaps you could clarify what needs to be done there and how to ensure it's been done (correctly). Thanks very much for your responses. Best regards, ken
Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
-- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
-- "This world ain't big enough for the both of us," said the big noema to the little noema.
Hello, On Jan 26 10:44 ken wrote (shortened):
On Thu, 26 Jan 2006 14:27:56 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
According to what I found on the SANE home page and in the sane-microtek2 man page there is only SCSI mentioned.
Could it be the case that you had it working via SCSI and now you try to use it via USB?
This is true. This scanner has ports for both SCSI and USB.
When I launch "Yast2 > Hardware > Scanner", in the "Autodetected Scanners" box I'm shown "USB Scanner (vendor=0x05da, product=0x20b0) at libusb:002:002". This, after making the changes already mentioned in this thread.
I don't know for sure if it is not supported by the microtek2 backend via USB but "sane-find-scanner" (that's also what YaST uses to find scanners) can detect USB scanners via special USB chipset detection (see "man sane-find-scanner") to distinguish scanners from other USB devices. In your case "sane-find-scanner" correctly detected that there is a USB scanner but this does not mean that it is supported by a driver in SANE, see "man sane-find-scanner": "sane-find-scanner will even find USB scanners, that are not supported by any SANE backend". Unfortunately I don't have exact information which SCSI+USB scanner is supported only via SCSI or only via USB so that I cannot show an appropriate message in YaST. There is an "interface" keyword in the SANE description files but I don't know for sure if this is always correct. I.e. if only "SCSI" is mentioned does this really mean that "USB" is not supported?
When I then click on "Configure" I'm given the list of drivers (="backends"?) and select the one for Microtek X12USL. Clicking on "Next", the next panel shows that "microtek2" as an "Active Driver", but lists no "Active Scanner". Telling me the same thing as "scanimage -L".
Guess which command is executed by YaST to determine an "Active Scanner"? Have a look at /usr/lib/YaST2/bin/*scanner* Summary: YaST does exactly what is in compliance with SANE to detect and set up a scanner. YaST uses only the SANE tools. YaST does not use selfmade magic. Therefore what you get with YaST should be (hopefully) exactly the same which you would get by using the SANE tools. What YaST not does is special changes in the backend config files (e.g. in /etc/sane.d/microtek2.conf). The reason is that the defaults in backend config files are such that it is safe. For excample you can enforce most backends to recognise any USB device as a scanner with arbitrary consequences, see for example /etc/sane.d/epkowa.conf: "... you may, at your own peril(!!), force the backend to recognise ..." I will not let any innocent user do such things via YaST.
Johannes, one part of the documentation I didn't understand concerned the libraries (found in /usr/lib/sane/). Perhaps you could clarify what needs to be done there and how to ensure it's been done (correctly).
Please be more specific which section in which part of the documentation you do not understand and what exactly your question is. I don't know what should be done in /usr/lib/sane/. Simply installing the package sane (YaST would force you to have "sane" installed when you set up a scanner and if necessary, YaST would install other neded packages like "iscan") and all should be o.k. in /usr/lib/sane/. Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
On Thu, 26 Jan 2006 17:11:09 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
Hello,
On Jan 26 10:44 ken wrote (shortened):
On Thu, 26 Jan 2006 14:27:56 +0100 (CET) Johannes Meixner <jsmeix@suse.de> wrote:
....
.... "sane-find-scanner" (that's also what YaST uses to find scanners) can detect USB scanners via special USB chipset detection (see "man sane-find-scanner") to distinguish scanners from other USB devices.
In your case "sane-find-scanner" correctly detected that there is a USB scanner but this does not mean that it is supported by a driver in SANE, see "man sane-find-scanner": "sane-find-scanner will even find USB scanners, that are not supported by any SANE backend".
This clarifies quite a bit and so would be good to include in the documentation.
Unfortunately I don't have exact information which SCSI+USB scanner is supported only via SCSI or only via USB so that I cannot show an appropriate message in YaST. There is an "interface" keyword in the SANE description files but I don't know for sure if this is always correct. I.e. if only "SCSI" is mentioned does this really mean that "USB" is not supported?
Yeah, that would be useful information for everyone. Sometimes it's good to know if something is not possible to do. At least you know you can stop wasting time trying. :)
When I then click on "Configure" I'm given the list of drivers (="backends"?) and select the one for Microtek X12USL. Clicking on "Next", the next panel shows that "microtek2" as an "Active Driver", but lists no "Active Scanner". Telling me the same thing as "scanimage -L".
Guess which command is executed by YaST to determine an "Active Scanner"? Have a look at /usr/lib/YaST2/bin/*scanner*
Aha! The similarity in functionality gave me to suspect that. It would be nice sometimes to know that some GUI app does the same as some command or set of commands. Generally, using the CLI provides more error information than GUIs do, so they're often more helpful in tracing out a problem.
Summary: YaST does exactly what is in compliance with SANE to detect and set up a scanner. YaST uses only the SANE tools. YaST does not use selfmade magic. Therefore what you get with YaST should be (hopefully) exactly the same which you would get by using the SANE tools. What YaST not does is special changes in the backend config files (e.g. in /etc/sane.d/microtek2.conf). The reason is that the defaults in backend config files are such that it is safe. For excample you can enforce most backends to recognise any USB device as a scanner with arbitrary consequences, see for example /etc/sane.d/epkowa.conf: "... you may, at your own peril(!!), force the backend to recognise ..." I will not let any innocent user do such things via YaST.
The above would be a good preamble to notifying the user about yast's using "scanimage -L". I'd say that the last line-- about "innocent user"-- is a good policy. More accomplished users, though, might appreciate knowing there are further-- albeit more drastic-- alternatives.
Johannes, one part of the documentation I didn't understand concerned the libraries (found in /usr/lib/sane/). Perhaps you could clarify what needs to be done there and how to ensure it's been done (correctly).
Please be more specific which section in which part of the documentation you do not understand and what exactly your question is.
I've read so much documentation that I can't remember in which doc the question came up. But some documentation said something to the effect that I should ensure the libraries were installed "in the proper place" and either in (or not in) some PATH. Perhaps that document should have said, Run this command to ensure the proper libraries are installed in the proper place: # export SANE_DEBUG_DLL=4; export SANE_DEBUG_EPSON=128; \ export SANE_DEBUG_SANEI_USB=128; \ scanimage -L && echo OK || echo FAILED; unset SANE_DEBUG_SANEI_USB; \ unset SANE_DEBUG_EPSON; unset SANE_DEBUG_DLL
I don't know what should be done in /usr/lib/sane/. Simply installing the package sane (YaST would force you to have "sane" installed when you set up a scanner and if necessary, YaST would install other neded packages like "iscan") and all should be o.k. in /usr/lib/sane/.
Perhaps the problem is so much documentation; one document raises a question, but then doesn't assist in answering it. So then I wonder, Well, is my problem due to wrong or missing libraries? So including the command above as part of a checklist, like: "If you're uncertain as to whether the libraries are installed correctly, run [the command above]." Even if your documentation didn't create the uncertainty, it could address and resolve it. And though the sane package might have installed everything in the correct places, not all packages do and so the uncertainty can always be there. The "cost" of running one (even rather long) command is well worth eliminating one uncertainty. hth, ken
Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
-- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
-- "This world ain't big enough for the both of us," said the big noema to the little noema.
participants (3)
-
Joe Morris (NTM)
-
Johannes Meixner
-
ken