November 15, 2007

New CUPS PPD files for Pixma MP600 and MP610 providing more printing options ...

Canon Pixma MP600 and MP610 are great printers.
Could they become also great printers for Linux ?

Canon gave a kick to those printers by providing drivers for MP600 (which worked for MP610), and recently, drivers for the MP610 printers.

One regret however: if you use the standard printing features offered by Canon's original PPD files, you'll get only few options compared to those available if you use the Canon tools (like the cngpij tool).

So here is the good news: a set of new PPD files I've prepared, which enhances original Canon ones, and provide many additional parameters to the standard printing dialog.

These are Canon's drivers versions. Be careful, as the new PPD files proposed are to be used with the corresponding version of the driver.
  • ver 2.70 for Pixma MP600
  • ver 2.80 for Pixma MP610
For example, here are evince print and gtklp dialogs using these new PPDs:



English and French versions of this PPD are available, so you can get now French texts in your standard print dialog if you wish.

To install those PPD files, simply download them:

1 - MP600 with Canon's driver version 2.70
2 - MP610 with Canon's driver version 2.80
Then, reinstall your MP600 or MP610 printer, using the cups interface (see this previous post), and select the corresponding PPD downloaded file you want when asked for, in the cups driver selection form.

In the CUPS printers list form, the driver will show up as:
  • Canon MP600/MP610 Ver.2.70en for the English PPD / MP600
  • Canon MP600/MP610 Ver.2.70fr for the French PPD / MP600
  • Canon MP610 series Ver.2.80en for the English PPD / MP610
  • Canon MP610 series Ver.2.80fr for the French PPD / MP610
Enjoy ... ;-)

16 comments:

Anonymous said...

I just attempted to install the MP600 modified printer driver and had to make one small modification for it to work.

In your distributed file, you have the following:

[model]
#Please see "cncl2def.h" for printer model id
MP140 1315
MP210 1316
IP3500 1319
IP4500 1326
MP610 1327
MP520 1328

However, the MP600 is not listed and will not work. I merged the file from Canon and your file and came up with the following (which does work):

[model]
#Please see "cncl2def.h" for printer model id
MP140 1315
MP210 1316
IP3500 1319
IP4500 1326
MP610 1327
MP520 1328
IP90 1253
IP3300 1292
MP510 1293
IP4300 1294
MP600 1295
MP160 1291
IP2500 1311
IP1800 1312

Hope this helps.

Proposed by Nicolos said...

Absolutely right!

The MP600 package files did not contain the correct MP600 cifmp600.conf file (it was the MP610 one)

Released a new version of the MP600 package files (1.2) that should fix the problem.

And thanks for feedback!

Anonymous said...

Nicolas,

Thank you so much for the information you provided here and in the Ubuntu Community Forum (and Potemkin too). With your help I now have my new Pixma 610 up and running. I've been using Ubuntu for about a year now and the information you and others share with us is invaluable.

Larry

Cerisier said...
This comment has been removed by the author.
Cerisier said...

It doesn't work on my MP600R :( I'm using ubuntu and I set my printer on socket://192.168.0.6:9100. It only works with the Pixma MP500 included with Ubuntu Hardy, if you can fix this if you have got any time :)

Proposed by Nicolos said...

Hi,

Remember that the PPD files proposed here are updated versions of Canon's ones, coming with the Canon MP600 driver.

