I have a Canon MG6450 with Wi-Fi enabled and an up-to-date Arch Linux installation with cnijfilter-mg4200 3.80-1 installed. I can see the printer in print dialogues (sometimes it takes a second to show up, presumably because it's being auto-discovered), I can select it, and I get no error message when clicking OK. However, the printer is completely oblivious to all this, it seems.

I've also tried connecting via USB. Afterwards the printer was not auto-detected by the print dialogue, but it was detected by system-config-printer, and I was able to configure and print with no problems. But it would be very nice to be able to print wirelessly.

It appears some fatal printing errors show up neither in the print dialogue nor in system-config-printer. Both of them simply report printer state as "Idle - Rendering completed". However, after going to the CUPS web interface and clicking the printer I finally got a hint - after each print job is the following message:

"The PPD version (5.2.11) is not compatible with Gutenprint 5.2.12. Please run `/usr/bin/cups-genppdupdate' as administrator."

OK then:

$ sudo /usr/bin/cups-genppdupdate
/etc/cups/ppd/Canon-PIXMA-MG6450.ppd: no valid candidate for replacement.  Skipping
/etc/cups/ppd/Canon-PIXMA-MG6450.ppd: please upgrade this PPD manually
Unable to retrieve PPD file for /etc/cups/ppd/Canon-PIXMA-MG6450.ppd!
Failed to update any PPD files

Now I'm seeing if anywhere has a compatible PPD. Canon's IJ Printer Driver Ver. 4.00 for Linux has PPD files for MG6400 and MG6500. I tried the MG6400 one, cleaned out the printer queue, and tried printing a test page. Now the CUPS web interface has no errors, but system-config-printer reports:

File "/usr/lib/cups/filter/pstocanonij" not available: No such file or directory

Looks like that file is available from cnijfilter-common, which currently can't be built. After following the instructions by c.gerhorst I have installed the package, but now the printer dialogue is complaining that /usr/lib/cups/filter/cmdtocanonij is missing.

There is a /usr/lib/cups/filter/commandtocanon. I've tried replacing cmdtocanonij with commandtocanon in /etc/cups/ppd/Canon-PIXMA-MG6450.ppd and running sudo systemctl daemon-reload and sudo systemctl restart org.cups.cupsd.service. Now I get no error message anywhere, but the print jobs just seem to disappear entirely. The printer shows no sign of receiving them, and the CUPS web interface shows any new jobs as first "processing", then "completed", without any indication that something is black-holing everything.

  • Have you tried connecting it with a usb cab;e or whatever the printer has? I doubt it would make much difference but just in case.
    – terdon
    Nov 24, 2015 at 19:25
  • I have a cheaper Canon, an MG3250 or something like, and an Arch Linux laptop. Printing comes and goes, and CUPS is super finicky about low ink indicators. I'm awaiting a good answer to this one myself.
    – user732
    Nov 24, 2015 at 22:30
  • Try navigating to http://localhost:631 , selecting administration > manage printers, select your printer and do administration > modify printer. Then step through the setup again. My guess is the discovery of your printer is out of date. I get that someimes myself, but I have HP.
    – starfry
    Dec 20, 2016 at 14:29
  • The commandtocanon filter is not for general print jobs. It's meant to perform specific maintenance task, such as printing a test page, cleaning print heads and similar stuff. Dec 15, 2018 at 10:29

2 Answers 2


Is that particular printer IPP-enabled with AirPrint as well? If so, you may be able to use "driverless" printing (even though that possibly won't support all the bells and whistles which you can ring with Gutenprint).

1. Check IPP support:

Just run


If you get a return, IPP is supported, and it will tell you the IPP-URI to address the printer.

2. Install the print queue:

Now run

lpadmin -p my_brother -v $IPP_URI -E -m everywhere

the -m everywhere will directly query the printer for details of all the IPP printing features it supports, and auto-generate a PPD for this printer to be used by all 'legacy' applications which don't know about IPP (yet). This way all print clients can use the CUPS queue as they were used to before....

(I am not familiar with Arch Linux -- I'm only aware of all its supporters being proud of its ability to run the "latest and greatest" in the software world. So I think I can assume a rather recent CUPS version for you, which is needed for the above to work -- now, that it's 2018 and three years after you asked your question...)

  • 1
    No, ippfind prints nothing and returns exit code 1.
    – l0b0
    Feb 23, 2019 at 7:26
  • @l0b0 That could be because your printer is not using ipp. Try the lpinfo -v command to list the available backends and printers
    – Hritik
    Apr 2, 2021 at 8:29

The following worked for me:

  1. Setup .local hostname resolution with Avahi:

  2. Restart cups.service

  3. Stop systemd-resolved

Step 3 is crucial. It is now reflected in the Arch wiki as well.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .