Gentoo Wiki


Merge-arrows.gifIt has been suggested that this article be Merged into one article with HOWTO Canon LBP 5000 using proprietary Canon drivers    (Discuss)



This howto describes how to use local printer Canon LBP 2900 using proprietary Canon drivers with CUPS. Main problem with this printer is postscript support absence. Canon proprietary driver includes daemon to convert PS to LBP2900 internal format (Canon Printer Daemon).


First of all download last drivers here You should download two files:

  1. cndrvcups-capt
  2. cndrvcups-common
Warning: Tarballs ( .tar.gz files ) is the source code. I got a lot of compilation errors on Gentoo.
Warning: I did succesful test only on drivers version 1.30-1. Did not test others.

Binary drivers are available only as RPM. I installed it using rpm command with --nodeps flag.

Warning: This driver is installed in /usr/lib/cups directory. But Gentoo CUPS system is located in /usr/libexec/cups. You should move driver files from installation default directory into correct location.


Turn on your printer. Your printer should be available in list of USB devices. You will see something like that if all is ok

Bus 001 Device 002: ID 04a9:2676 Canon, Inc.

Restart cupsd:

/etc/init.d/cupsd restart

Change fifo access mode (if it does not exist you can create it using mkfifo command)

chmod 777 /var/ccpd/fifo0

Create directory and link it to .ppd file

cd /usr/share/ppd/
ln -s /usr/share/cups/model/CNCUPSLBP2900CAPTK.ppd

System printer using lpadmin in CUPS

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

Check if your printer have device node:

ls -l /dev/usb/lp0

and register it using ccpdadmin in Canon Printer Deamon

/usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0

Startup script

Create /etc/init.d/ccpd file:

# ccpd          startup script for Canon Printer Daemon for CUPS
#               Modified for Debian GNU/Linux
#               by Raphael Doursenaud <>.
#               Modified for Gentoo GNU/Linux
#               by NStorm
DESC="Canon Printer Daemon for CUPS"
test -f $DAEMON || exit 0

depend() {
  need net
  after cupsd

start() {
  ebegin "Starting $DESC: $NAME"
  start-stop-daemon --start --quiet --exec $DAEMON
  eend $?

stop() {
  ebegin "Stopping $DESC: $NAME"
  start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
  eend $?

status() {
 echo "$DESC: $NAME:" `pidof $NAME`


Run ccpd, add deamons to startup

/etc/init.d/ccpd start
rc-update add ccpd default
rc-update add cupsd default

Your printer should be available in CUPS now.

Retrieved from ""

Last modified: Sat, 23 Aug 2008 13:53:00 +0000 Hits: 8,670