It looks like it is returning whatever packet size that the scanner has available at the time. I figured out the packet size returned isn't dependent on what installation of SANE I use.
#KODAK ESP OFFICE 2150 ERROR 0X80131700 DRIVER#
The USB driver would be free to break this up into smaller requests as it sees fit, depending on bus traffic, etc. Mine reports 0200, which I think is in hex and indicating 512K. The 2-4 will be the port # you have it plugged into, the zero in 1.0 and the endpoint numbers may vary since it is a different model. You can get the max packet size for the device under that directory tree too, on mine it's the files: It should say 480 if you are connected to a hi-speed port or 12 for a full-speed port. I think I'm going to see if I have a machine with an older 1.x USB port on it and see how it runs on it. I haven't been able to pin down an exact test case yet because the scan size doesn't seem to be an exact multiple of the number of pixels. The scanner seems to hang on the "Scanning…" screen when you don't read past the end of the data stream. It might be necessary to call mc_recv again with a size of 1 byte or something like that in this case.
#KODAK ESP OFFICE 2150 ERROR 0X80131700 CODE#
There is also a potential problem with the patched code if the scan size is a multiple of 64K. Not sure if this is a compile-time option with SANE or what. The problem with relying on the returned packets to be 64K would not affect the scan then on the version of sane that I got from my package manager. The package-managed sane library on my system gives the requested 64K size. For some reason, this returns 32K packets, even when you request 64K packets. The issue with 32K vs 64K packets was only in the version of the scanimage program that got compiled with the kodakaio project. I think it may have been adding a byte to all but the last read before. The key change that made it start working on my end was adding one byte to the request size sent to sanei_usb_read_bulk, but only on the last read.
Is it possible I missed a step trying to tie the AIO library into the original sane install? Yet /usr/local/bin/scanimage works perfectly. Scanimage (sane-backends) 1.0.22 backend version 1.0.22 Sane_kodakaio_get_devices: found scanner libusb:002:006 Sane_kodakaio_get_devices: found 1 scanner(s) Mc_discover_capabilities: added adf to listĮnd of mc_discover_capabilities, status:Success
Mc_set_model: model is 'KODAK ESP Office 2150 Series' If I run /usr/bin/scanimage (linked to the original SANE), I get this as debug output: Setting debug level of kodakaio to 128.Īttach_one_config: len = 17, line = snmp-timeout 1500Īttach_one_config: SNMP timeout set to 1500Īttach_one_config: len = 22, line = scan-data-timeout 7000Īttach_one_config: Scan data timeout set to 7000Īttach_one_config: len = 20, line = request-timeout 5000Īttach_one_config: Request timeout set to 5000Īttach: devname = libusb:002:006, type = 1įound valid Kodak Aio scanner: 0x40a/0x4059 (vendorID/productID) To get the kodak machine to show up in the scanner list for Simple Scan, I did this:ġ) Soft link from all of the /usr/local/lib/sane/kodak files to /usr/lib64Ģ) Edit /etc/sane.d/dll.conf and add a line for kodakaio after kodakĪt this point I see it in Simple Scan, but when I scan I get an I/O error. My Simple Scan seems to be linked to the original SANE installation under /usr/lib64. I can use the scanimage program installed under /usr/local/bin to successfully test the scanner.