canon pixma printer not working anymore after installing 11.3

Hello,

I have a canon pixma mp640. Under opensuse 11.2 64 bit the printer worked (printing and scanning via wifi). I recently reinstalled my system with 11.3 64 bit, and after installing the canon rpms and creating the printer I get the following error in /var/log/cups/error_log:


Backend returned status 1 (failed)
printer-state-message="Illegal backend: Success"

In opensuse 11.2 I needed to create some links:


cd /usr/lib64/cups/filter
ln -s ../../../lib/cups/filter/pstocanonij
cd /usr/lib64/cups/backend
ln -s ../../../lib/cups/backend/cnij*

But in 11.3 there is no /usr/lib64/cups anymore.

Does anyone know what the errors mean, and how to fix it? Any help would be welcome.

version info:


rpm -qa | grep cups
cups-backends-1.0-261.1.x86_64
cups-1.4.4-2.3.x86_64
cups-libs-32bit-1.4.4-2.3.x86_64
cups-client-1.4.4-2.3.x86_64
cups-libs-1.4.4-2.3.x86_64
cups-pk-helper-0.1.0-4.1.x86_64
cups-drivers-1.3.9-11.1.x86_64

uname -a
Linux buffy.sunnydale.local 2.6.34-12-desktop #1 SMP PREEMPT 2010-06-29 02:39:08 +0200 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/SuSE-release 
openSUSE 11.3 (x86_64)
VERSION = 11.3

canon rpms:
cnijfilter-common-3.20-1.i386.rpm
cnijfilter-mp640series-3.20-1.i386.rpm

I have same printer , canon mp640, and same troubles.

Printer receive order of cups outputs from PC, It start the preparation for printing, but it stop following process without printer’s error messages.

I guess that Canon driver “pstocanonij” ver 3.20 is not compatibility with Ghostscript “gs” bound by 11.3. because, I can do cngpij command and this utilities.

cngpij -P MP640LAN(printer name)

ghostscript
11.3 – ver.8.70
11.2 – ver.8.64
11.1 – ver.8.62

But, I hear Ubuntu Linux (9.04& 10.4) with ghostscript 8.7x can print with MP640. Umm…
I’m sorry, I have no idea now.

I got the following error in http://localhost:631/admin/log/error_log .

D [23/Aug/2010:19:38:54 +0900] [Job 8] Started filter /usr/lib/cups/filter/pstops (PID 19211)
D [23/Aug/2010:19:38:54 +0900] [Job 8] Started filter /usr/lib/cups/filter/pstocanonij (PID 19212)
D [23/Aug/2010:19:38:54 +0900] [Job 8] Started backend /usr/lib/cups/backend/cnijnet (PID 19213)
D [23/Aug/2010:19:38:54 +0900] [Job 8] pstocanonij start.
...
D [23/Aug/2010:19:38:54 +0900] [Job 8] make_filter_param_list: --bidi
D [23/Aug/2010:19:38:54 +0900] [Job 8] make_filter_param_list: --fit
D [23/Aug/2010:19:38:54 +0900] [Job 8] make_filter_param_list: --bbox
D [23/Aug/2010:19:38:54 +0900] [Job 8] make_filter_param_list: --extension
D [23/Aug/2010:19:38:54 +0900] [Job 8] make_filter_param_list: --paperload
D [23/Aug/2010:19:38:54 +0900] [Job 8] make_filter_param_list: --media
D [23/Aug/2010:19:38:54 +0900] [Job 8] make_filter_param_list: --papersize
D [23/Aug/2010:19:38:54 +0900] [Job 8] pstocanonij: /usr/bin/gs -r600 -g4958x7016 -q -dNOPROMPT -dSAFER -sDEVICE=ppmraw -sOutputFile=- -| /usr/local/bin/cifmp640 --imageres 600 --papersize a4 --media plain --paperload auto --bbox 9,14,586,834 --fit  --bidi  
D [23/Aug/2010:19:38:54 +0900] [Job 8] 
D [23/Aug/2010:19:38:54 +0900] [Job 8] CIF COMMAND ERROR :file access Error!
D [23/Aug/2010:19:38:54 +0900] [Job 8] not support this image format
D [23/Aug/2010:19:38:54 +0900] [Job 8] 
D [23/Aug/2010:19:38:54 +0900] [Job 8] Set job-printer-state-message to "error occurred while preparing", current level=ERROR
D [23/Aug/2010:19:38:54 +0900] [Job 8] 
D [23/Aug/2010:19:38:54 +0900] [Job 8] Backend returned status 1 (failed)
D [23/Aug/2010:19:38:54 +0900] [Job 8] Printer stopped due to backend errors; please consult the error_log file for details.
D [23/Aug/2010:19:38:54 +0900] [Job 8] End of messages
D [23/Aug/2010:19:38:54 +0900] [Job 8] printer-state=5(stopped)
D [23/Aug/2010:19:38:54 +0900] [Job 8] printer-state-message=""
D [23/Aug/2010:19:38:54 +0900] [Job 8] printer-state-reasons=paused

