I am trying to get my Canon LBP2900 printer to work on Ubuntu 11.10 64 bit.
What I have done is try to follow the steps on https://help.ubuntu.com/community/CanonCaptDrv190
So I downloaded the version 2.3 driver and tried to convert the rpm files to debian and installed them
sudo alien cndrvcups-capt-2.30-1.x86_64.rpm cndrvcups-common-2.30-1.x86_64.rpm
sudo dpkg -i cndrvcups-capt-2.30-1.x86_64.deb cndrvcups-common-2.30-1.x86_64.deb
restarted cups and try to install the printer with lpadmin:
sudo service cups restart
sudo /usr/sbin/lpadmin -p LBP2900 -m /usr/share/cups/model/CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59787 -E
What I noticed however that on the step with lpadmin it goes wrong with the error:
lpadmin: Bad device-uri scheme "ccp"
After trying to trace what has gone wrong, I think I nailed it to the fact that dpkg installed a file /usr/lib64/cups/backend/ccp
instead of /usr/lib/cups/backend/ccp
Checking the original rpm with archive manager shows indeed that /usr/lib
and /usr/lib64
are used, with the backend/cpp file only installed in lib64. As I understand correctly, Ubuntu 11.10 uses /usr/lib32
and /usr/lib
instead so the files are installed in the wrong place.
Is there an automated method of converting the rpm/deb files with the wrong lib structure to one with the right lib structure for ubuntu 11.10? Or am I completely on the wrong track for getting my printer installed?
It is because you didn't generated the scripts associated with the rpm files.......
Use
OR
instead of
You can solve this error
All the best from RJK
I do not own this particular model from Canon but i never find any trouble when installing a new printer on my system, also Canon declares this driver as working under all the latest versions of Ubuntu and many other GNU/linux distribution.
http://software.canon-europe.com/
Here you can download driver for both 32 and 64 bit operative systems, also there are the source included in the package so you can build your own driver from the scratch.
Do not use the rpm as first resource especially on a deb based system.
to find out what libreries are used by a specific executable run this command
Sometimes there are scripts available to start the program and they are not executables, to find out where the real executable is located you have no choice other than investigate the source of the script.
For example to know which libraries are used by
java
you can useldd
combined withwhich
that is a command that gives you the full path of an keyword command ( onlywhich
works for both scripts and exec,ldd
need an exec ):I suggest to completely remove those installed packages and compile from the source, if you can't remove those packages safely try to do something with
ldd
and verify that all the required libraries are linked to your executables, you can also run this commandsudo apt-get install -f
to try to fix some missing packages.EDIT: i almost forgot this, to update all the linking between the libraries and the executable you have to run
sudo ldconfig
and this is useful after you have installed new libraries.Apparently there are good links with this search http://www.google.com/search?q=compile+cndrvcups-common and some good ppa too.