help installing Canon MP190 (openSUSE 11.2 x64)


i am a new Linux user and i am having trouble installing my multifunctional Canon MP190 under openSUSE 11.2 x64. I have downloaded the 32-bit drivers (there are no 64-bit drivers available) from Canon 's site (PIXMA MP190) in .rpm format but that 's about it :shame:

This is what i have done so far:

  1. I untarred the file i downloaded (“MP190_RPM_drivers.tar”)

  2. Inside there are 2 more tar files

    • MP190_RPM_printer.tar
    • MP190_RPM_scangear.tar
  3. Trying at first to install the printer functionality, i untarred the “MP190_RPM_printer.tar” file and i got 3 more files

    • cnijfilter-common-3.00-1.i386.rpm
    • cnijfilter-mp190series-3.00-1.i386.rpm
    • cnijfilter-common-3.00-1.tar.gz
  4. I tried clicking the file “cnijfilter-common-3.00-1.i386.rpm” but it gives me an error saying:

Subprocess failed. Error: RPM failed: error: Failed dependecies: is needed by cnijfilter-common-3.00-1.i386

That 's as fas as i got (not very far i know).

Could someone more experienced than me, provide me with some guidelines, preferably keeping it as simple as possible? I don’t mind using the terminal or doing some reading but i could really use some help to get my printer/scanner working.

Thanks in advance :slight_smile:

Thats strange. Libpopt is in the OSS repository. Is not libpopt on your PC ? What is the output of

rpm -q libpopt0

if it is installed, and you type

rpm -ql libpopt0

you will see what packages are installed.

I’m wondering it your PC is 64-bit and you are trying to install a 32-bit package? I note on 64-bit PCs libpopt0 is kept under:


while in a 32-bit PC it is kept under:


That looks like a 32-bit rpm you quoted and maybe it is looking in the wrong place for ?

I confess I deliberately avoid Canon printers as they can be a real pain in Linux to setup. So I can NOT help you with any Canon specifics nor can I provide simple guidelines. Sorry.

Can you find the rpm .src files and rebuild the rpm for 64-bit ?

I suppose a real hack would be to put a symbolic link in /lib/ pointing to /lib64/ , but IMHO its better try to build a 64-bit version than mess around with hacks like that. You did not read the previous line from me. :\

The output of that command is:


i run that command also and its output is:


As far as i can tell libpopt0 is installed in my PC. Or am i mistaken?

And yes my PC is 64bit and i try to install the only available drivers for the Canon MP190 which are 32bit unfortunately.

Is there any way to “force” the 64bit architecture of the operating system onto the 32bit drivers? I don’t know if i am making much sense with that though…

Also the rpm .src files that you refer to, are the source code for the drivers? If so, i doubt that they are available since these are proprietary drivers from Canon, but i 'll try looking for them…

If all else fails, is there any sort of generic driver for printing that can recognize my printer? I would hate to have to dual boot with Windows just to be able to print a document or scan an image.

Thanks for your suggestions though, oldcpu!

Yes, but it is in a 64-bit location. That 32-bit app will look in a 32-bit location, and that library is NOT in the 32-bit location … ie it can not be found.

Please reread the statement that I stated I did not say about symbolic link in the 32-bit pointing to the 64-bit .

I looked for an rpm src but could not find it. You may need to compile from tarball which will not be fun.

there like is a commercial driver you can buy if desperate. But this is likely hackable without resorting to this.

But you can now see why I use HP. In the time it took me to type this post, I would have an HP working.

Its a common problem for those trying to install Canon drivers on 64-bit systems. The symbolic link oldcpu describes is also explained here:

HCL/Printers - openSUSE

Similar issue in this thread:

Hopefully that is enough to get you sorted.

Thanks for the links deano_ferrari, seems i have some reading to do.

Hi Sylinde;

to install the printer drivers that Canon makes available on OpenSuse: it should work by:

A) 32 bit system

  1. download and install common package rpm
  2. download and install printer specific rpm
  3. enjoy

B) 64 bit system

  1. make a symbolic link
  2. download and install common package rpm
  3. download and install printer specific rpm
  4. enjoy

the advice from the link deanoferrari gave

HCL/Printers - openSUSE

suggests that to carry out the symbolic link that you open a terminal and copy and paste the command below

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

**After you have done the symbolic link
I would suggest that you install each printer package; (cnijfilter-common-3.00-1.i386.rpm first and cnijfilter-mp190series-3.00-1.i386.rpm next) by right-clicking on each rpm package and selecting “install with package manager” as that way I understand YaST has a record of it …

