Canon/CUPS problem


I’m a new user of Linux. I’ve chosen OpenSuSE 11.0 because it seems to be the most stable and best supported of the lot. Having an AMD64, I installed the x86_64 version of Suse and everything went smoothly. Well, I did have a problem with my X-fi card but I found out that it was not supported so I unplugged it and I enabled my AC97 audio chip which worked perfectly.

No, the real problem is my Canon LBP3300 and CUPS. I’m trying to install CUPS drivers provided by Canon from YAST but it keeps telling me that “nothing provides”. I ran a search for this file and found it lurking in /lib64 folder. I, uh, have no idea what to do next.

I’ve also read plenty of faqs and searched through forums with a fine-toothed comb. It appears, um, that Canon printers are hardly the best supported by Linux. I hope that I can solve this problem because, although it is the only problem I have left with Linux after migrating from Windows, it’s a critical one. Unless I solve this problem I’ll have to go back to Windows which is a tragedy because I was smitten by OpenSUSE.

I shall be very grateful for any help given…

a useful source of information on printers on linux, is openprinting; OpenPrinting - The Linux Foundation
in the section on canon printers,OpenPrinting database - All Canon Printers it mentions, amongst many, the LBP-3000 and the LBP-3360 but not your printer, the LBP-3300;

it says the LBP-3000 works perfectly in linux but needs the proprietary canon drivers; OpenPrinting database - Printer: Canon LBP-3000whereas the LBP-3360 works with at least two open-source drivers: OpenPrinting database - Printer: Canon LBP-3360

Recommended driver: LBP-3360

pxlmono (driver home page)
Type: GhostScript built-in
Download:PPD file: View PPD, directly download PPD

Other drivers: gutenprint52 (driver home page)

so I guess one could suggest trying by downloading and installing the pxlmono and see if you can get it to work;

there is a very good separate page on the pxlmono driver: OpenPrinting database - Driver: pxlmono and it seems you can download a ppd file specific for the printer;

if you agree to that, and it does not work,or you don’t wish that, the second option is to follow through on the downloading of the canon drivers …

if you want to feed back to us …

Thank you for your very kind reply. I spent most of the day wrestling with the problem but did not get very far. Anyway, I did manage to get SUSE to recognise my printer but it still did not work. Then I got the pxlmono driver but, I have to confess that I have no idea how to install a ppd file. I kept trying with various drivers but I still keep getting plenty of “nothing provides (a particular file)” messages from YAST. For the heck of it, I installed Compiz Fusion but though the program installed, I could not get all the plugins because YAST complained that “nothing provides (a particular file)”.

It seems clear from the Canon (Asia) website that:

LBP-3000 runs CaPT: Canon talk

LBP-3300 runs CaPT: Canon talk

LBP-3600 has been superseded by LBP-3700
(but probably is PCL 5 and uses pxlmono)
LBP-3700 runs
PCL 5e/6; so open-source pxlmono

so you have to use the Canon capt driver
for your LBP-3300


that you downloaded from a Canon site like this Linux Printer Driver (CAPT) Ver.1.50E ?

have you used linux for long?

have you used the tar command many times?

if you unpacked the file, can you describe what you did, for other users … to learn from; Canon is making more and more help available as drivers …

if the problem is solely the (that you say is in /lib64) then I suspect you need some echo $PATH command for it to be found: but that is beyond me;

either someone on this forum can chip in, or I suggest joining Justlinux or as both have a wide membership; get help on echo $PATH and come back to this forum;

I hope you can plod through this long entry and try to cover the questions

best wishes

Thanks for your help. Let me start by giving you some background information since you asked for it and it is relevant.

I have been using Linux since last weekend. I moved to Linux because I got sick of Windows and of having to buy ceaseless upgrades. I installed OpenSuSE 11.0 x86_64 from a DVD version I downloaded via this site. I’ve been using computers since 1986 so CLI does not frighten me as I used it for long years before I moved to Windows. I must have written loads of batch/sys scripts and the like. So I quickly got used to many of the basic concepts of Linux CLI, including installing from tarballs and bins (though not every case because some bins complained that they couldn;t find certain compilers and YAST refused to install said compilers because of missing dependencies).

