Bugzilla – Bug 975866
Scanner no longer detected by sane/scanimage
Last modified: 2017-06-26 18:51:10 UTC
I have an Epson Perfection 1250 scanner that I have been using for many years. Today I wanted to scan something with it, using a recently installed Leap computer. But the scanner cannot be used. After a longer timeout, xsane reports that no scanner could be found. dll.conf only has the plustek driver active. The scanner itself works perfectly, if I either connect it to my openSUSE 13.2 laptop, or if I use the demo version of vuescan on the Leap machine. I tried sane-find-scanner, which directly found the scanner: found USB scanner (vendor=0x04b8 [EPSON], product=0x010f [EPSON Scanner 010F]) at libusb:007:025 found USB scanner (vendor=0x0b05 [Broadcom Corp], product=0x180a [BCM20702A0]) at libusb:001:002 But scanimage -L just hangs for some 1-2 minutes, then reports 'No scanners identified'. This is, unless I unplug the scanner, reconnect it, and then run scanimage. Now it reports device `plustek:libusb:007:025' is a Epson Perfection 1250/Photo flatbed scanner and then hangs for a minute. If I run it a second time, it does not see the scanner again.
When scanimage "hangs for minutes" it indicates low-level USB issues when the xhci kernel module is used (a.k.a. "USB 3"), cf. https://bugzilla.opensuse.org/show_bug.cgi?id=856794#c8 In general when your scanner is connected via USB: There are currently isues when the xhci kernel module is used for USB ports where the scanner is connected. Only "lsusb -t" will tell you what kernel module/driver is actually used for the USB bus and port where your scanner is connected to. Check the "lsusb -t" output if the "xhci_hcd" USB kernel driver (a.k.a. "USB 3") is used. Neither the color nor what the port is labeled on the computer is reliable regarding what kernel driver is used for the port. For example my testing machine has 4 USB ports, two labeled with the "super speed" USB logo (a.k.a. USB 3) and two labeled with the normal USB logo (a.k.a. USB 2) but for all 4 ports xhci is used. Furthermore all USB ports on my testing machine have same dark color. Also the "super speed" (USB 3) labeled ports are basically black. Their exact color is "very dark" but not "100% black" and neither blue (USB 3.0) nor teal blue (USB 3.1), cf. https://en.wikipedia.org/wiki/USB#Colors Only "lsusb -t" output shows what kernel driver is actually used. See https://bugzilla.suse.com/show_bug.cgi?id=955079#c2 and https://bugzilla.opensuse.org/show_bug.cgi?id=856794 in particular see https://bugzilla.opensuse.org/show_bug.cgi?id=856794#c50 Regarding "USB 2" versus "USB 3" see also http://lists.alioth.debian.org/pipermail/sane-devel/2015-December/034197.html and http://lists.alioth.debian.org/pipermail/sane-devel/2015-December/034207.html When your scanner is not connected at a USB port where the kernel module xhci_hcd is used as kernel driver (e.g. when your scanner is connected at a USB port where the kernel module uhci_hcd or ehci_hcd is used as kernel driver), then have a look at "Trouble-Shooting (Debugging)" in https://en.opensuse.org/SDB:Configuring_Scanners For example to get USB debugging information you could use comands (as root) like export SANE_DEBUG_SANEI_USB=128 scanimage -L unset SANE_DEBUG_SANEI_USB *** This bug has been marked as a duplicate of bug 856794 ***
First: Thank you so much for this extensive reply. I do appreciate this very much, and learned from it :) Indeed for my mainboard (ASUS Z170 deluxe) all USB buses are handled by xhci_hcd. Reading through the links you gave I decided to first give the updated sane-backends version 1.0.25 from the graphics project a try. With this (and the default kernel, 4.1.20-11-default) scanimage -L detects my scanner (and returns without a timeout, and also works for additional repeats). Then I tried xsane, which can (so far) perfectly use the scanner for preview and normal scans. A kernel update seems not to be needed. Thanks again, Peter
Many thanks for your valuable feedback with exact information what you use and what results you get. I think sane-backends 1.0.25 works with kernel 4.1.20 because since sane-backends 1.0.25 there is a "Workaround for USB3 problems in Linux kernel", see the sane-backends 1.0.25 RPM package changelog: # rpm -q --changelog sane-backends or see "Latest News ... SANE-Backends-1.0.25 has been released" at http://www.sane-project.org/ But that workaround seems to no longer work with newer kernels (like kernel 4.3.3), see https://bugzilla.opensuse.org/show_bug.cgi?id=856794#c50 Accordingly I think a kernel version upgrade could make it fail again with sane-backends 1.0.25. Perhaps then a downgrade to sane-backends 1.0.24 that does not have that workaround would make it working again with a newer kernel?
I am having the same problem with an Epson Perfection V500 Photo scanner, the scanner doesn't work. It worked perfectly with my older computer, and when I attached it to a newer computer that I built, the driver Epkowa doesn't recognize the scanner. I installed various versions of the iscan-bundle up to 1.0.4, but none of them allow Epkowa driver to recognize the scanner. I also tried using the demo version of Vue-Scan, but it also reports that it can't recognize any scanner. I have tried versions 1.0.24, 1.0.25, and 1.0.27 of sane-backends, and these haven't worked to allow the scanner to be recognized by yast. I have tried to use the USB workaround, but that didn't allow the scanner to work. The computer is a dual-boot with Win7, and the scanner works well with Win7 and the Epson driver software. My purpose in adding my comment to this thread is in the hope that this will motivate the software writers to fix this bug to once again allow my scanner to be used with my new computer. My new computer that is having the problem with the scanner is built with an i7 3.6 GHZ Kaby Lake processor, and a Gigabyte B250M-DS3H Motherboard.