… and … I think … you need to CLOSE YaST after installing the common; before opening it again when you select to install the mp190 series rpm …

Sylinde, note in addition to the EXCELLENT information given above by the contributors to this thread, you will need to get by the dependency error you reported in your first post. You can do that by forcing the rpm install. That may be the way.

I confess I hate the idea of forcing an install, and alternatively I suppose in addition to the “cups” symbolic link you could also try putting in a symbolic link with:

ln -s /usr/lib64/ /usr/lib/

and then proceeding to install per the excellent guidance given above. But as noted, I know nothing about this so I can not really say if that is a good or bad idea. It may be a bad idea. I simply do not know.

My sincere thanks to everyone who have tried to solve my problem so far! Now i have a very clear understanding of what i have to do in order to make my printer work.

However i still can’t get past the initial dependecy error. I have tried creating both symbolic links as suggested in the posts by pdc_2 and oldcpu, but i still get the same error :\

I should note that before i created the symbolic links, i logged in as root. Also when i pasted the commands into the terminal and run them, there was no sort of comfirmation that the creation of the symbolic link was successful.

How do i know that the symbolic link was created flawlessly and nothing went wrong?

I just realised that maybe the error persists because the .rpm tries to find the NOT in the usr/lib folder but in the /lib folder. However we created a symbolic link from usr/lib… to usr/lib64…

Of course all that could be just nonsense since i am a very inexperienced Linux user, but i thought i should mention it. So all i am saying is that maybe i shoud try the following

ln -s /lib64/ /lib/

instead of

ln -s /usr/lib64/ /usr/lib/

Would that be a good idea or am i going to mess something up really bad?

I think you are correct and I am bad. I was tired when I typed that proposed symbolic link.

AAAAAARRRRRGGGHH, please don’t link to 64bit libs. Install ‘libpopt-32bit’ (it’s name) it’s available in the software installer. Same goes for other 32bit libraries you may ever need. Look for the ‘packagename-32bit’ version.

AFAIK there are 64bit drivers around, but Canon moved them from the place I usually look. Another solution is not to buy Canon printers. They explicitely stated they officially do not support linux.

Many thanks Knurpht for your suggestion! I installed the package “libpopt0-32bit” and the dependecy error dissapeared.

After that error got out of the way, i managed to install the printer via YaST->Hardware->Printer and its status reports its ready and listed as the default printer.

However it doesn’t print :frowning:

When i try to print a test page, i wait about 2 minutes and in the end i get an error saying:

Unable to start filter “pstocanonij” - No such file or directory.

I searched for such a folder in the zipped files that i downloaded and i found it inside the file “cnijfilter-common-3.00-1.tar.gz”. However i have no idea where it should go. Purely by intuition i think that i should copy it somewhere but i don’t know where…

I think that i am getting really close to making this @#%$ thing actually print, but i need a little more help yet.

Again thanks to everyone for your valuable suggestions so far!

SUCCESS! I managed to make it work! Thanks everyone!

After reviewing more carefully all the previous links suggested, i did the following:

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

and the test page printed ok :slight_smile:

Now on to get the scanner to work…

I tried following the same procedure for the scanner too (ie run the file “scangearmp-common-1.20-1.i386.rpm” first and then “scangearmp-mp190series-1.20-1.i386.rpm”), but i run again into similar dependecy errors. The files that are needed now are:


I tried searching for them in the repositories (i think i have enabled only those 4 repos suggested for new users) but i didn’t find them there.

Are they part of some other package?

Those are libraries associated with gimp.

Typically they are under /usr/lib64/

Is it once again looking in a 32-bit location?

I’m rather surprised no one has packaged this for openSUSE 64-bit. Is this because they are proprietary drivers?

What a pain.

As you note, a good reason for staying away from Canon.

If i knew that i would have to do all that stuff just to get to the basic functionality of the device, i would have installed openSUSE 32-bit instead, from the start…

Getting another printer would also be a choice, but since i have the Canon for only a few months now and it worked very well in Windows (ie it covered my needs as a home user), that 's not an option.

I didn’t imagine though it would be so hard to get it running under Linux.

On to the scanner functionality, it seems that those files do exist in usr/lib64. Should i do symbolic links for them also? Or is there a 32-bit package that i should install in this case as well, as suggested earlier by Knurpht?