Cups uses /usr/lib/cups/filter/* without linked to /usr/lib64/cups on x86_64 ,11.3.

My System

>rpm -qa | grep cups
cups-libs-32bit-1.4.4-57.1.x86_64
python-cupshelpers-1.2.0-1.14.x86_64
cups-pdf-2.5.0-2.1.x86_64
cups-drivers-1.3.9-32.1.x86_64
cups-1.4.4-57.1.x86_64
python-cups-1.9.49-1.11.x86_64
cups-client-1.4.4-57.1.x86_64
cups-backends-1.0-269.1.x86_64
cups-libs-1.4.4-57.1.x86_64

>rpm -qa | grep ghost
ghostscript-fonts-other-8.70-15.1.1.x86_64
ghostscript-fonts-std-8.70-15.1.1.x86_64
ghostscript-library-8.70-15.1.1.x86_64
ghostscript-cjk-20050315-149.1.noarch
ghostscript-x11-8.70-15.1.1.x86_64

> rpm -qa | grep cnij
cnijfilter-common-3.20-1.i386
cnijfilter-mp640series-3.20-1.i386

Out of curiosity I tried to connect via usb in stead of network, and to my surprise this worked without any problems. Both printing and scanning. (printing after installing the canon mp640 driver rpm). But network printing is still giving the same error messages. So it seems to be a problem related to the network part of the driver. So I can print again, but only after connecting cables.

For network printing, I had to install a special cannon cups driver found here https://sourceforge.net/projects/cups-bjnp/

more info at The Canon PIXMA Linux blog, for all Canon PIXMA all-in-ones: Canon PIXMA scanners now network ready on Linux !

>rl23

I follow your advice, mp640 conect PC via usb cable. But my opensuse 11.3 can not print by this way.
The printer stops with “Preparation…” display message and freezed. Error log of my PC (Cups) doesn’t have any messages.

I want to know your cups settings.
Do you install mp640 driver with install.sh, or YaST?

I had the same problem and found that we have to add option to gs which is called from pstocanonij.

Please refer to here for background information.

Download source code from Canon and apply following patch to pstocanonij/pstocanonij.c.

--- pstocanonij.c.orig    2009-04-23 18:59:38.000000000 +0900
+++ pstocanonij.c    2010-10-15 15:08:31.412877359 +0900
@@ -868,7 +868,10 @@
     strncat(gs_exec_buf, "/", 255 - strlen(gs_exec_buf));
     strncat(gs_exec_buf, GS_BIN, 255 - strlen(gs_exec_buf));
     snprintf(gs_cmd_buf, 1023,
+/*
     "%s -r%d -g%dx%d -q -dNOPROMPT -dSAFER -sDEVICE=ppmraw -sOutputFile=- -| ",
+*/
+    "%s -r%d -g%dx%d -q -dNOPROMPT -dSAFER -sDEVICE=ppmraw -sGenericResourceDir=/usr/share/ghostscript/8.70/Resource/ -sOutputFile=- -| ",
             gs_exec_buf, reso, (int)(p_size->width * (float)reso / 72.0),
             (int)(p_size->length * (float)reso / 72.0));

Followin instructions in INSTALL file and copy pstocanonij to /usr/lib/cups/filter.

I do not think it is a good idea to embed pathname with version number, but it works anyway.

In OpenSUSE 11.3, you just create the higher-level directories with:
mkdir -p /usr/lib64/cups/filter
cp -p /usr/lib/cups/filter/* /usr/lib64/cups/filter
See my post for Canon MP600 on openSUSE 11.3, which may help with your problem with Canon Pixma printers:
http://forums.opensuse.org/english/get-help-here/hardware/448307-canon-mp600-driver-missing-opensuse-11-3-a.html