I am using Open SuSE 15.0 (formerly upgraded from leap and now refreshed).
The last steps:
- xsane worked after dist-upgrade to latest code about a year ago
- minor updates for mozilla, teamviewer, and some other apps
- xsane did not work anymore
- asked for "zypper update", got again new libs and rpms for mozilla, vdrift and some more
- xsane still does not work
- using "yast scanner" (did not really work well, deleting an inactive configured scanner, that came back later)
- checked /etc/sane.d
+ usb ids match the configured scanner
+ (dll.conf.rpmnew swapped with dll.conf), no change in content (some more comments now)
+ sane.conf unchanged
- starting still leads to error "invalid argument"
- reinstalling xsane
- checking that all libusb are installed (was true)
- found only a few executables of xsane and not config files outside /etc/sane.d
- Now following the trouble-shooting section of
https://en.opensuse.org/SDB:Configuring_Scanners
it turns out that the (correct) configuration gets lost between sane_init() and sane_open():
me:~# sane-find-scanner
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.
# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
found USB scanner (vendor=0x04a9 [Canon], product=0x221c [CanoScan], chip=GL842) at libusb:001:028
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
# Not checking for parallel port scanners.
# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.
me:~# scanimage -L
device `genesys:libusb:001:028' is a Canon LiDE 60 flatbed scanner
me:~# scanimage -d genesys:libusb:001:028 -v -v -v -v -v
scanimage: open of device genesys:libusb:001:028 failed: Invalid argument
Calling sane_exit
scanimage: finished
me:~# scanimage -L
device `genesys:libusb:001:029' is a Canon LiDE 60 flatbed scanner
OK, i.e. using "scanimage" kicks the scanner from the USB bus. Why?
me:~> export SANE_DEBUG_DLL=16
me:~> scanimage -d Device -v >/dev/null && echo OK || echo FAILED
[sanei_debug] Setting debug level of dll to 16.
[dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.27
[dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: opendir failed: No such file or directory
[dll] sane_init/read_config: reading dll.conf
[dll] add_backend: adding backend `genesys' ***
[dll] sane_open: trying to open `Device'
[dll] add_backend: adding backend `Device'
[dll] load: searching backend `Device' in `/usr/lib64/sane'
[dll] load: trying to load `/usr/lib64/sane/libsane-Device.so.1'
[dll] load: couldn't open `/usr/lib64/sane/libsane-Device.so.1' (No such file or directory)
[dll] load: couldn't find backend `Device' (No such file or directory)
scanimage: open of device Device failed: Invalid argument
[dll] sane_exit: exiting
[dll] sane_exit: finished
FAILED
I added *** where the backend was determined correctly,
but in the next line 'sane_open()' uses "Device" instead of "genesys"
The other debugging options did not change the above output.
It looks to me like a binary in error. How do I resolve this situation?