I was immediately impressed by OpenSuSE. I soon managed to install most of my hardware and other important elements such as fonts. The one great bane of my life, however, became my printer. First I read that Canon printers have plenty of trouble with Linux. Then, Yast resolutely refused to install the Canon RPM drivers because it complained of “missing dependencies…” or “nothing provides…”. I tried installing from CLI but got into a real mess since I decided to install ghostscript first although OpenSuse swore that ghostscript had already been installed (gs -h). However, I did not see my printer in the list following the command so I installed every version of ghostscript that I could find - both from CLI and from YAST.

Well, I read your reply and decided to try it out on a fresh installation. I installed Ubuntu 32 bit and it too, like OpenSUSE, detected my printer but refused to work. This time I followed your instructions to the letter. I downloaded the Canon drivers, checked for ghostscript - and despite the fact that my driver did not appear in the list (gs -h), I installed the canon common module and cups driver from the DEB package in CLI by following Canon’s instructions to the letter.

Well, the printer works now (though I have to restart the ccpd daemon every time I log on). At least, it works when I print a test page from the printer settings of the KDE print manager. What it still does not do is print from applications such as Openoffice and firefox. This has stumped me. Any further help here would be greatly appreciated.

Anyway, since the test pages are printing from the settings menu, I guess that I’ll eventually solve my printing problems. Still, I’ll hang on to Ubuntu for a while since I want to see whether I can solve the missing dependency/nothing provides… installation problems and acquire more experience with Ubuntu which appears to be an “easier” version of Linux than OpenSuse. However, I hope that within a week or so, I’ll be able to migrate back to OpenSuse which has impressed me mightily.

Anyway, thank you very much for all your help (though more on my remaining printing problems would be nice). Linux is a great operating system (I keep picking my jaw up from the floor - I especially love the fact that root is usually inaccessible) but it is this wonderful community that is its real strength. Many thanks to everyone once again.

well, good luck with Ubuntu; over the printing problem, some would suggest entering http://localhost:631/ in your browser window, and that should open up CUPS: common unix printing system;

six along on the menu is “manage printers”: see what that shows; I haven’t had to change things in our CUPS, because we firstly used turboprint, (with canon inkjet) and it manages the install;

but our pixma shows as default; you might see what your page looks like there, and whether useful changes can be made;

talking of printer drivers, I saw this link today for someone who has written printer drivers for the LBP-3300 as rpm; (he had written them for Fedora); they may be another option to try; he is keen to hear how well they work; David Latham: Canon LBP 3300 Driver for Fedora 9 x86_64 have a read; see if of use

you can install rpms into Ubuntu by using alien?? maybe I have it wrong,

let us know how it goes

Well, I returned back to OpenSUSE since I prefer it to Ubuntu. The first thing I tried to do is to install the printer as I did in Ubuntu. I downloaded the Canon drivers and followed them step by step. This is what I did:

(commands entered in Terminal)
rpm -ivh cndrvcups-common-1.60-1.i386.rpm (installed and verified)
rpm -ivh cndrvcups-capt-1.60-1.i386.rpm (installed and verified)
/etc/init.d/cups restart (cups restarted)
/usr/sbin/lpadmin -p LBP3300 -m CNCUPSLBP3300CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

The final line is where I ran into trouble. When I ran it, I got the following error message:
lpadmin: Bad device-uri “ccp:/var/ccpd/fifo0”!

I tried googling it but all I could find were some pages with answers in Dutch or Russian. Does anyone have any idea of what is going on? I really don’t feel like re-installing the OS AGAIN.

can you tell us the website you got the commands from:

was it canon europe?

other option is to try the rpms that this guy has written:

David Latham: Canon LBP 3300 Driver for Fedora 9 x86_64

rpms are what Suse runs on;

if you downloaded the driver, and then used YaST to install; (right click on the file in the location it has been downloaded into, and ask for YaST); the guy also asks for contacts so may be very useful;

I have tried to download the canon tar.gz and having troubles reading that too …

more thoughts; after copying the .tar.gz file into /tmp and unpacking there, and firefox would find the bits;

so I then read the canon instructions: you are held up on:

Register the printer (PPD) with the print spooler.

Enter the following command:

/usr/sbin/lpadmin -p [printer name] -m [PPD file name] -v ccp:/var/ccpd/fifo0 -E

