IP4200 - I'm stuck

Hi,

my computer is running on suse 11.1 64 bit version. I would like to install the canon drivers for the IP4200:

cnijfilter-common-2.60-3.i386.rpm
cnijfilter-ip4200-2.60-4.i386.rpm

I have the following questions:

  1. Should these drivers (i386) work with 64 bit suse ?
  2. When double clicking cnijfilter-common-2.60-3.i386.rpm, it requires gtk+ and libopt.so.0. I don’t find any of those in YAST. Are they too old ? How can I work around this ?

Thanks in advance

Alexander

  1. Yes, with the proviso that you will need to create a symbolic link; the canon driver will likely be looking in /usr/lib whereas your 64bit system looks in /usr/lib64; so a symbolic link will redirect looking from the former to the latter; likely to be something like

su
and then enter root and then

ln -s /usr/lib/cups/filter/pstocanonij /usr/lib64/cups/filter

… I need to check this so this is just a guide to what library the ip4200 will be looking to find

it requires gtk+ and libopt.so.0. I don’t find any of those in YAST

gtk should be in the main repository; can you tell us what repositories you have enabled?

and did you install from a liveCD?

libopt is a new one on me:

I did a google search on

libopt

and there are quite a few hits;

Free libopt Download - libopt Linux Software

Libopt

and more if you search more

if you download an rpm for libopt; (if such exists);

if not a tar.gz form of the file; the forum can give you further help on this if needed

I wondered if you had read the very detailed instructions that Canon produces; they do a very good job on the instruction manual;

but it comes as a .tar.gz file so beginners to linux may find it tricky;

what works for me is to go to this page

Canon Inkjet Print Filter Ver. 2.60 for Linux (Operation guide [Explanation of the iP4200 operation (html file) ])

and download the guideip4200-2.60-2.tar.gz listed at the bottom of the page;

I select download; and it comes into my “Download” folder; but I then copy it out to my desktop; so it is tar.gz there …

I right-click on the icon for the package, and select “open with file roller”

and when file roller opens and lists the contents, I click on the extract button in the menu; (top line);

the extract button should create a directory called guideip4200-2.60-2 on your desktop;

so it is new, and likely to the left of your screen; a new, separate folder; close file roller;

if you then open that new guideip4200-2.60-2 folder, and then open the ip4200 folder, and look in menu, and click on guide content, it should open in your web browser (you use Firefox?) and you can browse the instructions;

they may look daunting but we will try and help you through them;

first thing seems to be to get gtk and libopt installed before installing the canon drivers:

the common first and then the cnijfilter-ip4200-2.60-4.i386.rpm afterwards

hmmmmmmmmmm

from reading this post;

searching for Canon PIXMA MP520 driver - openSUSE Forums

and in particular post #7, seems you need

popt

to provide libopt and the news about popt is that apparently

Popt is a C library for parsing command line parameters. Popt was heavily influenced by the getopt() and getopt_long() functions. It improves on them by allowing more powerful argument expansion. Popt can parse arbitrary argv] style arrays and automatically set variables based on command line arguments. Popt allows command line arguments to be aliased via configuration files and includes utility functions for parsing arbitrary strings into argv] arrays using shell-like rules.

popt should be in the main repository, so if you have that activated in your system, if you type in popt in the available, YaST should find it, and install it for you

OK many thanks pdc_2.

In fact I succeeded to install the cnijfilter-common-2.60-3.i386.rpm, after following your proposals and installing gtk (in fact I got puzzled with gtk, gtk1, gtk+, gtk2).
Simply gtk does the job. The libopt reference was resolved after installing the 32-bit version of popt.

Now I am stuck at the next step:

rpm -ivh cnijfilter-ip4200-2.60-4.i386.rpm delivers

error: Failed dependencies:
libgdk-1.2.so.0 is needed by cnijfilter-ip4200-2.60-4.i386
libglib-1.2.so.0 is needed by cnijfilter-ip4200-2.60-4.i386
libgmodule-1.2.so.0 is needed by cnijfilter-ip4200-2.60-4.i386
libgtk-1.2.so.0 is needed by cnijfilter-ip4200-2.60-4.i386
libpng.so.3 is needed by cnijfilter-ip4200-2.60-4.i386
libxml.so.1 is needed by cnijfilter-ip4200-2.60-4.i386

I checked in /usr/lib64 and there is a link libgdk-1.2.so.0 pointing to libgdk-1.2.so.0.9.1.
So I thought creating a symbolic link libgdk-1.2.so.0 in the directory /usr/lib, pointing to /usr/lib64/libgdk-1.2.so.0.9.1 would resolve the 1st missing reference, but it doesn’t.

I used

ln -s -T /usr/lib64/libgdk-1.2.so.0.9.1 ./libgdk-1.2.so.0

from the directory /urs/lib in a super user terminal.

Any idea on how I could proceed from here ?

Thanks in advance

Alexander

OK well, step by step I managed to resolve the missing references by installing 32 bit versions of the different packages.

Thanks a lot for giving me these hints, finally I could bring the installation to an end.

BUT: The printer doesn’t work !!

