-
Notifications
You must be signed in to change notification settings - Fork 196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't add Canon ipp printer after cups version 2.4.6 #1033
Comments
Also the printer has the latest firmware from Canon. I have had this printer for several years and working with cups |
I had bad filter on the original wireshark capture. I did a new one and now I can also see the error
|
Hmm, the printer-uri is blank on the second request. Investigating... |
Hi, compiled this commit as Fedora RPMs. Now I can add the printer but there is still different problem. There is an error when adding but i get the printer added
The printer is added as RAW and I'm able to change the driver to the "Generic IPP Everywhere Printer" (drv:///cupsfilters.drv/pwgrast.ppd). This flow works with the "old" versions which I tested earlier. However printing test page does not work. Printer cancels the job after receiving it. Log:
I'm not sure if I test this properly. First I compiled RPMs from latest fedora package and only adding the new patch. Then I downloaded cups from this excact commit (2.4.x branch) and replaced the Fedora provided tgz with it. Compiled and installed both variants. Might the other cups related other default fedora packages cause issues with this? I can try to capture what happens if it's helpful. During printing the whole test page is sent via network and wireshark gets very slow and unresponsive when capturing so much traffic. thsark command line works fast but reading the captures with wireshark takes veeeeery long time because of the payload of the page |
@michaelrsweet Should I open a new issue or can we continue with this? I printed a smaller document and captured that. Same as before. Add printer with I assume that
|
We can continue here… |
@hannut another problem is that your printer does not provide "media-col-database" attribute on request (at least wireshark does not show it or ), which is required for IPP Everywhere and AirPrint. This is something which manufacturer has to fix to be AirPrint certified. Please report the issue to Canon - you probably can find some instructions on their webpage. The reason why it works when you set the driver manually is because the driver contains the generic pregenerated data, which would be generated on the fly if the printer provided all requested data. @michaelrsweet I was interested how IPP should work if an unsupported attribute is requested from the destination, and found out the attributes which were requested but are not on the destination are ignored and we return successful-ok... |
@zdohnal If the Printer ignores one or more attributes or values but is otherwise successful, it is supposed to return 'successful-ok-ignored-or-substituted-attributes' with the ignored attributes or values in the unsupported attributes group in the response (so you know what was ignored). Some printers return 'successful-ok' without the requested attributes (wrong), some return a 'client-error-bad-request' status code (also wrong), but we try to work around those issues by querying the "media-col-database" attribute separately if we don't get it the first time. This was the original issue (the second request had a blank "printer-uri"), but it looks like that printer just doesn't support "media-col-database" at all and the cupsd code needs to tolerate that because the PPD generator can still work with "media-supported" and default margins. |
OK, so I'm looking at the capture more closely and am seeing errors in the printer's response - look at the media-col-supported attribute, where in the middle of the list of member attribute names we see a collection value that looks like it is for the media-size-supported attribute? There should be an error before the "PPD creation failed" message for Get-Printer-Attributes. |
I can reproduce the printing issue.
After setting the queue as above:
But I don’t know why does cups send cups-raster-format document to the device on Ubuntu24.04. |
@tangyanli is the installed printer on Debian still raw, or does it have a PPD file generated by IPP Everywhere model? EDIT: scratch that, now I see "After setting as above", so you did the magic by setting existing Generic IPP PPD into existing raw queue, am I correct? |
My reproduce steps on Unbunt24.04:
|
Related to OpenPrinting#1033 PPD generator currently is capable to bypass missing attribute "media-col-database", if attributes "media-size-supported" or "media-supported" are present. Although such devices do not pass any IPP Everywhere or AirPrint certifications, they exist in the wilderness.
@tangyanli can you provide the PPD files for the printer from Debian and Ubuntu, debug logs from both machines (enable debug logs by I don't know if you have the same model as @hannut , but his model claims to support image/urf, so raster format should work (Generic IPP Everywhere Printer PPD enforces raster format). |
Related to OpenPrinting#1033 PPD generator currently is capable to bypass missing attribute "media-col-database", if attributes "media-size-supported" or "media-supported" are present. Although such devices do not pass any IPP Everywhere or AirPrint certifications, they exist in the wilderness.
I am experiencing this same issue with my Canon MF743C running LinuxMint 22 (based upon Ubuntu 24.04) . I also tested when booting live images of both Fedora Cinnamon 40 and LinuxMint Edge (based upon Debian 12) with the same results. The printer just stopped working where it had been working fine the day before. If there is info I can provide to help identify the issues, direct me. Would providing the output of the same commands that @hannut provided be helpful? BTW: I can still access this printer from my Android 14 mobile and from a Windows 11 system. Nothing changed with them so it definitely appears to be limited to CUPS. |
UPDATE |
Before you write the report
Read the REPORTING_ISSUES.md file in the main repository and prepare data mentioned there which looks relevant to you issue.
Describe the bug
Can't add Canon ipp printer after cups version 2.4.6. Tested with all ubuntu versions one by one from 22.04 to 24.04. Mantic is the last one that works. I use Fedora 40 as the daily driver which also does not work.
To Reproduce
Expected behavior
Printer was added
Screenshots
If applicable, add screenshots to help explain your problem.
System Information:
Additional context
I tested with ipptool. this does not work even on older cups versions, however the printer can be added and works when adding with lpadmin and manually changing the driver to generic IPP driver via Gnome printer settings on older versions.
ipptool
I captured traffic with wireshark during the above command. Printer responds and gives IPP parameters, however the ipptool says it did not get any. I will attach the wireshark capture to this report. Same behaviour with older or newer versions of the tested operating systems and cups versions
** Text representation of the reply from printer, whole capture as an attachment **
ipp-canon.zip
The text was updated successfully, but these errors were encountered: