OpenPrinting / cups-filters

filters, backends, driverless utility, ... - Everything which CUPS 2.x needs to be used on non-Mac systems
Apache License 2.0
157 stars 125 forks source link

Can't add Canon MG4120 anymore (cups-filters 1.20.0) #22

Closed P3p1t0 closed 4 years ago

P3p1t0 commented 6 years ago

I use Print Setting (system-config-printer) in order to add printers.

When I try to add my printer by automatic detection, it just fails with "server-error-internal-error". Normally, it should add my printer and use driverless for printing. This GUI tool always chooses driverless by default when you use automatic detection; it doesn't let you choose between driverless and something else.

It worked perfectly with previous of cups-filters, including 1.18.0 and 1.19.0. I got this issue when I updated to 1.20.0. I could add my printer and use driverless for it with previous versions of cups-filters.

A workaround I found in order to add my printer with system-config-printer is to manually add the printer, then manually select Gutenprint. Trying to add the printer manually with driverless instead of Gutenprint results in the same error I get when I try to add it by automatic detection.

Trying to add the printer with the Web interface (localhost:631) using driverless ends up with an error too : "unable to add error : unable to copy PPD file." However, adding the printer with the Web interface using Gutenprint works fine.

Here's a typical log output from /var/log/cups/error_log I get when I try to add my printer with driverless in general.

E [04/Feb/2018:20:58:30 -0500] [cups-deviced] PID 5959 (gutenprint52+usb) stopped with status 1!
E [04/Feb/2018:20:58:44 -0500] [CGI] Unable to create PPD file: Printer does not support required IPP attributes or document formats.
E [04/Feb/2018:20:58:47 -0500] [CGI] Unable to create PPD file: Printer does not support required IPP attributes or document formats.
E [04/Feb/2018:20:58:47 -0500] copy_model: empty PPD file
E [04/Feb/2018:20:58:47 -0500] [Client 118] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Canon-MG4100-series) from localhost
E [04/Feb/2018:20:58:47 -0500] [CGI] Unable to create PPD file: Printer does not support required IPP attributes or document formats.
E [04/Feb/2018:20:58:47 -0500] copy_model: empty PPD file
E [04/Feb/2018:20:58:47 -0500] [Client 122] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Canon-MG4100-series) from localhost

Hope you can do something about it.

Reported about the issue on Manjaro forum https://forum.manjaro.org/t/stable-update-2018-02-03-kernels-libreoffice-browsers-thunderbird-php-haskell/39663/68 https://forum.manjaro.org/t/testing-update-2018-02-08-kernels-browsers-plasma-gcc-nvidia-systemd/40022/29 https://forum.manjaro.org/t/testing-update-2018-02-15-kernels-firefox-dev-bluez-haskell-python/40450/13

My config Manjaro Cinnamon 17.1.5 (Testing branch, issue noticed on Stable branch too) Canon Pixma MG4120 wireless printer (using Avahi for mDNS zeroconf and service discovery, which is compatible with my printer for Wi-Fi printing) CUPS 2.2.6 cups-filters 1.20.0 (worked fine with previous version such as 1.18.0 and 1.19.0) system-config-printer 1.5.11 (had the same issue with 1.5.9)

tillkamppeter commented 6 years ago

Please run the following command:

driverless

This will output the URI of your printer. Does it do so? Then run the following command:

ipptool -tv URI get-printer-attributes.test > ipp-attrs.txt

Replace URI by yoiur printer's URI which you obtained with the first command. Please attach the resulting ipp-attrs.txt file to this issue. Thanks.

tillkamppeter commented 6 years ago

Also run the command

driverless URI > printer.ppd.txt

with the URI from above. Please attach printer.ppd.txt to this issue and also post all screen output of the command.

P3p1t0 commented 6 years ago

1. driverless

I got the adress of my printer. No problem here.

2. ipptool -tv ipp://D3BFBB000000.local:631/ipp/printer get-printer-attributes.test > ipp-attrs.txt

Here's the ipp-attrs.txt text file generated by this command. ipp-attrs.txt

3. driverless ipp://D3BFBB000000.local:631/ipp/printer > printer.ppd.txt

The printer.ppd.txt file is completely empty. This command gave me the following output.

ERROR: Unable to create PPD file: Printer does not support required IPP attributes or document formats

wifiprintguy commented 6 years ago