Example: To register the LBP5000 in the print spooler as “LBP5000”:

/usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

I did a google search on “opensuse register the printer PPD with the print spooler” and got this canon printer - openSUSE Forums in this previous forum,

at the end of post #3 in Final Notes,

the guy is talking of his ip2600 inkjet printer

Final Notes:
The install instructions include a step called “Register the Printer to the Spooler.” A sample command is shown, so this is easy to do. However, part of the command needs two things that are peculiar to your computer after you install the .debs.
Printer name and the URI may be easily found at System, Administration, Printing … and your iP2600 PPD can be found using “locate *.ppd” at the command line.

If it helps, mine was located in /usr/share/ppd/canonip2600.ppd, and after the Registration command, in /etc/cups/ppd/canonip2600.ppd

so it seems like you may have to edit the canon command;

this post Nabble - openSUSE community - Canon’s PPD file for the iR3300 prineter is not accepted in openSUSE 10.3

talked of

The workaround is to install 3rd party PPD files directly
> i.e. copy them manually to /usr/share/cups/model/downloaded/

not sure if any of this is of any use

I got the drivers from Canon Europe. The drivers on the Canon site included:

CAPTDRV160.tar.gz (rpm & deb files)
guide-capt-1.6xE.tar.gz (Canon HTML installation guide)

I got the commands from the Canon HTML installation guide. NB - these guides worked perfectly on Ubuntu. I managed to get the printer to print the test pages in the Ubuntu driver screens (though not from the applications). However, on OpenSUSE I am getting lpadmin: Bad device-uri “ccp:/var/ccpd/fifo0”! when I try to register the printer (ppd) to the spooler with the following command: /usr/sbin/lpadmin -p LBP3300 -m CNCUPSLBP3300CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

Thanks for all your patience. I shall try all the solutions posted though I put the highest priority on solving the problem with the official Canon instructions.

P.S. If you recall, in my first post, I complained of getting “missing dependency…” or “nothing provides…” when I tried to install sundry packages with Yast. Well, I solved the problem. This is how.

  1. I re-installed OpenSUSE 11.0 (x86_64)
  2. During the installation screen, I added the following software package (which is not installed by default): 32 bit runtime
  3. Upon installation, I loaded all the repositories when YAST asked me to configure the repositories for the first time.

Now, I no longer have those dependency problems and I can run i386 packages without a problem.

By the way, the more I use Linux (OpenSuSE) the more I like it. I’m determined to solve this problem. Though it is frustrating, it does have a silver lining - I am getting increasingly familiar with the CLI. At this rate, I’ll never go back to another OS.

I did a google search on


I discover that

ccp is “command control protocol” and is used to communicate to things like printers, etc.

and amidst the hits, this excellent Ubuntu description, that would help anyone in any distro

when you entered the command

/usr/sbin/lpadmin -p LBP3300 -m CNCUPSLBP3300CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

and got back

lpadmin: Bad device-uri "ccp:/var/ccpd/fifo0

the response

Bad device-uri

seems to mean

is missing: can you check …

eg this forum Quick question for adding smb support to Cups -

eg the Ubuntu forum mentioned earlier: near the end of step 3, creates a fifo0

this Ubuntu post certainly is very detailed

