Closed tangyanli closed 3 years ago
Some additional information, MF745C has 3 interfaces. I guess Interface 0 is for scanner, interface 1 is for printer and interface 2 is for fax. And Interface 0 has three endpoints, interface 1 has two endpoints.
08-03-2021 18:39:49: Config Interface Alt Class SubClass Proto
08-03-2021 18:39:49: 1 0 0 255 0 255
08-03-2021 18:39:49: * 1 0 1 7 1 4
08-03-2021 18:39:49: 1 1 0 7 1 2
08-03-2021 18:39:49: * 1 1 1 7 1 4
08-03-2021 18:39:49: 1 2 0 7 1 2
Bus 001 Device 012: ID 04a9:27fa Canon, Inc. MF745C/746C
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x04a9 Canon, Inc.
idProduct 0x27fa
bcdDevice 0.00
iManufacturer 1 Canon
iProduct 2 MF745C/746C
iSerial 3 f4a997cf9d6c
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0083
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 255
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 11
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 4
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 4
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x0016
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000006
BESL Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 9 micro seconds
bU2DevExitLat 130 micro seconds
Hi Tess,
glad to hear from you again :-)
Looks like Canon printer driver does something which causes firmware to loose synchronization with the IPP over USB "session", which causes ipp-usb
to fail.
Which I can definitely tell, after reading the log you've supplied, is that ipp-usb
and Canon printer driver use different USB interfaces, so it is not interference of commands sent by ipp-usb
and printer driver to the same interface, but rather a side effect or some command that Canon driver has sent to its interface.
This is unlikely that it can be somehow fixed in the ipp-usb
Hi, Alexander:
Glad to receive from you again :)
Then I give up to configure the “usb-max-interfaces”.
Hi, Alexander:
This is only a query, not issue.
I saw you added the "usb-max-interfaces" configuration, although you say it is quirks for "HP ScanJet Pro 4500 fn1". But I want to use airscan + Canon printer driver concurrently (As I said in the https://github.com/alexpevzner/sane-airscan/issues/68#issuecomment-717829682), so I think it is a chance for me.
I did test: Add below setting in /usr/share/ipp-usb/quirks/default.conf
After plug the USB printer, I first test airscan, it works well. Then I add the Canon printer driver whose device uri is "usb://Canon/MF745C/746C%20UFR%20II?serial=f4a997cf9d6c&interface=1", it can also print. But after printing, the airscan cannot work. I use below command to test the printer, it has no response.
curl http://localhost:60000/eSCL/ScannerCapabilities
Then I unplug and re-plug the USB printer, the airscan can work again.
I cannot guess the reason, is it the printer's issue or can ipp-usb fix it?
04a9-27fa-f4a997cf9d6c-Canon-MF745C-746C.log