It might be good for "driverless" to have an accompanying "driverless.test" file that can list its expected IPP attributes and PASS or FAIL so that its dependencies are more obvious...

tillkamppeter commented 6 years ago

@wifiprintguy, this was also my idea when I looked into the attributes file of the OP yesterday, because I did not see anything broken in it. The driverless.test file needs to generate exactly the same IPP request as the cups-filters utilities use for the PPD generator. The change from cups-filters 1.19.0 to 1.20.0 is that the PPD generator is updated to the same functionality of the one of CUPS and there now extraction of paper sizes from "media-col-database" is supported and I have seen that the get-printer-attributes.test does not extract "media-col-database". It is possible that the "media-col-database" entry of this printer is buggy and we do not see it.

wifiprintguy commented 6 years ago

In the "get-printer-attributes.test" from CUPS (usually in something like /usr/share/cups/ipptool/) the Get-Printer-Attributes request doesn't include a "requested-attributes" operation attribute. Without that, as per PWG 5100.11 section 10.7, the Printer should NOT return "media-col-database" unless it is explicitly requested, like so:

GROUP operation
ATTR charset attributes-charset utf-8
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
ATTR keyword requested-attributes printer-defaults,printer-description,media-col-database

So at least that problem is likely not the Printer's fault.

tillkamppeter commented 6 years ago

Please download this test file get-printer-attributes-2.0.test.txt and rename it:

mv get-printer-attributes-2.0.test.txt get-printer-attributes-2.0.test

then run, with your printer's URI:

ipptool -tv ipp://D3BFBB000000.local:631/ipp/printer ./get-printer-attributes-2.0.test > ipp-attrs-2.txt

and attach ipp-attrs-2.txt. Thanks.

P3p1t0 commented 6 years ago

Here's the ipp-attrs-2.txt file.

ipp-attrs-2.txt

tillkamppeter commented 6 years ago

I have looked into your printer's new attributes file and it seems that polling the "media-col-database" IPP attribute makes the printer stopping in the middle of its answer and so the answer stays incomplete, essential attribiutes missing, and so ending up with no PPD file being generated. cups-filters has introduced polling "media-col-database" in version 1.20.0, the first version which does not work for you. Also CUPS, at least from version 2.3.x on, is polling "media-col-database". It seems that your printer has a firmware bug making it misbehaving on polling "media-col-database". Please also run the command:

ipptool -tv --ippserver ipp-attrs-ippserver.txt ipp://D3BFBB000000.local:631/ipp/printer ./get-printer-attributes-2.0.test

and attach the file ipp-attrs-ippserver.txt. Thanks.

P3p1t0 commented 6 years ago

Unfortunately, I can't give you this file. Somehow, ipptool doesn't recognize the --ippserver option, and it isn't suggested by the output.


[awesome@i56400 ~]$ ipptool -tv --ippserver ipp-attrs-ippserver.txt ipp://D3BFBB000000.local:631/ipp/printer ./get-printer-attributes-2.0.test
ipptool: Unknown option "--".
Usage: ipptool [options] URI filename [ ... filenameN ]
Options:
  --help                  Show help.
  --stop-after-include-error
                          Stop tests after a failed INCLUDE.
  --version               Show version.
  -4                      Connect using IPv4.
  -6                      Connect using IPv6.
  -C                      Send requests using chunking (default).
  -E                      Test with encryption using HTTP Upgrade to TLS.
  -I                      Ignore errors.
  -L                      Send requests using content-length.
  -P filename.plist       Produce XML plist to a file and test report to standard output.
  -S                      Test with encryption using HTTPS.
  -T seconds              Set the receive/send timeout in seconds.
  -V version              Set default IPP version.
  -X                      Produce XML plist instead of plain text.
  -c                      Produce CSV output.
  -d name=value           Set named variable to value.
  -f filename             Set default request filename.
  -h                      Validate HTTP response headers.
  -i seconds              Repeat the last file with the given time interval.
  -l                      Produce plain text output.
  -n count                Repeat the last file the given number of times.
  -q                      Run silently.
  -t                      Produce a test report.
  -v                      Be verbose.
[awesome@i56400 ~]$ 
tillkamppeter commented 6 years ago

It looks like that the printer's get-printer-attribute answer is incomplete, having stopped somewhere in the middle of media-col-database and therefore missing several of the keywords expected by the test file. Either there is a firmware bug in the printer leading to this incomplete answer or ipptool has some bug, for example a size limitation for the answer. Please report an ipptool bug on

