Discussion:
[sane-devel] Fujitsu scanner issues
Chris Ott
2017-09-27 21:52:45 UTC
Permalink
I wrote a scanning program that uses the Sane library eight or nine years ago, and have been using it happily, since then. A couple of weeks ago, it occurred to me the machines to which the scanners are connected hadn't had their OSes upgraded in at least three years. Unfortunately, upgrading them broke my program, and I can't figure out why.

The scanners are Fujitsu fi-6770djs, with both document feeders and flatbeds. If we stick with the document feeders, everything is fine. If we scan on the flatbed, then switch back to the document feeder, sane_start returns SANE_STATUS_INVAL. Restarting the program resets everything and allows us to use the document feeder, again. Now, I know that when you use the document feeder, the page dimensions have to be specified with page-length/page-width, while the flatbed requires tl-x/tl-y/br-x/br-y, and my program accounts for that.

I tried moving some stuff around so all the options are set right before sane_start is called (rather than immediately after the user sets them), but that didn't help.

I tried previous versions of the Sane library, from 1.0.22 to 1.0.27; didn't help.

Here's the debug output:

[sanei_debug] Setting debug level of dll to 255.
[dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.27git
[dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[dll] sane_init/read_dlld: attempting to open directory `/usr/local/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: using config directory `/usr/local/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: done.
[dll] sane_init/read_config: reading dll.conf
[dll] add_backend: adding backend `net'
...
[dll] add_backend: adding backend `xerox_mfp'
[dll] sane_open: trying to open `fujitsu:fi-6770dj:1215'
[dll] load: searching backend `fujitsu' in `/usr/local/lib:/usr/local/lib/sane'
[dll] load: trying to load `/usr/local/lib/libsane-fujitsu.so.1'
[dll] load: couldn't open `/usr/local/lib/libsane-fujitsu.so.1' (No such file or directory)
[dll] load: trying to load `/usr/local/lib/sane/libsane-fujitsu.so.1'
[dll] load: dlopen()ing `/usr/local/lib/sane/libsane-fujitsu.so.1'
[dll] init: initializing backend `fujitsu'
[sanei_debug] Setting debug level of fujitsu to 255.
[fujitsu] sane_init: start
[fujitsu] sane_init: fujitsu backend 1.0.133, from sane-backends 1.0.27git
[fujitsu] sane_init: finish
[dll] init: backend `fujitsu' is version 1.0.133
[fujitsu] sane_open: start
[fujitsu] sane_open: no scanners currently attached, attaching
[fujitsu] sane_get_devices: start
[fujitsu] sane_get_devices: reading config file fujitsu.conf
[fujitsu] sane_get_devices: setting "buffer-size" to 65536
[fujitsu] sane_get_devices: looking for 'scsi FUJITSU'
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x1041'
...
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x114a'
[fujitsu] sane_get_devices: config option "buffer-size" (262144) is > 65536, warning!
[fujitsu] sane_get_devices: setting "buffer-size" to 262144
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x114d'
...
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x1174'
[fujitsu] attach_one: start
[fujitsu] attach_one: looking for 'libusb:002:002'
[fujitsu] connect_fd: start
[fujitsu] connect_fd: opening USB device
[fujitsu] wait_scanner: start
[fujitsu] do_usb_cmd: start
...
[fujitsu] do_usb_cmd: finish
[fujitsu] init_inquire: Found FUJITSU scanner fi-6770dj version 03 at libusb:002:002
...
[fujitsu] rs sub call >>
[fujitsu] do_usb_cmd: start
[fujitsu] cmd: writing 31 bytes, timeout 30000
[fujitsu] cmd: >>
[fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C...............
[fujitsu] 010: 00 00 00 03 00 00 00 12 00 00 00 00 00 00 00 ...............
[fujitsu] cmd: wrote 31 bytes, retVal 0
[fujitsu] in: reading 18 bytes, timeout 30000
[fujitsu] in: retVal 0
[fujitsu] in: read 18 bytes
[fujitsu] in: <<
[fujitsu] 000: f0 00 45 00 00 00 00 0a 00 00 00 00 26 00 00 80 ..E.........&...
[fujitsu] 010: 00 3e .>
[fujitsu] stat: reading 13 bytes, timeout 30000
[fujitsu] stat: <<
[fujitsu] 000: 53 00 00 00 00 00 00 00 00 00 00 00 00 S............
[fujitsu] stat: read 13 bytes, retVal 0
[fujitsu] do_usb_cmd: finish
[fujitsu] rs sub call <<
[fujitsu] sense_handler: start
[fujitsu] Sense=0x5, ASC=0x26, ASCQ=00, EOM=1, ILI=0, info=00000000
[fujitsu] Illegal request: invalid field in parm list
[fujitsu] Offending byte is 0x3e
[fujitsu] Window desc block? byte 0x36
[fujitsu] set_window: finish
[fujitsu] sane_start: ERROR: cannot set window
[fujitsu] sane_start: error 4
[dll] sane_cancel(handle=0x20e1300)
[fujitsu] sane_cancel: start
[fujitsu] check_for_cancel: start 0 1
[fujitsu] check_for_cancel: already cancelled
[fujitsu] check_for_cancel: finish 2
[fujitsu] sane_cancel: finish
[dll] sane_close(handle=0x20e1300)
[fujitsu] sane_close: start
[fujitsu] mode_select_buff: start
[fujitsu] do_usb_cmd: start
[fujitsu] cmd: writing 31 bytes, timeout 30000
[fujitsu] cmd: >>
[fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C...............
[fujitsu] 010: 00 00 00 15 10 00 00 0c 00 00 00 00 00 00 00 ...............
[fujitsu] cmd: wrote 31 bytes, retVal 0
[fujitsu] out: writing 12 bytes, timeout 30000
[fujitsu] out: >>
[fujitsu] 000: 00 00 00 00 3a 06 c0 c0 00 00 00 00 ....:.......
[fujitsu] out: wrote 12 bytes, retVal 0
[fujitsu] stat: reading 13 bytes, timeout 30000
[fujitsu] stat: <<
[fujitsu] 000: 53 00 00 00 00 00 00 00 00 00 00 00 00 S............
[fujitsu] stat: read 13 bytes, retVal 0
[fujitsu] do_usb_cmd: finish
[fujitsu] mode_select_buff: finish
[fujitsu] disconnect_fd: start
[fujitsu] disconnecting usb device
[fujitsu] disconnect_fd: finish
[fujitsu] sane_close: finish
[dll] sane_exit: exiting
[dll] sane_exit: calling backend `fujitsu's exit function
[fujitsu] sane_exit: start
[fujitsu] disconnect_fd: start
[fujitsu] disconnect_fd: finish
[fujitsu] sane_exit: finish
[dll] sane_exit: finished

The actual debug output was 14 meg, so I trimmed it a little. Places where I did that are denoted with "...".

I get that the thing that obviously changed is the operating system (Linux Mint 16 to Ubuntu 16.04), but I wouldn't even know where to start to figure out how that's affecting my stuff, and of course, I can't go back, because none of the repositories are storing it, anymore. If anyone can point me in a direction that might help, it would be greatly appreciated.

Thanks

The information contained in this email is proprietary, confidential and only for the use of the intended recipient. If you are not the intended recipient, note that any disclosure, distribution, or copying of this email is strictly prohibited. If you have received this email in error, please destroy it and notify us immediately at the number noted above.
m. allan noah
2017-09-28 00:47:37 UTC
Permalink
You've cut out a bit too much of the log for me to see what is going
on. Perhaps compress a full log and send it to me directly.

allan
Post by Chris Ott
I wrote a scanning program that uses the Sane library eight or nine years
ago, and have been using it happily, since then. A couple of weeks ago, it
occurred to me the machines to which the scanners are connected hadn’t had
their OSes upgraded in at least three years. Unfortunately, upgrading them
broke my program, and I can’t figure out why.
The scanners are Fujitsu fi-6770djs, with both document feeders and
flatbeds. If we stick with the document feeders, everything is fine. If we
scan on the flatbed, then switch back to the document feeder, sane_start
returns SANE_STATUS_INVAL. Restarting the program resets everything and
allows us to use the document feeder, again. Now, I know that when you use
the document feeder, the page dimensions have to be specified with
page-length/page-width, while the flatbed requires tl-x/tl-y/br-x/br-y, and
my program accounts for that.
I tried moving some stuff around so all the options are set right before
sane_start is called (rather than immediately after the user sets them), but
that didn’t help.
I tried previous versions of the Sane library, from 1.0.22 to 1.0.27; didn’t
help.
[sanei_debug] Setting debug level of dll to 255.
[dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.27git
[dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[dll] sane_init/read_dlld: attempting to open directory
`/usr/local/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: using config directory
`/usr/local/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: done.
[dll] sane_init/read_config: reading dll.conf
[dll] add_backend: adding backend `net'
...
[dll] add_backend: adding backend `xerox_mfp'
[dll] sane_open: trying to open `fujitsu:fi-6770dj:1215'
[dll] load: searching backend `fujitsu' in
`/usr/local/lib:/usr/local/lib/sane'
[dll] load: trying to load `/usr/local/lib/libsane-fujitsu.so.1'
[dll] load: couldn't open `/usr/local/lib/libsane-fujitsu.so.1' (No such file or directory)
[dll] load: trying to load `/usr/local/lib/sane/libsane-fujitsu.so.1'
[dll] load: dlopen()ing `/usr/local/lib/sane/libsane-fujitsu.so.1'
[dll] init: initializing backend `fujitsu'
[sanei_debug] Setting debug level of fujitsu to 255.
[fujitsu] sane_init: start
[fujitsu] sane_init: fujitsu backend 1.0.133, from sane-backends 1.0.27git
[fujitsu] sane_init: finish
[dll] init: backend `fujitsu' is version 1.0.133
[fujitsu] sane_open: start
[fujitsu] sane_open: no scanners currently attached, attaching
[fujitsu] sane_get_devices: start
[fujitsu] sane_get_devices: reading config file fujitsu.conf
[fujitsu] sane_get_devices: setting "buffer-size" to 65536
[fujitsu] sane_get_devices: looking for 'scsi FUJITSU'
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x1041'
...
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x114a'
[fujitsu] sane_get_devices: config option "buffer-size" (262144) is > 65536, warning!
[fujitsu] sane_get_devices: setting "buffer-size" to 262144
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x114d'
...
[fujitsu] sane_get_devices: looking for 'usb 0x04c5 0x1174'
[fujitsu] attach_one: start
[fujitsu] attach_one: looking for 'libusb:002:002'
[fujitsu] connect_fd: start
[fujitsu] connect_fd: opening USB device
[fujitsu] wait_scanner: start
[fujitsu] do_usb_cmd: start
...
[fujitsu] do_usb_cmd: finish
[fujitsu] init_inquire: Found FUJITSU scanner fi-6770dj version 03 at libusb:002:002
...
[fujitsu] rs sub call >>
[fujitsu] do_usb_cmd: start
[fujitsu] cmd: writing 31 bytes, timeout 30000
[fujitsu] cmd: >>
[fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C...............
[fujitsu] 010: 00 00 00 03 00 00 00 12 00 00 00 00 00 00 00
...............
[fujitsu] cmd: wrote 31 bytes, retVal 0
[fujitsu] in: reading 18 bytes, timeout 30000
[fujitsu] in: retVal 0
[fujitsu] in: read 18 bytes
[fujitsu] in: <<
[fujitsu] 000: f0 00 45 00 00 00 00 0a 00 00 00 00 26 00 00 80
..E.........&...
[fujitsu] 010: 00 3e .>
[fujitsu] stat: reading 13 bytes, timeout 30000
[fujitsu] stat: <<
[fujitsu] 000: 53 00 00 00 00 00 00 00 00 00 00 00 00 S............
[fujitsu] stat: read 13 bytes, retVal 0
[fujitsu] do_usb_cmd: finish
[fujitsu] rs sub call <<
[fujitsu] sense_handler: start
[fujitsu] Sense=0x5, ASC=0x26, ASCQ=00, EOM=1, ILI=0, info=00000000
[fujitsu] Illegal request: invalid field in parm list
[fujitsu] Offending byte is 0x3e
[fujitsu] Window desc block? byte 0x36
[fujitsu] set_window: finish
[fujitsu] sane_start: ERROR: cannot set window
[fujitsu] sane_start: error 4
[dll] sane_cancel(handle=0x20e1300)
[fujitsu] sane_cancel: start
[fujitsu] check_for_cancel: start 0 1
[fujitsu] check_for_cancel: already cancelled
[fujitsu] check_for_cancel: finish 2
[fujitsu] sane_cancel: finish
[dll] sane_close(handle=0x20e1300)
[fujitsu] sane_close: start
[fujitsu] mode_select_buff: start
[fujitsu] do_usb_cmd: start
[fujitsu] cmd: writing 31 bytes, timeout 30000
[fujitsu] cmd: >>
[fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C...............
[fujitsu] 010: 00 00 00 15 10 00 00 0c 00 00 00 00 00 00 00
...............
[fujitsu] cmd: wrote 31 bytes, retVal 0
[fujitsu] out: writing 12 bytes, timeout 30000
[fujitsu] out: >>
[fujitsu] 000: 00 00 00 00 3a 06 c0 c0 00 00 00 00 ....:.......
[fujitsu] out: wrote 12 bytes, retVal 0
[fujitsu] stat: reading 13 bytes, timeout 30000
[fujitsu] stat: <<
[fujitsu] 000: 53 00 00 00 00 00 00 00 00 00 00 00 00 S............
[fujitsu] stat: read 13 bytes, retVal 0
[fujitsu] do_usb_cmd: finish
[fujitsu] mode_select_buff: finish
[fujitsu] disconnect_fd: start
[fujitsu] disconnecting usb device
[fujitsu] disconnect_fd: finish
[fujitsu] sane_close: finish
[dll] sane_exit: exiting
[dll] sane_exit: calling backend `fujitsu's exit function
[fujitsu] sane_exit: start
[fujitsu] disconnect_fd: start
[fujitsu] disconnect_fd: finish
[fujitsu] sane_exit: finish
[dll] sane_exit: finished
The actual debug output was 14 meg, so I trimmed it a little. Places where I
did that are denoted with “…”.
I get that the thing that obviously changed is the operating system (Linux
Mint 16 to Ubuntu 16.04), but I wouldn’t even know where to start to figure
out how that’s affecting my stuff, and of course, I can’t go back, because
none of the repositories are storing it, anymore. If anyone can point me in
a direction that might help, it would be greatly appreciated.
Thanks
The information contained in this email is proprietary, confidential and
only for the use of the intended recipient. If you are not the intended
recipient, note that any disclosure, distribution, or copying of this email
is strictly prohibited. If you have received this email in error, please
destroy it and notify us immediately at the number noted above.
--
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel
Unsubscribe: Send mail with subject "unsubscribe your_password"
--
"well, I stand up next to a mountain- and I chop it down with the edge
of my hand"
--
sane-devel mailing list: sane-***@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel
Unsubscribe: Send mail with subject "unsubscribe your_password"
Continue reading on narkive:
Loading...