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.
-- 
sane-devel mailing list: sane-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel
Unsubscribe: Send mail with subject "unsubscribe your_password"
             to sane-devel-requ...@lists.alioth.debian.org

Reply via email to