https://github.com/istopwg/ippsample

tillkamppeter commented 6 years ago

Can you download the ippsample GIT and build it and do the ipptool -tv --ippserver ... command with the ippserver executable from there? Thanks.

dourensei commented 6 years ago

Can you download the ippsample GIT and build it and do the ipptool -tv --ippserver ... command with the ippserver executable from there? Thanks.

I'm using Linux Mint 19 Cinnamon and got same issue when trying to add Canon MF printer with connection type of driverless IPP(ipp/print). I tried the ipptool -tv --ippserver ... command but unfortunately 0 bytes was written into the file ipp-attrs-ippserver.txt. Here is my test file: get-printer-attributes-my.test.txt If remove the 'media-col-database' attribute in the test file, the result will be OK.

joosteto commented 6 years ago

I've got the same issue with a Cannon MF635Cx printer. To add some info to this report, I ran the suggested commands with the github ipsample code from today. Here are the results:

joosteto@abelo:/tmp/ippsample/tools$ URI=`driverless`
joosteto@abelo:/tmp/ippsample/tools$ echo $URI
ipp://Canone15412.local:631/ipp/print
joosteto@abelo:/tmp/ippsample/tools$ ./ipptool -tv $URI /tmp/get-printer-attributes-2.0.test
"/tmp/get-printer-attributes-2.0.test":
    Get-Printer-Attributes:
        attributes-charset (charset) = utf-8
        attributes-natural-language (naturalLanguage) = en
        printer-uri (uri) = ipp://Canone15412.local:631/ipp/print
        requested-attributes (1setOf keyword) = all,media-col-database
    Get printer attributes using get-printer-attributes                  [FAIL]
        RECEIVED: 0 bytes in response
        status-code = server-error-internal-error (IPP 1setOf attribute with incompatible value tags.)
        IPP request failed with status server-error-internal-error (IPP 1setOf attribute with incompatible value tags.)
joosteto@abelo:/tmp/ippsample/tools$ ./ipptool -tv --ippserver  ipp-attrs-ippserver.txt $URI ./get-printer-attributes-2.0.test
joosteto@abelo:/tmp/ippsample/tools$ cat ipp-attrs-ippserver.txt 
joosteto@abelo:/tmp/ippsample/tools$ ls -al ipp-attrs-ippserver.txt 
-rw-r--r-- 1 joosteto joosteto 0 Aug 15 10:10 ipp-attrs-ippserver.txt
srd424 commented 5 years ago

Hitting this on a PIXMA 3150 .. any resolution yet? Will try the steps suggested above when today's chaos abates...

tillkamppeter commented 5 years ago

For me this primarily looks like a firmware bug on certain Canon printers. These printers seem not be able to emit the media-col-database attribute on a get-printer-attributes IPP request. Another possibility would be if you report this issue in the ippsample project of the PWG. Perhaps they can find a workaround (or a bug in the IPP implementation of ippsample and/or libcups).

jdehaan commented 5 years ago

I have exactly the same problem with PIXMA MX925 series in trying to operate it via IPP.

diego-treitos commented 5 years ago

Same problem here with a PIXMA MX475. I have the same outputs that P3p1t0 has.

mark246 commented 5 years ago

I had this same issue with Mint 19.1 (cups-filters 1.20.2-0ubuntu3) and a Canon MG4250. I found a workaround (although it did involve compiling from source).

I believe the root cause is that with version 1.20.x of cups-filters, the Get-Printer-Attributes request includes the "requested-attributes" field, and (rightly or not) this means that the MG4250's response does NOT contain the "urf-supported" attribute, which used to be there (with cupsfilters 1.19.0).

Without this attribute the driverless implementation cannot determine the printer resolution.

After modifying the code (cups-filters/utils/driverless.c), to add "urf-supported" to the requested attributes, rebuilding driverless and copying it to the cups/lib directory, it's now possible to add the printer using sytem-config-printer, and printing seems to work.

tillkamppeter commented 5 years ago

Fixed in cups-filters with commit 5259bb7. See also pull request #86.

tillkamppeter commented 5 years ago