an example of making fifo is from this Debian post -=Raphaël Doursenaud=- / Debian / CAPT how-to](

Then create the directories and fifos needed by the daemon (ccpd) and the monitor (captmon) :

mkdir /var/ccpd

mkdir /var/captmon

mkfifo /var/ccpd/fifo0

You can make more fifos if you own more than one CAPT printer, naming them fifo1, fifo2

but don’t see it as a primary source, as it has been integrated into the excellent Ubuntu guide

Thanks for contribution. Yes, I did exactly that and I found that excellent Ubuntu guide (ironically, when I installed the LBP3300 on Ubuntu, I had absolutely no problems - I followed the Canon installation guide step-by-step and it worked perfectly).

Anyway, let me show you what I did. I hope that doing so will help clarify the problem:

rpm -ivh cndrvcups-common-1.60-1.i386.rpm (installed and verified)
rpm -ivh cndrvcups-capt-1.60-1.i386.rpm (installed and verified)
/etc/init.d/cups restart (cups restarted)
/usr/sbin/lpadmin -p LBP3300 -m CNCUPSLBP3300CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

When I entered that last command, I got the following error message:

lpadmin: Bad device-uri “ccp:/var/ccpd/fifo0”!

I googled like crazy and found that Ubuntu guide

I went to step 3, shut down cups and started:

mkdir /var/ccpd

I got:

mkdir: cannot create directory `/var/ccpd’: File exists

Well, that is at it should be. So I went on to the next command on the list:

mkdir /var/captmon

I got the same reply:

mkdir: cannot create directory `/var/captmon’: File exists

Ditto. Time to create the Fifo0

mkfifo /var/ccpd/fifo0

I got:

mkfifo: cannot create fifo `/var/ccpd/fifo0’: File exists

Ok, I thought at this stage, perhaps it’s a problem with permissions. I typed out:

ls -lh /var/ccpd

I got:

prwxrwxrwx 1 root lp 0 2008-09-18 10:22 fifo0

Which is accessible for everyone. Following the next steps, I typed:

chown root /var/ccpd/fifo0
chmod -R a+rX /usr/share/cups/model

Then I restarted CUPS

/etc/init.d/cups start

Finally, with great trepidation, I typed in the infamous command:

/usr/sbin/lpadmin -p LBP3300 -m CNCUPSLBP3300CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

…and I got the notorious reply:

lpadmin: Bad device-uri “ccp:/var/ccpd/fifo0”!

Heh. At this stage, I’m thinking that the answer lies here in this quotation:

the guy is talking of his ip2600 inkjet printer

Final Notes:
The install instructions include a step called “Register the Printer to the Spooler.” A sample command is shown, so this is easy to do. *However, part of the command needs two things that are peculiar to your computer after you install the .debs.
Printer name and the URI may be easily found at System, Administration, Printing … and your iP2600 PPD can be found using "locate .ppd" at the command line.

If it helps, mine was located in /usr/share/ppd/canonip2600.ppd, and after the Registration command, in /etc/cups/ppd/canonip2600.ppd
so it seems like you may have to edit the canon command;

Source: Canon/CUPS problem - openSUSE Forums

Unfortunately, I have the following problems:

  1. I don’t know what the URI is.
  2. I don’t where to find it (I couldn’t find it in YAST)
  3. I don’t know how to re-write the register the printer to spooler command.

Thank you once again.

have googled as you have, and can find no clear help;


lpadmin: Bad device-uri "ccp:/var/ccpd/fifo0

seems to be very associated with Canon LBP that run on the proprietary Captiva technology: I see posts in Debian and Gentoo and even the inhabitants of such esteemed forums do not post replies;

a couple of comments: interesting to me that directories fifo and ccpd etc existed: I certainly do not have them on a standard Suse install; and Ubuntu says to create them; and one wonders if the two rpms that you ran somehow created them already …???

how does http://localhost:631/ look for you at present? Open your web browser and type the above in: some folks seem to need to enter a root password; our systems don’t; (I don’t know why); but it is all on your local machine, so a root password is deemed to be fine if needed; even if entered into the web browser

Hmm. Tell you what, I’ll re-format and re-install and check for those folders in a fresh installation of Suse. I’ll then try to install those RPMs via YAST and carry out the rest of the process through CLI.

What is funny is that the process worked flawlessly on Ubuntu.

best wishes

Thanks. Sigh. Tried it, but no cigar. Still that ****:

lpadmin: Bad device-uri “ccp:/var/ccpd/fifo0”!

I’m not going to get anywhere until I find out what that ****

Bad device-uri
is. If anyone finds out, please let me know. Meanwhile, I’ll try some other distros and see what happens. Thanks to everyone for their help. If I find a solution, rest assured, I’ll post it.

try mepis; said to be very good for hardware configuration

and/or try joining some of the general linux forums: eg just linux, linux questions; folks from various questions contribute, so you may well get a bigger spread of views;

can I trouble you a couple of quick questions:

if logged into a terminal as user you go

cd /var

and then at the prompt after entering that

and hit enter, what do you get?

and if you do get ccpd amongst others, and you go

cd /ccpd
and hit enter

and enter, do you find fifo amongst the list?

and what does http://localhost:631/ in the browser give you, if you click “manager printer”?