Now after launching the printmanager, I stumbled upon the GUI of the CUPS (http://localhost:631/printers/). I tried out few things and managed to install the IP4200 as a Gutenprint printer. It worked after 30 seconds !!!

So first of all I am happy because I am able to print, but a little sad because I spent so much time trying to install the bloody canon drivers which was really a pain in the ass.

Some more info:
The CUPS GUI reports the following error message for the original Canon printer driver: “Unable to start filter “pstocanonij” - No such file or directory.”

It is true that this file was there in usr/local/bin but now it disappeared !?

I guess I will make a page on this to share the positive experience with Gutenprint. I will also save the PPD file that the canon drivers left on my computer for further use with CUPS.

Thanks anyhow for having encouraged me

Cheers

Alexander

No sorry, the pstocanonij is in /usr/lib/cups/filter.
I assume that CUPS is looking for it in /usr/lib64/cups/filter.
So the issues I have come mainly from a sort of incompatibility of the canon drivers with 64-bit linux I guess.

Does anybody have an idea whether it makes sense to have CUPS load the 32 bit version of pstocanonij ? If yes, how to do it ?
I guess simply copying it to lib64 does’t make sense as there are other canon files in lib/cups/bakend.

Furthermore, does anybody know whether I can start the maintenance features for the printer with the gutenprint drivers ?

Cheers

Alexander

Sorry it’s me again.

I replaced

*cupsFilter: “application/vnd.cups-postscript 0 pstocanonij”

with

*cupsFilter: “application/vnd.cups-postscript 0 /usr/lib/cups/filter/pstocanonij”

in the PPD file and then I can install the printer with the original drivers !! Cool !

Cheers

Alexander

good work; you have really climbed up a few hills here; you seem to have quite a bit of knowledge behind you: what’s your background? You have done some very useful work here;

the Canon drivers seem to install fine in 32 bit systems; no-one seems to think a 64bit system is faster, but they are increasingly prevalent;

Canon LBB5100 Capt Driver x86_64 - openSUSE Forums

oldcraft described installing the source files here for the similar Canon LBP series of laser printers; for 64bit systems; it seemed to work for him; you might like (purely for the interest) to read through that;you can become the forum adviser for Canon printers!

nagul here

Canon lbp 2900 - openSUSE Forums
described the symbolic links that worked for a 64bit LBP, instead of source files

On Sun March 29 2009 10:06 am, montfinal wrote:

<snip>
>
> Some more info:
> The CUPS GUI reports the following error message for the original Canon
> printer driver: “Unable to start filter “pstocanonij” - No such file or
> directory.”
>
> It is true that this file was there in usr/local/bin but now it
> disappeared !?
<snip>
> Cheers
>
> Alexander
>
Alexander;
Did you create the link in usr/lib64 given to you by pdc2 in an earlier post?


ln -s /usr/lib/cups/filter/pstocanonij /usr/lib64/cups/filter


P. V.
“We’re all in this together, I’m pulling for you.” Red Green

Yes PV you are probably right. This would have surely helped. But at the beginning it wasn’t very clear to me.

@pdc_2: concerning my bg - nothing special. In real life I am working in tech marketing.
But I play around with several Linux distros since few years and everytime I switch on my computer without seeing the windows logo, I am all smiles.

Thanks again for your help

Alexander

The iP4200 drivers are 32bit, so here is a
2 bit solution for a 64 bit OS :\

A solution for suse 11.1 x86_64:

  1. install 32 bit versions of libraries:
    popt, gdk, gtk, libxml, libpng, libglib, libgmodule, libpng3
    (and probably others I am forgetting about)
    NOTE: libpng3-32bit-1.2.31-4.37.1 does not exist
    so install libpng3-1.2.31-4.37.1.i586.rpm

  2. ln -s /usr/lib64/cups /usr/lib/cups
    NOTE: Canon makes /usr/lib/cups/backend and driver
    but cupsd expects these in /usr/lib64

  3. rpm -i --nodeps cnijfilter-common-2.60-3.i386.rpm
    rpm -i --nodeps cnijfilter-ip4200-2.60-3.i386.rpm
    NOTE: “–nodeps” tells RPM to skip dependency checking

  4. /etc/init.d/cups restart

  5. Use “Yast- Hardware- Printer” to add your printer
    If the “geek godess” is on your side, it should work - lol!

NOTE: You may need to tell it “papersize=letter” with
“Yast- Hardware- Printer- Edit- All Options…”

P.S.
It took some digging to get the printer to work. What really helped was changing “LogLevel info” to “LogLevel debug” in /etc/cups/cupsd.conf and running “/etc/init.d/cups restart” and “tail -f /var/log/cups/error_log”. As a result, test prints would reveal errors like “libpng.so.3: wrong ELF class: ELFCLASS64” when I tried to link /usr/lib/libpng.so.3 to /usr/lib64.

thanks very much for this; very useful to have;

could you go here:

HCL/Printers - openSUSE

and add what you did please: they folks can refer others to this source;

the premier site for source on printing in linux is Open Printing

if you could go to this page

OpenPrinting database - Printer: Canon PIXMA-iP4200

and add a summary for rpm; for Opensuse and Fedora; that would be very helpful; along with your knowledge on 64bit systems;

many thanks; yours would be a great contribution

Added instructions for 32 bit install on 64 bit OS to:
HCL/Printers - openSUSE
It is somewhat abbreviated, but I still yammered too much (another Puzzled Penguin may clean it up). :\

Openprinting is currently not open for editing. Perhaps later.
OpenPrinting database - Printer: Canon PIXMA-iP4200