Sorry, I closed this in error. What we have achieved now is that both CUPS and CUPS filters always use the same attributes on their get-printer-attributes IPP requests for auto-generating PPD files. What is still missing is that your Canon printer (and also the Canon printers of some other users) return a faulty response to the request. The reason for the wrong answer can either be a buggy printer or some problem with the implementation of IPP on the client. Perhaps it cannot cope with too large responses. CUPS and cups-filters both use the IPP implementation in libcups. So if the problem is in the IPP implementation of libcups, both CUPS and cups-filters fail on the Canon printers. The ippsample project I mentioned earlier does not use libcups AFAIK but can have overtaken parts of the libcups code. As I do not exactly how much it has taken from libcups, it is worthwhile to build the ippsample code and use its ipptool to see whther it succeeds. Could you (anyone who has this problem and is reading this) try this? Does it help? If we know which implemenations work and which not, we can report bugs on CUPS and/or ippsample.

tillkamppeter commented 5 years ago

This problem got also reported to CUPS, as CUPS issue #5512. Michael Sweet, author of CUPS, will get a Canon printer on the coming Wednesday for further investigation. But please do the test with ippsample independent of this.

srd424 commented 5 years ago

OK, I tried ippsample's ipptool on my 3150 and got the following (with get-printer-attributes-2.0.test.txt from earlier)

ipp-attrs-2.txt

tillkamppeter commented 5 years ago

Thank you very much. With ippsample we run into the same problem.

tillkamppeter commented 5 years ago

@michaelrsweet was not able to reproduce the problem on the Canon printer he got (CUPS issue 5512). Can you join there if you still have the problem and debug it directly with Michael? Thanks. Please make sure you have applied the fix on CUPS and are also using the newest cups-filters?

Esokrates commented 5 years ago

Same problem here with Canon_MG4200_series:

E [19/May/2019:16:30:37 +0200] copy_model: empty PPD file E [19/May/2019:16:30:37 +0200] [Client 247] Returning IPP server-error-internal- error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Canon_MG4200_series) from localhost. E [19/May/2019:16:30:38 +0200] [CGI] Unable to create PPD file: Printer does not support required IPP attributes or document formats. E [19/May/2019:16:30:38 +0200] copy_model: empty PPD file E [19/May/2019:16:30:38 +0200] [Client 279] Returning IPP server-error-internal- error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Canon%5FMG4200%5Fser ies) from localhost. E [19/May/2019:16:32:28 +0200] Unable to open listen socket for address [v1.::1] :631 - Cannot assign requested address. E [19/May/2019:16:32:57 +0200] [CGI] Unable to create PPD file: Printer does not support required IPP attributes or document formats. E [19/May/2019:16:32:59 +0200] [CGI] Unable to create PPD file: Printer does not support required IPP attributes or document formats.

What could I do to help?

tillkamppeter commented 5 years ago

This seems to be a hardware bug observed on a few Canon printers. Unfortunately, neither me nor @michaelrsweet have access to such a printer. If you have a printer with this problem, please post on apple/cups#5512 and work together with @michaelrsweet on a solution. I am closing this issue here as we do not have a way to solve it on the cups-filters side.

jypma commented 5 years ago

I'm getting a similar message on a Dell 2155CDN, cups-filters 1.25.0-1 and cups 2.2.11-2, on Arch linux.

E [05/Jul/2019:20:59:13 +0200] [CGI] Unable to create PPD file: Printer does not support required IPP attributes or document formats.
E [05/Jul/2019:20:59:13 +0200] copy_model: empty PPD file
E [05/Jul/2019:20:59:13 +0200] [Client 171] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Dell_2155cdn_Color_MFP_Driverless) from localhost.

Let me know if I can help figure something out.

tillkamppeter commented 5 years ago

@jypma, could you run the following command:

ippfind

This will give you a list of URIs, find the one of your printer. Now run the command

ipptool -tv <URI> get-printer-attributes-2.0.test > ipp-attributes.txt

replacing <URI> by your printer's URI from the output of the first command. Attach the output file ipp-attributes.txt to this issue report.

firefly44 commented 5 years ago

Same for a Fuji Xerox DocuPrint CM225 fw, (firmware: 01.09.00 (latest)) previously worked with:
[requested-attributes: "job-template", "printer-defaults", "printer-description", "media-col-database"] no longer works with: [requested-attributes: "all", "media-col-database"] error: ipptool -tv only returns media-col-database with an incomplete list of other attributes. outcome: cannot add ipp everywhere printer with driverless command on ubuntu

aiyagari commented 4 years ago

Canon MG7720 has the same issue. Once Google EOLs Cloud Print and makes ChromeBooks do local printing this issue is going to come to a head (late 2020) so can we reopen this?

