[sane-devel] Error: Canon Pixma MG7550 hangs
Rolf Bensch
rolf at bensch-online.de
Fri Aug 21 10:06:16 UTC 2015
Hi All,
My last commits should have fixed this issue.
Cheers,
Rolf
Am 04.04.2015 um 00:07 schrieb Rolf Bensch:
> Hi All,
>
> Sorry for my late response. And sorry again, I'm very busy on my new
> job and I can only sometimes look into the mailing list. It's more
> secure to set me on cc, if you want to address me.
>
> It seems that we have a general problem in the Pixma backend. During
> the past months, several people reported timeouts resp. hang problems
> with their scanners.
>
> I also had such problems with my new USB3 card, but as I found time to
> solve this problem, it has been gone by itself...
>
> Now let's start with troubleshooting.
>
> (1) Please try different frontends, if you have problems with
> scanning. Some users reported problems with scanimage, but xsane is
> working.
>
> (2) If you're checking USB scanning, always switch off | disable |
> disconnect all ethernet | WiFi connections from your scanner.
>
> (3) If you're checking ethernet | WiFi connection, always disconnect
> USB from your scanner. And don't mix ethernet and WiFi.
>
> (4) What's the lastest status of USB only scanning from flatbed? This
> is the base function and should always run without any problems.
>
> (5) If flatbed scans are running and if you have problems with adf, we
> need to check the usb protocols. Please create log files for single
> page and 2-page scans with 'export SANE_DEBUG_PIXMA=11'. And to reduce
> log files sizes, please scan only small image areas of about 5mm x
> 5mm. Background: All pages are scanned in one scan session. We need to
> check if the scan session will be closed after the last page resp.
> after detecting paper empty with 10s timeout.
>
> I prepared 2 patches for you, if your scanner hangs at the end of a
> scan. Or if your scanner doesn't want to scan a 2nd time without
> repowering. Exclude item (5). Please try only one patch at one time,
> and revoke it before you want to try the other one.
>
> (6) I found an old patch, I got about 3 years ago as a bug fix
> (3c5cc2a). There is an EOF declared as an error! The original patch
> was for USB only, but has been extended for all protocols with a later
> patch. Attached patch file pixma_io_sanei.c.patch revokes the old patches.
>
> (7) Due to the reported issue that sometimes xsane is working and
> scanimage doesn't, I found out that the method mp150_finish_scan() in
> pixma_mp150.c will be called twice: (a) At the end of the scan and (b)
> called from scanimage (I didn't investigated other frontends than
> scanimage). Existing code can create communication problems with the
> scanner, if calling (b) is faster than (a) is ready. I'm not sure, if
> this could really happen. Attached patch file pixma_mp150.c.patch
> fixes this issue. I also prepared a patch file for the Pixma CCD
> scanners (pixma_mp810.c.patch).
>
> Please report your results and|or respond your suggestions.
>
> Cheers,
> Rolf
>
>
>
> Am 03.03.2015 um 22:49 schrieb Troels Thomsen:
>> Hi Martin,
>>
>> Good work Martin!
>> Any missing commands would be a smoking gun imho.
>>
>> Rolf, are you following this thread ?
>>
>> /Troels
>>
>>
>>
>> 2015-02-24 23:09 GMT+01:00 Martin <martin.gu at intergga.ch
>> <mailto:martin.gu at intergga.ch>>:
>>
>> Troels
>>
>> I don't have access to another computer. But I have installed
>> OpenSUSE 13.2
>> and the result is the same as on 13.1.
>> I did not (yet) test with short delays between the commands, but
>> I compared
>> the communication of the Canon software scangear on Windows with
>> the one of
>> SANE:
>>
>> At start ScanGear sends the following (linebreaks added by me):
>> <?xml version="1.0" encoding="utf-8" ?>
>> <cmd xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/common/"
>> xmlns:vcn="http://www.canon.com/ns/cmd/2008/07/canon/">
>> <ivec:contents><ivec:operation>VendorCmd</ivec:operation>
>> <ivec:param_set servicetype="scan">
>> <ivec:jobID> </ivec:jobID>
>> <vcn:ijoperation>ModeShift</vcn:ijoperation>
>> <vcn:ijmode>1</vcn:ijmode>
>> </ivec:param_set>
>> </ivec:contents>
>> </cmd>
>>
>> response:
>> <?xml version="1.0" encoding="utf-8" ?>
>> <cmd xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/common/"
>> xmlns:vcn="http://www.canon.com/ns/cmd/2008/07/canon/">
>> <ivec:contents>
>> <ivec:operation>VendorCmdResponse</ivec:operation>
>> <ivec:param_set servicetype="scan">
>> <ivec:response>OK</ivec:response>
>> <ivec:response_detail/>
>> <vcn:ijoperation>ModeShiftResponse</vcn:ijoperation>
>> <vcn:ijresponse>OK</vcn:ijresponse>
>> <vcn:ijresponse_detail/>
>> </ivec:param_set>
>> </ivec:contents>
>> </cmd>
>>
>> ScanGear starts a scan with the following command sequece:
>> <?xml version="1.0" encoding="utf-8" ?>
>> <cmd xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/common/">
>> <ivec:contents>
>> <ivec:operation>StartJob</ivec:operation>
>> <ivec:param_set servicetype="scan">
>> <ivec:jobID>00000001</ivec:jobID>
>> <ivec:bidi>1</ivec:bidi>
>> </ivec:param_set>
>> </ivec:contents>
>> </cmd>
>>
>> response:
>> <?xml version="1.0" encoding="utf-8" ?>
>> <cmd xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/common/">
>> <ivec:contents>
>> <ivec:operation>StartJobResponse</ivec:operation>
>> <ivec:param_set servicetype="scan">
>> <ivec:response>OK</ivec:response>
>> <ivec:response_detail/>
>> <ivec:jobID>00000001</ivec:jobID>
>> </ivec:param_set>
>> </ivec:contents>
>> </cmd>
>>
>> command:
>> <?xml version="1.0" encoding="utf-8" ?>
>> <cmd xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/common/"
>> xmlns:vcn="http://www.canon.com/ns/cmd/2008/07/canon/">
>> <ivec:contents>
>> <ivec:operation>VendorCmd</ivec:operation>
>> <ivec:param_set servicetype="scan">
>> <ivec:jobID>00000001</ivec:jobID>
>> <vcn:ijoperation>ModeShift</vcn:ijoperation>
>> <vcn:ijmode>1</vcn:ijmode>
>> </ivec:param_set>
>> </ivec:contents>
>> </cmd>
>>
>> response: some data
>>
>> command:
>> <?xml version="1.0" encoding="utf-8" ?>
>> <cmd xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/common/">
>> <ivec:contents>
>> <ivec:operation>EndJob</ivec:operation>
>> <ivec:param_set servicetype="scan">
>> <ivec:jobID>00000001</ivec:jobID>
>> </ivec:param_set>
>> </ivec:contents>
>> </cmd>
>>
>> response:
>> <?xml version="1.0" encoding="utf-8" ?>
>> <cmd xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/common/">
>> <ivec:contents>
>> <ivec:operation>EndJobResponse</ivec:operation>
>> <ivec:param_set servicetype="scan">
>> <ivec:response>OK</ivec:response>
>> <ivec:response_detail/>
>> <ivec:jobID>00000001</ivec:jobID>
>> </ivec:param_set>
>> </ivec:contents>
>> </cmd>
>>
>> SANE does not send the VendorCmd. Do you think incorporating the
>> missing
>> command sequence could solve the issue? I do not want to damage
>> my MG7550 with
>> wrong commands, that's why I am reluctant to experiment with
>> code-changes.
>>
>> Many thanks for your help
>> Martin
>>
>> Am Sonntag, 11. Januar 2015, 14.52:06 schrieb Troels Thomsen:
>> > Martin,
>> > ad 1)
>> > I'm sorry I have no understanding of the protocol what so ever,
>> and have
>> > spent max œ hour in the code, to see what the patches I was
>> sent, did.
>> > ad 2)
>> > I agree , this IS strange ...
>> > ad 3)
>> > I agree , this IS strange ...
>> > ad 4)
>> > Frankly, you have so many strange phenomenons going on, so ...
>> you could
>> > try....
>> > (not that this a satisfactory solution at all...)
>> >
>> > At this point, I think I would try to test it on another
>> computer, to see
>> > if all these really strange phenomenons (e.g. 'enabling
>> Ethernet on the
>> > device, makes usb scanning work' ) somehow is related to
>> hardware or the
>> > Linux installation. Just to make sure....
>> >
>> > Sorry, its not much help.
>> >
>> > /Troels
>> >
>> > 2015-01-07 23:26 GMT+01:00 Martin <martin.gu at intergga.ch
>> <mailto:martin.gu at intergga.ch>>:
>> > > Troels
>> > >
>> > > I agree with you, we have to be careful on the test methodology.
>> > > My knowledge in c is limited since I wrote my last c-program
>> about 20
>> > > years
>> > > ago. But I could try.
>> > > But before trying to modify the source code I have some
>> questions:
>> > >
>> > > 1) Did you analyze the USB-calls of the Canon-software on
>> windows and
>> > > compare
>> > > them to the SANE-sequence? What is the meaning of the first
>> sequece 55 53
>> > > 42
>> > > 43 F0 36 04 0B...?
>> > >
>> > > 2) What is the difference between scanimage and xsane? Is it
>> only the
>> > > timing?
>> > >
>> > > 3) What is the difference between xsane and the gimp plugin?
>> Is it only
>> > > the
>> > > timing? Why does the gimp plugin only work after xsane?
>> > >
>> > > 4) Would it be worth while to make a few tests with the
>> printer mode, i.e.
>> > > to
>> > > try to start xsane after printing?
>> > >
>> > > Martin
>> > >
>> > > > > If the scanner does not work on a USB port it is quite
>> unlikely to
>> > > > > work
>> > > > > over the network: the bjnp network code just carries the
>> USB exchange
>> > > > > over IP.
>> > > >
>> > > > I mostly agree, though Rolf asks specifically for the USB
>> trace, because
>> > > > (as I understood) it differs slightly from the IP traces I
>> had already
>> > > > submitted.
>> > > > (fix usb first , then patch it for IP, if need be)
>> > > >
>> > > > One advice:
>> > > > Be very paranoid on your test methodology. I looked stupid
>> a couple of
>> > > > times (sorry Rolf!), because I was fooled by the USB
>> interface and/or
>> > > > the
>> > > > Canon firmware.
>> > > > When testing a new patch, I tried some settings in random
>> (DPI ,
>> > > > colour/black-n-white etc) and reported the success/failures.
>> > > > BUT the thing is, that the Canon MF8230 firmware can go
>> into bad-mode,
>> > >
>> > > when
>> > >
>> > > > it has received some strange commands, and the following
>> scans might
>> > > > work
>> > > > slightly strange for that reason. I was even fooled by the
>> phenomenon,
>> > >
>> > > that
>> > >
>> > > > scanning a 1 by 1 cm square works, but scanning the whole
>> A4 didn't.
>> > >
>> > > (Well
>> > >
>> > > > ... there WERE some differences between what worked through
>> USB and IP
>> > > > at
>> > > > this point in time. I'm guessing it was something
>> timing-critical, but I
>> > > > never dissected that last patch from Rolf which fixed it)
>> > > >
>> > > > So I started rebooting the scanner whenever I was in doubt.
>> > > > (disconnect/connect the USB interface plus move Cannon unit
>> from to
>> > > > "printer mode" and back to "scanner mode" was normally enough)
>> > > >
>> > > >
>> > > > So what do we do? / What is status?
>> > > >
>> > > > Since scanning CAN work , one could argue the back-end DOES
>> send all the
>> > > > necessary+correct commands to the printer.
>> > > > If timing is the critical parameter (backed by the fact
>> that something
>> > > > as
>> > > > stupid as enabling IP on the printer-side, suddenly makes
>> it work now
>> > > > and
>> > > > then), maybe we should try to insert an ugly time-delay
>> before every USB
>> > > > write? If that changes anything to the better, we can start
>> to hunt down
>> > > > where it is really necessary, and hopefully find a nicer
>> approach
>> > > > afterwards?
>> > > >
>> > > > Martin, are you comfortable with pulling the code out of
>> the GIT
>> > > > repository, compile , install and experiment with inserting
>> delays?
>> > > > I think there is something called "SANE interface USB"
>> sanei_usb.c/h.
>> > >
>> > > That
>> > >
>> > > > was maybe a place to start.
>> > > >
>> > > > Louis, what is the odds of success for this approach?
>> > > >
>> > > > :-)
>> > > >
>> > > > /Troels
>> > > >
>> > > > 2015-01-03 20:43 GMT+01:00 Martin <martin.gu at intergga.ch
>> <mailto:martin.gu at intergga.ch>>:
>> > > > > Am Samstag, 3. Januar 2015, 11.16:10 schrieb Louis Lagendijk:
>> > > > > > On Fri, 2015-01-02 <tel:2015-01-02> at 22:59 +0100,
>> Martin wrote:
>> > > > > > > Hi Troels
>> > > > > > >
>> > > > > > > > *Is it USB3 (on the computer)?
>> > > > > > >
>> > > > > > > no, it is USB2
>> > > > > > >
>> > > > > > > > *Do you have access to another computer, where you
>> can try it -
>> > >
>> > > Does
>> > >
>> > > > > it
>> > > > >
>> > > > > > > > work excactly the same strange way ... ?
>> > > > > > >
>> > > > > > > No,I don't have access to another computer. But I
>> have also
>> > >
>> > > Windows 7
>> > >
>> > > > > > > installed. With Windows 7 and the Canon-software it
>> works OK.
>> > > > > > >
>> > > > > > > > *Does unit have ethernet connection / can you try
>> that way?
>> > > > > > >
>> > > > > > > Yes. With the ethernet connection the printer works.
>> Thus the
>> > > > >
>> > > > > IP-address
>> > > > >
>> > > > > > > below is correct.
>> > > > > > > But I cannot access the scanner.
>> > > > > > >
>> > > > > > > xsane pixma:MG7500_192.168.0.3
>> > > > > > >
>> > > > > > > results in the error message "illegal argument". Same
>> thing with
>> > > > > > >
>> > > > > > > scanimage --help -d bnjp://192.168.0.3:8612
>> <http://192.168.0.3:8612>
>> > > > > >
>> > > > > > Hi Martin
>> > > > > > If the scanner does not work on a USB port it is quite
>> unlikely to
>> > >
>> > > work
>> > >
>> > > > > > over the network: the bjnp network code just carries
>> the USB
>> > > > > > exchange
>> > > > > > over IP.
>> > > > > > Anyhow, you can find the name with scanimage -L (but
>> make sure that
>> > >
>> > > port
>> > >
>> > > > > > 8612 is not blocked by a firewall (see the man-page for
>> sane-pixma
>> > > > > > in
>> > > > > > the latest sources from GIT. you need to enable port
>> 8612 for both
>> > > > > > incoming and outgoing traffic.
>> > > > > >
>> > > > > > Louis
>> > > > >
>> > > > > Hi Louis
>> > > > >
>> > > > > The necessary ports on the firewall are open, yet
>> scanimage -L does
>> > > > > not
>> > > > > find
>> > > > > the scanner.
>> > > > >
>> > > > > But this lead to another discovery:
>> > > > > I enabled LAN on the MG7550. And although the unit is
>> connected via
>> > >
>> > > USB 2
>> > >
>> > > > > xsane sometimes works?! But with LAN disabled xsane never
>> works
>> > > > > without
>> > > > > prior
>> > > > > scanimage -T. And once xsane or scanimage -T failed all
>> succeeding
>> > >
>> > > calls
>> > >
>> > > > > fail
>> > > > > until the scanner is switched off and on again.
>> > > > >
>> > > > > Log of xsane working:
>> > > > > [sanei_debug] Setting debug level of pixma to 21.
>> > > > > [pixma] pixma is compiled with pthread support.
>> > > > > [pixma] pixma version 0.17.13
>> > > > > [pixma] pixma_collect_devices() found Canon PIXMA MG7500
>> Series at
>> > > > > libusb:001:007
>> > > > > [pixma] pixma_find_scanners() found 1 devices
>> > > > > [pixma] pixma_collect_devices() found Canon PIXMA MG7500
>> Series at
>> > > > > libusb:001:007
>> > > > > [pixma] pixma_open(): Canon PIXMA MG7500 Series
>> > > > > [pixma] *mp150_open***** This is a generation 4 scanner.
>> *****
>> > > > > [pixma] [pixma] Reader task id=139772037314304 (threaded)
>> > > > > Reader task started
>> > > > > [pixma]
>> > > > > [pixma] pixma_scan(): start
>> > > > > [pixma] line_size=4605 image_size=4895115 channels=3
>> depth=8
>> > > > > [pixma] dpi=300x300 offset=(0,0) dimension=1535x1063
>> > > > > [pixma] gamma_table=0x1f201e0 source=0
>> > > > > [pixma] threshold=127 threshold_curve=0
>> > > > > [pixma] ADF page count: 0
>> > > > > [pixma] OUT T=58.770 len=288
>> > > > > [pixma] 00000000:3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e
>> 3d 22 31
>> > > > > [pixma] 00000010:2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d
>> 22 75 74
>> > > > > ...
>> > > > > Log of xsane not working:
>> > > > > pixma] pixma_collect_devices() found Canon PIXMA MG7500
>> Series at
>> > > > > libusb:001:008
>> > > > > [pixma] pixma_find_scanners() found 1 devices
>> > > > > [pixma] pixma_collect_devices() found Canon PIXMA MG7500
>> Series at
>> > > > > libusb:001:008
>> > > > > [pixma] pixma_open(): Canon PIXMA MG7500 Series
>> > > > > [pixma] *mp150_open***** This is a generation 4 scanner.
>> *****
>> > > > > [pixma] INTR T=1.249 len=32
>> > > > > [pixma] 00000000:00 00 00 01 00 00 00 00 00 00 00 00 00
>> 00 00 00
>> > > > > [pixma] 00000010:00 00 00 00 00 00 00 00 00 00 00 00 00
>> 00 00 00
>> > > > > [pixma]
>> > > > > [pixma] Sending time: '15/01/03 15:32'
>> > > > > [pixma] OUT T=1.250 len=36
>> > > > > [pixma] 00000000:eb 80 00 00 00 00 00 00 00 00 00 00 00
>> 00 00 14
>> > > > > [pixma] 00000010:31 35 2f 30 31 2f 30 33 20 31 35 3a 33
>> 32 00 00
>> > > > > [pixma] 00000020:00 00 00 53
>> > > > > [pixma]
>> > > > > [pixma] IN T=21.251 len=-9
>> > > > > [pixma] ERROR: ETIMEDOUT
>> > > > > [pixma]
>> > > > > ...
>> > > > >
>> > > > > Martin
>> > > > >
>> > > > >
>> > > > > --
>> > > > > sane-devel mailing list:
>> sane-devel at lists.alioth.debian.org
>> <mailto:sane-devel at 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-request at lists.alioth.debian.org
>> <mailto:sane-devel-request at lists.alioth.debian.org>
>> > >
>> > > --
>> > > sane-devel mailing list: sane-devel at lists.alioth.debian.org
>> <mailto:sane-devel at 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-request at lists.alioth.debian.org
>> <mailto:sane-devel-request at lists.alioth.debian.org>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20150821/b407e654/attachment-0001.html>
More information about the sane-devel
mailing list