[sane-devel] imageCLASS MF4570dw tester available for two days

Olaf Meeuwissen olaf.meeuwissen at avasys.jp
Thu Dec 26 09:16:45 UTC 2013

Yuval Levy writes:

> On 12/25/2013 07:04 PM, Olaf Meeuwissen wrote:
>> I'm completely stumped as to why you only see four files there.  There
>> should be close to 80!
> There are close to 80, I just limited the grep command to see those
> files that start with canon only.  Trying to stay relevant.
>>> the stock 'buntu one.  I only built and installed the sane-backends from
>>> git.
>> Eh, how did you configure that build?  Did it by any change zap or
>> clobber bits and pieces from the stock 'buntu libsane package you
>> installed?
> Plain and simple:
> tar xvfz sane-backends-*.tar.gz
> cd sane-backends-*
> ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
> make
> sudo make install
> the result:
> $ scanimage -V
> scanimage (sane-backends) 1.0.25git; backend version 1.0.23
> $
> I do not think it clobbered anything from the stock 'buntu, I am still
> able to scan easily with my Brother multi-function (over the network).

As Gernot already said: that is not plain and not simple.

It clobbered just about everything from the 'buntu sane-backends binary
packages you installed (libsane, libsane-common and maybe sane-utils).
IIUC, your Brother device is supported by a SANE backend that is *not*
part of sane-backends.

You would have done better by just using ./configure without any options
and then use what got installed below /usr/local/ where self-respecting
distributions do nothing but add/remove empty directories.

Personally, I often ./configure --prefix=/tmp in order to test.  That
does mean I have to set a couple of environment variables but that is no
big deal, for me at least.

>>> I added the following lines (based on the sane-find-scanner output):
>>> # MF4570dw
>>> usb 0x04a9 0x275a
>> Hmm, according to the SANE supported devices info[1], this scanner is
>> supported (though untested) by the pixma backend.
> Yes, I saw that, but check the debugging output below with and without
> the line.  Sorry for the long output.
>>   SANE_DEBUG_DLL=128 scanimage -L
> $ SANE_DEBUG_DLL=128 scanimage -L
[snip, I didn't catch anything out of the ordinary]

>> to make sure the dll backend finds and loads the right backends.  If you
>> think the canon_dr one is the one you need (note: I don't), then
>>   SANE_DEBUG_CANON_DR=128 scanimage -L
> First without my edits to /etc/sane.d/canon_dr.conf
> $ SANE_DEBUG_CANON_DR=128 scanimage -L
[snip, canon_dr backend tries all devices known to be supported]

> and now with the edit to /etc/sane.d/canon_dr.conf

You now tell the canon_dr backend to probe the MF4750fw without any clue
as to whether the backend supports it or not.  It tries to talk to the
device and gets an unexpected reply.  It tries three times before giving
up.  No surprise here, assuming the device is not supported.

If you had added that configuration file line to the epson2 backend, you
would have seen something similar.  Don't try, sending "random" packets
to a device _might_ have bad side effects (as in damage the device).

> $ SANE_DEBUG_CANON_DR=128 scanimage -L
> [snip]
> [canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x275a'
> [canon_dr] attach_one: start
> [canon_dr] attach_one: looking for 'libusb:001:005'
> [canon_dr] connect_fd: start
> [canon_dr] connect_fd: opening USB device
> [canon_dr] wait_scanner: start
> [canon_dr] do_usb_cmd: start
> [canon_dr] cmd: writing 24 bytes, timeout 500
> [canon_dr] cmd: >>
> [canon_dr] 000: 00 00 00 14 00 01 90 00 00 00 00 00 00 00 00 00
> ................
> [canon_dr] 010: 00 00 00 00 00 00 00 00                         ........
> [canon_dr] cmd: wrote 24 bytes, retVal 0
> [canon_dr] stat: reading 4 bytes, timeout 500
> [canon_dr] stat: read 2 bytes, retval 0
> [canon_dr] stat: <<
> [canon_dr] 000: 15 15                                           ..
> [canon_dr] stat: clearing short 4/2
> [canon_dr] do_usb_clear: start
> [canon_dr] do_usb_clear: clear halt
> [canon_dr] do_usb_clear: finish with io error
> [canon_dr] stat: bad RS status, 9
> [canon_dr] WARNING: Brain-dead scanner. Hitting with stick
> [rinse and repeat]
> [canon_dr] wait_scanner: error 'Error during device I/O'
> [canon_dr] wait_scanner: finish
> [canon_dr] connect_fd: could not wait_scanner
> [canon_dr] disconnect_fd: start
> [canon_dr] disconnecting usb device
> [canon_dr] disconnect_fd: finish
> [canon_dr] connect_fd: finish
> [canon_dr] sane_get_devices: found 0 scanner(s)
> [canon_dr] sane_get_devices: finish

Maybe you will have more luck with the pixma backend.  At least that
backend is _believed_ to support the device, it's just that nobody has
reported back on whether it actually does.

>> Let's get it recognized over USB first.  Network is another can of
>> worms (if that doesn't work but USB does).
> sure, I am here to test for the project.  Going to sleep right now, will
> have another look at this tomorrow morning, before packing the family
> and driving away.  Next time I will see this Canon machine will be in
> three months, maybe even longer.  My learning from this experience is
> that I will keep recommending Brothers devices.  My father-in-law just
> could not resist the good price of the Canon.

I'll be around tomorrow morning (Japanese time), but after that I won't
be around until January 6.

Hope this helps,
Olaf Meeuwissen, LPIC-2           FLOSS Engineer -- AVASYS CORPORATION
FSF Associate Member #1962               Help support software freedom

More information about the sane-devel mailing list