tillkamppeter commented 4 years ago

Could anyone here please test the new cups-filters 1.25.13? Please run cups-browsed and see whether your printer gets set up correctly. cups-browsed tries the get-printer-attributes request first with "all" and "media-col-database", then also with only "all" and also with IPP 1.1. Please also try

ipptool -tv <URI> get-printer-attributes.test > ipp-attributes.txt

with <URI> replaced by the URI of the ippfind command.

eduncan911 commented 4 years ago

FWIW, ever since I upgraded OS-in-place to Pop_OS 19.04 (Ubuntu 19.04 under the hood), I've been able to print to my MX922.

I previously posted above that I could not under 18.10.

I havent looked into CUPS ever since. What's a quick way I can check that I'm using CUPS now? It's gnome if that matters.

tillkamppeter commented 4 years ago

@eduncan911, you are for sure using CUPS, all Linux distributions, especially Ubuntu and derivatives, use CUPS. You can find the versions of CUPS and cups-filters you are using by

dpkg -l | grep cups

Could you run the following command:

ippfind

This will give you a list of URIs, find the one of your printer. Now run the commands

ipptool -tv <URI> get-printer-attributes.test > ipp-attributes.txt
ipptool -tv <URI> get-printer-attributes-2.0.test > ipp-attributes-2.0.txt

replacing <URI> by your printer's URI from the output of the first command. Attach the output files ipp-attributes.txt and ipp-attributes-2.0.txt to this issue report. Thanks.

srd424 commented 4 years ago

Much confusion!

I have setup a containerized test environment with Ubuntu 19.10, and built the latest cups-filters, I think correctly. I am testing against a Canon MX475 and an MG3150.

system-config-printer and the driverless command still fail ("internal error" and "Printer does not support required IPP attributes or document formats.")

cups-browsed, which I haven't previously used, creates queues, but chokes with:

Sat Nov 30 17:38:48 2019 Creating/Updating CUPS queue Canon_MX470_series
Sat Nov 30 17:38:48 2019 Establishing dummy connection to make CUPS create the temporary queue.
Sat Nov 30 17:39:50 2019 Unable to connect to destination.

Leaving the queues rejecting jobs.

Trying to use cups-browsed on Ubuntu 18.04 (cups-filters 1.20.2-0ubuntu3.1, cups 2.2.7-1ubuntu2.7) more or less works - queues get created and accept jobs, but seem a bit confused about paper types.

I will attach the full cups-browsed log from 19.10+1.25.13 ... cups-browsed_log.txt

tillkamppeter commented 4 years ago

@srd424, could you also run the ipptool commands of my previous comment? Please run them in the Ubuntu 19.10 test environment.

eduncan911 commented 4 years ago

@tillkamppeter I'm away for the holidays but will run them sometime next week when I am back.

@srd424 that docker env sounds like a great PR to open here, wouldnt you agree @tillkamppeter ? A nice way to setup a C.I. test environment, as well as having a Dev environment for those that want to help fix.

With docker, you can have precise control over every driver, package, and even multiple OS versions.

tillkamppeter commented 4 years ago

@eduncan911, @srd424, what "docker" environment are you meaning here? What is that exactly?

srd424 commented 4 years ago

Sure: ipp-attributes.txt ipp-attributes-2.0.txt