Unfortunately, this driver works only with USB connexion, and the PPD file calls for the Canon USB backend to perform printing. It cannot be used with another backend, like the Jetdirect cups one (socket://)

However, you can use a Gutenprint PPD file (as you currently do with the MP500 PPD), as Gutenprint PPDs can be used with all standard cups backends.

Nicolas

Anonymous said...

Hello and congratulation for this blog.

I've tried the Canon MP610 series Ver.2.80en MP610 for my Pixma MP520.
Should this work?

Because I've got a problem with colour printing. It looks like "ghost image". Especially yellow
break out of column.

Thanks in advance for your comments
Jens

Nicolas says: said...

Nope.

There's a Canon driver for MP520, available from the same Canon site, so why not using it ? Should give you then much better results ;-)

Anonymous said...

Thanks for your reply Nicolas,

that's right, but the options of
the original Canon driver are really
rudimentary.
But it works, that's true.

Jens

Nicolas says: said...

So you could try to enhance it a little bit, like it's been done for MP610. The only changes you have to do are in the canonmp520.ppd file, so I suggest you just place side to side the modified MP610 ppd I've produced, and Canon's MP520 ppd file. Then, try to add additional options, the Adobe ppd syntax is rather straightforward to understand, and there's no risk to break anything is you come back to original ppd.
When you modify the ppd file, remember to place a copy of it in /etc/cups/ppd/[printer name].ppd or simply edit this file instead (This file is copied from canonmp520.ppd when you create the printer with the printer or cups admin interface)

Anonymous said...

I attempted to follow you guidelines on and everything seems OK except that the printer doesn't print anything. I'm using Ubuntu 9.10.

I downloaded the cnijfilter-common-3.00-1.i386.rpm and cnijfilter-mp610series-2.80-2.i386.rpm versions as I couln't find the debian versions anywhere. Then I converted the files to .deb using alien. I got some error messages converting, but the .deb files installed fine.

I restarted cups and followed the instructions. I'm using cnijusb:/dev/usb/lp0 as the "connection".


When I print nothing happens. The printer lights up the panel but does not print.

I have no problem printing using the "Canon PIXMA MP610 - CUPS+Gutenprint v5.2.4" printer driver. Unfortunately the Gutenprint driver doesn't provide more than 600dpi resolution which isn't enough for photos.

Do anyone have an idea for how I can debug the problem? I cannot see any error messages. Even the cups log seems OK.

Alternatively. Is there a way to increase the resolution on the default Gutenprint driver instead?

Thank you for any advice!

Nicolas said...

To help investigate on that:

Edit the /etc/cups/cupsd.conf file and change at the top, the option LogLevel to:

LogLevel debug

Then restart cups and print something.

Inspect the file /var/log/cups/error_log, maybe there's something wrong which will show up in the logs.

Anonymous said...

Hi Nicolas.

Thank you four your quick reply. I've added the debug line to the cupsd.conf file as you suggested. Here is part of the output from the error log.

"PPD=/etc/cups/ppd/ CanonMp610tweaked.ppd"
"RIP_MAX_CACHE=903273k"
"CONTENT_TYPE=application/postscript"
"DEVICE_URI=cnijusb:/dev/usb/lp0"
"PRINTER_INFO=Tweaked version of mp610 driver"
"PRINTER_LOCATION="
"PRINTER=CanonMp610tweaked"
"CUPS_FILETYPE=document"
"FINAL_CONTENT_TYPE=printer/CanonMp610tweaked"
Started filter /usr/lib/cups/filter/pstopdf (PID 19314)
Started filter /usr/lib/cups/filter/pdftopdf (PID 19315)
Started filter /usr/lib/cups/filter/cpdftocps (PID 19316)
Unable to execute /usr/lib/cups/filter/pstocanonij: insecure file permissions (0100755)
Unable to start filter "pstocanonij" - Operation not permitted.
Discarding unused job-state-changed event...
Stopping job because the scheduler could not execute a filter.


From what I can understand there is a problem with the "pstocanonij" filter.

I tried to reinstall the drivers using the suggestions from this thread: http://ubuntuforums.org/showthread.php?t=1305248
The "old" drivers from canon uses libraries that are not part of ubuntu 9.10. I had to replace libcupsys2 with libcups2 in the deb file.

Can you see from the error log what the problem is?

Thank you!
Best regards,
Lars

Nicolas said...

This looks to be related to bug described here.

Could you try to change perms for file /usr/lib/cups/filter/pstocanonij and its directory to 0700 and take another cups log:

sudo chmod 700 /usr/lib/cups/filter/pstocanonij
sudo chmod 700 /usr/lib/cups/filter

tichadok said...

BONJOUR ! Merci pour ce site ! Anonymous, I had the same problem and figured out that in the error_log:
sudo cat /var/log/cups/error_log | grep "not found" I had this:
D [15/Jan/2010:22:39:26 +0100] [Job 37] sh: /usr/bin/lgmonmp600: not found
D [15/Jan/2010:22:39:26 +0100] [Job 37] /bin/sh: /usr/bin/cifmp600: not found
D [16/Jan/2010:00:39:30 +0100] [Job 65] /bin/sh: /usr/bin/cifmp600: not found

SOLUTION:
sudo ln -s /usr/local/bin/printuimp600 /usr/bin

sudo ln -s /usr/local/bin/lgmonmp600 /usr/bin

sudo ln -s /usr/local/bin/cngpijmonmp600 /usr/bin

sudo ln -s /usr/local/bin/cifmp600 /usr/bin/

AND NOW IT WORKS !

Anonymous said...

I've been using the Pixma iP4200-cups driver for my MP600. Thought I would retry installing cnijfilter-common and cnijfilter-mp600 and see if it works using USB Printer #1 with status readout and the new MP600en.ppd file. Even after using Tichadok's solution I still get the error message:
client-error-not-possible
Can anyone help me use the MP600 properly with Ubuntu 9.10 (karmic)?