You are not logged in.
Hi,
attempting to reactivate my old Minolta Dimage Scan Elite 5400.
Had it working some years ago, then the scanner had mechanical probs. I could have it repaired, now wanting to use it again.
But: sane has probs to talk to the scanner.
[ufa@horst3 ~]$ scanimage -L
device `avision:libusb:001:003' is a Minolta Dimage Scan Elite 5400 film scannerDifferent to some seemingly similar problem description I found , this command can be executed several times in a row without any problems .
But:
[ufa@horst3 ~]$ scanimage -T
Output format is not set, using pnm as a default.
scanimage: open of device avision:libusb:001:003 failed: Invalid argumentan strace reveals that some ioctl calls to the scanner device (open with file descr 13 below) fail with EAGAIN, but not all:
...
openat(AT_FDCWD, "/dev/bus/usb/001/003", O_RDWR|O_CLOEXEC) = 13
ioctl(13, USBDEVFS_GET_CAPABILITIES, 0x5616005484bc) = 0
openat(AT_FDCWD, "/sys/bus/usb/devices/1-3/bConfigurationValue", O_RDONLY|O_CLOEXEC) = 14
read(14, "1\n", 5) = 2
close(14) = 0
ioctl(13, USBDEVFS_CLAIMINTERFACE, 0x7fff2204839c) = 0
timerfd_settime(11, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=1321, tv_nsec=415604000}}, NULL) = 0
ioctl(13, USBDEVFS_SUBMITURB, 0x561600561420) = 0
read(9, "\1", 1) = 1
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLOUT}], 3, 60000) = 1 ([{fd=13, revents=POLLOUT}])
ioctl(13, USBDEVFS_REAPURBNDELAY, 0x7fff22048150) = 0
timerfd_settime(11, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(13, USBDEVFS_REAPURBNDELAY, 0x7fff22048150) = -1 EAGAIN (Resource temporarily unavailable)
timerfd_settime(11, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=1292, tv_nsec=415943000}}, NULL) = 0
ioctl(13, USBDEVFS_SUBMITURB, 0x561600561420) = 0
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLOUT}], 3, 60000) = 1 ([{fd=13, revents=POLLOUT}])
ioctl(13, USBDEVFS_REAPURBNDELAY, 0x7fff22048160) = 0
timerfd_settime(11, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(13, USBDEVFS_REAPURBNDELAY, 0x7fff22048160) = -1 EAGAIN (Resource temporarily unavailable)
timerfd_settime(11, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=1292, tv_nsec=417542000}}, NULL) = 0
ioctl(13, USBDEVFS_SUBMITURB, 0x561600561420) = 0
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLOUT}], 3, 60000) = 1 ([{fd=13, revents=POLLOUT}])
ioctl(13, USBDEVFS_REAPURBNDELAY, 0x7fff22048110) = 0
...
ioctl(13, USBDEVFS_SUBMITURB, 0x561600561420) = 0
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLOUT}], 3, 60000) = 1 ([{fd=13, revents=POLLOUT}])
ioctl(13, USBDEVFS_REAPURBNDELAY, 0x7fff22048110) = 0
timerfd_settime(11, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(13, USBDEVFS_REAPURBNDELAY, 0x7fff22048110) = -1 EAGAIN (Resource temporarily unavailable)
ioctl(13, USBDEVFS_RELEASEINTERFACE, 0x7fff220484ec) = 0
write(10, "\1", 1) = 1
close(13) = 0
...Later in the trace, we find further occurrences of EAGAINs:
...
openat(AT_FDCWD, "/dev/bus/usb/001/003", O_RDWR|O_CLOEXEC) = 12
ioctl(12, USBDEVFS_GET_CAPABILITIES, 0x561600543dfc) = 0
openat(AT_FDCWD, "/sys/bus/usb/devices/1-3/bConfigurationValue", O_RDONLY|O_CLOEXEC) = 13
read(13, "1\n", 5) = 2
close(13) = 0
ioctl(12, USBDEVFS_CLAIMINTERFACE, 0x7fff2204953c) = 0
timerfd_settime(11, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=1321, tv_nsec=899302000}}, NULL) = 0
ioctl(12, USBDEVFS_SUBMITURB, 0x561600561690) = 0
read(9, "\1", 1) = 1
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLOUT}], 3, 60000) = 1 ([{fd=12, revents=POLLOUT}])
ioctl(12, USBDEVFS_REAPURBNDELAY, 0x7fff220492f0) = 0
timerfd_settime(11, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(12, USBDEVFS_REAPURBNDELAY, 0x7fff220492f0) = -1 EAGAIN (Resource temporarily unavailable)
timerfd_settime(11, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=1292, tv_nsec=899626000}}, NULL) = 0
ioctl(12, USBDEVFS_SUBMITURB, 0x561600561690) = 0
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLOUT}], 3, 60000) = 1 ([{fd=12, revents=POLLOUT}])
ioctl(12, USBDEVFS_REAPURBNDELAY, 0x7fff22049300) = 0
timerfd_settime(11, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(12, USBDEVFS_REAPURBNDELAY, 0x7fff22049300) = -1 EAGAIN (Resource temporarily unavailable)
...
ioctl(12, USBDEVFS_SUBMITURB, 0x561600561690) = 0
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLOUT}], 3, 60000) = 1 ([{fd=12, revents=POLLOUT}])
ioctl(12, USBDEVFS_REAPURBNDELAY, 0x7fff22049300) = 0
timerfd_settime(11, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(12, USBDEVFS_REAPURBNDELAY, 0x7fff22049300) = -1 EAGAIN (Resource temporarily unavailable)
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=1, tv_nsec=0}, 0x7fff220496b0) = 0
write(2, "scanimage: open of device avisio"..., 74) = 74
...Now, I am not sure what that code is doing, running the same ioctl functions over and over - is that kind of a stress test for the scanner?
However, obviously the app can talke to the scanner, but nevertheless claims it cannot ("open of device avision:libusb:001:003 failed: Invalid argument").
My account is in the scanner group, the sane backend conf has one effective line:
[ufa@horst3 ~]$ grep -v '^#' /etc/sane.d/avision.conf | grep -v '^[ ]*$'
usb 0x0686 0x400ewhich matches
[ufa@horst3 ~]$ lsusb | grep Minolta
Bus 001 Device 003: ID 0686:400e Minolta Co., Ltd Dimage Scan Elite 5400 (2890). I just have updated the system (sane 1.0.30-1, xsane 0.999-5).
Just for completion: The EAGAINs appear to be normal for that matter, and there was nowhere a hard error ... I am not a programmer (let alone device access), so at first I thought the EAGAINs indicate a problem, but they just seem to be a type of process control and are apperently seen in many places for the ioctl USBDEVFS_REAPURBNDELAY . What does it do, after all? URB = USB Request Block, in the strace i see USBDEVFS_SUBMITURB (i suppose this sends some message or command to the USB device), then USBDEVFS_REAPURBNDELAY without errs, and USBDEVFS_REAPURBNDELAY with EAGAIN. What is this USBDEVFS_REAPURBNDELAY doing ?
Any ideas?
cl
UPDATE June 12, 13:30UTC: Today i was able to use the scanner for a while (I scanned a few slides, with changing the slide holder - so all appeared to be fine), but after a restart of SANE all is as before: scanimage -L lists the scanner, simple-scan finds it as well but cannot connect, sane/xsane either gets stuck or reports to have not found a scanner .... That is very strange and probably not a simple config issue.
Last edited by cargolifter (2020-06-12 13:33:31)
Offline
you seem like you know way more than i do about SANE, but i always have to use sudo with the scanimage command to get it to work.
Offline
EAGAIN is "not right now, ask me later", if this happens to often, the client will give up.
The scanner doesn't respond, which is either a problem with the scanner, the cable, the plugs the hub or the bus.
Assuming it's not a HW issue (ensure to remove all sorts of external hubs/adapters and try a different USB port - if the host has multiple), powersaving could cause this.
In particular usb autosuspend, https://wiki.archlinux.org/index.php/Po … utosuspend (also check whether you're running userspace powermanagement tools)
Last edited by seth (2020-06-13 20:37:52)
Offline
Thank you for your replies.
I was unsure wether the scanner itself has some issues.
I'd already tried multiple USB ports. The USB power saving could have been the culprit, but if I got it right, that would be configured through udev rules- However, I don't have any such ...
I've then retrieved a demo of VueScan, and it worked out of the box.
Sorry to say that but I've purchased VueScan now and it worked flawlessly. That tells me the issue is not with the scanner (and probably also not with USB power saving), and despite I would like to see Sane doing well I was more interested in my scanner working.
So, in principle I do not have a problem using my scanner right now but I am using a commercial product for that, sadly.
cl
Offline
So, in principle I do not have a problem using my scanner right now but I am using a commercial product for that, sadly
Hi,
I had same problem very recently
A good workaround :
Open Gimp => File => Create => XSane:device dialog
And you have the perfect old-good Xsane working perfectly
Waiting for bug-correction... ![]()
Edit : now corrected XSane works as usual
Last edited by waitnsea (2020-10-15 16:29:25)
Offline