(Re the container - I actually use systemd-nspawn, as it's always available, lightweight, and works well with btrfs. I just pulled an image from https://cloud-images.ubuntu.com/ , 'booted' it, and did an apt-get install xubuntu-desktop; a few bits of config required like adding user account, configuring sshd, then I used Xephyr and ssh -X user@container startxfce4 ..)

tillkamppeter commented 4 years ago

@srd424, thank you very much, seems that the fallback mechanism needs more precise checking of the content of the IPP response, as the IPP communication does not error, instead, the response is simply incomplete. Currently the the fallback is only triggered by an IPP error or by the response only containing the 2 language-related attributes.

tillkamppeter commented 4 years ago

@srd424, I have now improved the fallback mechanism of the get-printer-attributes function in cups-browsed (commit 68f680dfa32). Could you update youe cups-browsed and try again?

tillkamppeter commented 4 years ago

@eduncan911. @P3p1t0, @wifiprintguy, please also check with the current cups-browsed, with my fix of the previous comment.

tillkamppeter commented 4 years ago

@srd424, @eduncan911. @P3p1t0, @wifiprintguy, I have done more improvements to both cups-browsed and the driverless utility. fallbacks work more reliable now. Please test both with print queues auto-generated by cups-browsed (to make sure that all fixes get actually used, set UseCUPSGeneratedPPDs No in cups-browsed.conf) and with manually created print queues using the driverless utility (in the CUPS web interface or in a printer setup tool find a "driverless" entry of your printer, and if asked for a model/driver, use the "driverless" entry).

srd424 commented 4 years ago

Thanks, will do - may take a while to find time though.

Esokrates commented 4 years ago

@tillkamppeter I set up Ubuntu 19.10, compiled master as of today and tested: Adding the printer now works, however, it shows as Generic-Text-only-printer and printing does not work at all.

Find the ipp-attributes here: https://pastebin.com/fvbj1qQZ

tillkamppeter commented 4 years ago

Please do not use thrird-party commecial (ad-financed) services to provide data. On GitHub you can attach or paste in for free, without ad, as much as you want, and it stays there eternally, so that we can always come back to your issue if we have a similar problem. So I am pasting your printer's IPP attribute output here:

"/usr/share/cups/ipptool/get-printer-attributes.test":
    Get-Printer-Attributes:
        attributes-charset (charset) = utf-8
        attributes-natural-language (naturalLanguage) = en
        printer-uri (uri) = ipp://AE8C5A000000.local:631/ipp/printer
    Get printer attributes using Get-Printer-Attributes                  [PASS]
        RECEIVED: 4255 bytes in response
        status-code = successful-ok (successful-ok)
        attributes-charset (charset) = utf-8
        attributes-natural-language (naturalLanguage) = en
        printer-is-accepting-jobs (boolean) = true
        printer-state (enum) = idle
        printer-state-reasons (keyword) = marker-supply-low-warning
        printer-up-time (integer) = 690344
        printer-uri-supported (uri) = ipp://192.168.178.39:631/ipp/printer
        queued-job-count (integer) = 0
        uri-authentication-supported (keyword) = none
        uri-security-supported (keyword) = none
        document-format-supported (1setOf mimeMediaType) = application/octet-stream,image/jpeg,image/urf
        copies-default (integer) = 1
        document-format-default (mimeMediaType) = application/octet-stream
        orientation-requested-default (enum) = portrait
        jpeg-k-octets-supported (rangeOfInteger) = 0-10240
        jpeg-x-dimension-supported (rangeOfInteger) = 16-9600
        jpeg-y-dimension-supported (rangeOfInteger) = 16-9600
        print-quality-default (enum) = normal
        color-supported (boolean) = true
        finishings-supported (enum) = none
        finishings-default (enum) = none
        output-bin-supported (keyword) = face-up
        output-bin-default (keyword) = face-up
        output-mode-default (keyword) = color
        output-mode-supported (1setOf keyword) = color,monochrome,auto
        pages-per-minute (integer) = 7
        pages-per-minute-color (integer) = 3
        pdf-versions-supported (keyword) = none
        printer-resolution-default (resolution) = 600dpi
        printer-resolution-supported (resolution) = 600dpi
        print-quality-supported (1setOf enum) = normal,high
        sides-default (keyword) = one-sided
        sides-supported (1setOf keyword) = one-sided,two-sided-long-edge,two-sided-short-edge
        landscape-orientation-requested-preferred (enum) = 5
        media-default (keyword) = na_index-4x6_4x6in
        media-supported (1setOf keyword) = na_index-4x6_4x6in,na_letter_8.5x11in,iso_a4_210x297mm,oe_photo-l_3.5x5in,jpn_hagaki_100x148mm,na_number-10_4.125x9.5in,iso_dl_110x220mm,na_5x7_5x7in,iso_a5_148x210mm,jis_b5_182x257mm,jpn_oufuku_148x200mm,na_govt-letter_8x10in,na_legal_8.5x14in,custom_min_89x127mm,custom_max_215x676mm
        media-type-supported (1setOf keyword) = stationery,photographic,custom-media-type-photo-paper-plus-glossy-ii,custom-media-type-photo-paper-pro-platinum,custom-media-type-matte-photo-paper,custom-media-type-glossy-photo-paper,custom-media-type-high-resolution-paper,custom-media-type-ink-jet-hagaki,custom-media-type-hagaki-k,custom-media-type-hagaki,envelope,custom-media-type-other-photo-paper,custom-media-type-photo-paper-plus-semi-gloss,custom-media-type-photo-paper-pro-luster
        media-source-supported (1setOf keyword) = main,auto
        media-bottom-margin-supported (1setOf integer) = 0,500,3740
        media-left-margin-supported (1setOf integer) = 0,340,560,640
        media-right-margin-supported (1setOf integer) = 0,340,560,640
        media-top-margin-supported (1setOf integer) = 0,500,800
        urf-supported (1setOf keyword) = CP1,PQ4-5,RS600,SRGB24,W8,DM3,OB9,OFU0
        marker-names (1setOf nameWithoutLanguage) = Color,Black
        marker-colors (1setOf nameWithoutLanguage) = #39D2E7#D945DD#DFD31D,#101010
        marker-types (1setOf keyword) = inkCartridge,inkCartridge
        marker-high-levels (1setOf integer) = 100,100
        marker-low-levels (1setOf integer) = 15,15
        marker-levels (1setOf integer) = 0,0
        printer-location (textWithoutLanguage) = 
        printer-make-and-model (textWithoutLanguage) = Canon MG4200 series
        printer-info (textWithoutLanguage) = Canon MG4200 series
        printer-more-info (uri) = http://AE8C5A000000.local.
        printer-uuid (uri) = urn:uuid:00000000-0000-1000-8000-F48139AE8C5A
        printer-name (nameWithoutLanguage) = MG4200 series
        printer-icons (1setOf uri) = http://AE8C5A000000.local./icon/printer_icon.png,http://AE8C5A000000.local./icon/printer_icon_large.png
        charset-configured (charset) = us-ascii
        charset-supported (1setOf charset) = us-ascii,utf-8
        compression-supported (keyword) = none
        copies-supported (rangeOfInteger) = 1-99
        generated-natural-language-supported (naturalLanguage) = en-us
        ipp-versions-supported (1setOf keyword) = 1.1,2.0
        job-creation-attributes-supported (1setOf keyword) = copies,finishings,sides,orientation-requested,media,print-quality,printer-resolution,output-bin,media-col,output-mode,ipp-attribute-fidelity,job-name
        media-col-supported (1setOf keyword) = media-bottom-margin,media-left-margin,media-right-margin,media-size,media-source,media-top-margin,media-type
        natural-language-configured (naturalLanguage) = en-us
        operations-supported (1setOf enum) = Print-Job,Validate-Job,Cancel-Job,Get-Job-Attributes,Get-Jobs,Get-Printer-Attributes
        orientation-requested-supported (enum) = portrait
        pdl-override-supported (keyword) = attempted
        printer-device-id (textWithoutLanguage) = MFG:Canon;CMD:BJL,BJRaster3,BSCCe,NCCe,IVEC,IVECPLI,URF;SOJ:BJNP2,BJNPe;MDL:MG4200 series;CLS:PRINTER;DES:Canon MG4200 series;VER:1.040;STA:10;FSI:00;HRI:D;MSI:AOFF,B015,DAT,E3,HFSF,JOFF,K21000700,LOFF;PDR:4;PSE:LRVD43222;CID:CA_IVEC1TYPE1_IJP;URF:CP1,PQ4-5,RS600,SRGB24,W8,DM3,OB9,OFU0;
tillkamppeter commented 4 years ago

For me the IPP atrributes look enough to make up a PPD file. Could you run the command

driverless

This produces one or more printer URIs. Find the one for the printer which cayses this issue for you. Now run

driverless URI > ppd.txt

replacing URI by the URI of your printer which you got in the first step. You get a PPD file in ppd.txt. Please attach this PPD file to this issue.

tillkamppeter commented 4 years ago

Try also the following command:

lpadmin -p test -E -v URI -P ppd.txt

Take URI and ppd.txt form the commands of the previous comment. Can you print through the print queue "test" created by this command?

Esokrates commented 4 years ago

@tillkamppeter I'll try around weekend as the printer is at my friends place. Thanks for the quick reply!

firefly44 commented 4 years ago

Built cups-filters from source using current master branch on Ubuntu 19.10, tried, the following commands.

driverless driverless ipp://FXAD186C.local:631/ipp/print > ppd-generated-using-1.26.txt lpadmin -p test -E -v ipp://FXAD186C.local:631/ipp/print -P ppd-generated-using-1.26.txt

All working as expected with a Fuji Xerox DocuPrint CM225 fw. Printed A4 test page as expected. Many thanks! Appreciate your work on the fix.