Bug 140248
Description
Jonathan Eskritt
2004-11-21 19:07:42 UTC
If you switch the scanner off, and then on, does the scan work? No, I still get the same error message What does: scanimage -L and then: scanimage >/dev/null say? $ scanimage -L device `plustek:libusb:003:008' is a Epson Perfection 1250/Photo USB flatbed scanner $ scanimage > /dev/null scanimage: sane_start: Device busy I don't know if it matters, but I have upgraded my kernel to the latest version: kernel-2.6.9-1.681_FC3. I still get the same problems. What do these commands give as output?: ls -l /proc/bus/usb/003/008 ps auxfww Created attachment 107307 [details]
output from "ps auxfww"
The scanner changes it's USB device numbers every time I power it down. $ scanimage -L device `plustek:libusb:003:006' is a Epson Perfection 1250/Photo USB flatbed scanner $ ls -l /proc/bus/usb/003/006 -rw------- 1 jon root 57 Nov 23 09:02 /proc/bus/usb/003/006 jon is my user name, so I should have rw access. The output to ps auxfww is pretty long so I made it an attachement. How about this?: strace -eopen scanimage >/dev/null I expect it will just show -EBUSY or something, so I'd also like to see the output of: fuser -v /proc/bus/usb/003/006 (obviously use the numbers from scanimage -L) The fuser command comes from the psmisc package, in case you don't have that installed. Created attachment 107328 [details]
strace output
the fuser -v /proc/bus/usb/003/007 produced no output. I ran it as both a
regular user and as root.
Oh, that's interesting: open("/proc/bus/usb/003/007", O_RDWR) = 19 So the open call is succeeding, not failing as I'd expected from the error message. Please try this: SANE_DEBUG_PLUSTEK=35 scanimage >output 2>&1 and attach the 'output' file. Thanks. Created attachment 107400 [details]
output from "SANE_DEBUG_PLUSTEK=35 scanimage >output 2>&1"
FWIW, i see the exact same behavior with my epson perfection 1260/photo scanner and reproduced all of the tests given here. What does '/sbin/lsmod' say? I'm wondering if the kernel loads a scanner module and prevents us using libusb for that device. # lsmod Module Size Used by ppdev 8901 0 nls_utf8 1985 1 parport_pc 24705 1 lp 11565 0 parport 41737 3 ppdev,parport_pc,lp autofs4 24005 0 asb100 20061 0 i2c_sensor 3521 1 asb100 i2c_viapro 6989 0 i2c_dev 10433 0 i2c_core 22081 4 asb100,i2c_sensor,i2c_viapro,i2c_dev ipt_REJECT 6465 1 ipt_state 1857 5 ip_conntrack 40693 1 ipt_state iptable_filter 2753 1 ip_tables 16193 3 ipt_REJECT,ipt_state,iptable_filter dm_mod 54741 0 button 6481 0 battery 8517 0 ac 4805 0 nvidia 3474076 12 sd_mod 16961 2 md5 4033 1 ipv6 232705 10 usb_storage 61321 1 scsi_mod 118417 2 sd_mod,usb_storage joydev 8705 0 legousbtower 16197 0 ehci_hcd 31685 0 uhci_hcd 31449 0 snd_cmipci 35173 3 snd_pcm_oss 47608 0 snd_mixer_oss 17217 3 snd_pcm_oss snd_pcm 97993 2 snd_cmipci,snd_pcm_oss snd_page_alloc 9673 1 snd_pcm snd_opl3_lib 11201 1 snd_cmipci snd_timer 29765 2 snd_pcm,snd_opl3_lib snd_hwdep 9413 1 snd_opl3_lib gameport 4801 1 snd_cmipci snd_mpu401_uart 8769 1 snd_cmipci snd_rawmidi 26725 1 snd_mpu401_uart snd_seq_device 8137 2 snd_opl3_lib,snd_rawmidi snd 54053 12 snd_cmipci,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_opl3_lib,snd_timer,snd_hwdep,snd_mpu401_uart,snd_rawmidi,snd_seq_device soundcore 9889 3 snd tulip 43745 0 floppy 58609 0 ext3 116809 5 jbd 74969 1 ext3 Could you try this now please? SANE_DEBUG_SANEI_USB=128 scanimage >output 2>&1 Created attachment 107563 [details]
output from "SANE_DEBUG_SANEI_USB=128 scanimage >output 2>&1"
Please try sane-backends-1.0.15 from Fedora development: ftp://download.fedora.redhat.com/pub/fedora/linux/core/development/i386/Fedora/RPMS There have been several plustek changes since 1.0.14, and it would be useful to know if they fix the problem or not. So I updated to sane-backends-1.0.15-6 and hotplug-2004_04_01-10 (required dependancy) and I still get the same result: $ scanimage -L device `plustek:libusb:003:003' is a Epson Perfection 1250/Photo USB flatbed scanner $ scanimage > /dev/null scanimage: sane_start: Device busy I've reported this on the sane-devel mailing list. We'll see what the upstream developers say. If you replace the line "epson" with "#epson" in /etc/sane.d/dll.conf, does scanning work? That seems to have done the trick. Thanks. BTW the scan now makes some strange noises at the end of the scan that it didn't before. Are you still running 1.0.15-6? 1.0.15 was meant to fix this problem, by preventing the epson backend from trying to handle the device: https://alioth.debian.org/tracker/?group_id=30186&atid=410366&func=detail&aid=300751 Indeed, the source code for 1.0.15 does not list 0x4b8/0x10f as being handled by epson_usb.c, so it's a bit of a puzzle that commenting out the epson backend makes a difference. yeah I'm still using 1.0.15-6. The strange thing was that in all the debug stuff I ran, it properly detected it was a plustek scanner, and in the "SANE_DEBUG_SANEI_USB=128 scanimage >output 2>&1" test it could write and read data from the scanner. But when it came to actually scanning the epson driver cased some conflict. Let's see what the epson backend is up to. Please try this: export SANE_DEBUG_DLL=1 export SANE_DEBUG_PLUSTEK=20 export SANE_DEBUG_EPSON=5 scanimage >output 2>&1 Thanks. Created attachment 107830 [details]
output from "export SANE_DEBUG_DLL=1 ; export SANE_DEBUG_PLUSTEK=20 ; export SANE_DEBUG_EPSON=5 ; scanimage >output 2>&1"
Does your /etc/sane.d/epson.conf have a line like this?: usb 0x04b8 0x010f If so, did you put that there or did it come like that? I does. I may have done it before submitting the bug report, I tried a bunch of stuff before submitting to bugzilla. But, I upgraded to sane-backends-1.0.15-6, shouldn't that either over write the changed file, or have made a epson.conf.rpmnew? I did get an /etc/sane.d/dll.conf.rpmnew when I upgraded, and I moved it to /etc/sane.d/dll.conf (after saving the old conf to /etc/sane.d/dll.conf.old) Should I comment out the usb 0x04b8 0x010f line in the /etc/sane.d/epson.conf file and try again? Since it is a configuration file, it is not overwritten. Please remove that line and try again. Thanks. I commented out the line "usb 0x04b8 0x010f" in the /etc/sane.d/epson.conf, and uncommented the epson in the /etc/sane.d/dll.conf file. Everything still works. I was getting the device busy errors before I made any changes, so it must have been the upgrade to sane-backends-1.0.15-6 that fixed the problem. Thanks for all your help. Great, thanks for testing. |