Canon CAPT

From ArchWiki
Revision as of 05:56, 30 November 2011 by Tutroc77 (talk | contribs) (Register printer)
Jump to: navigation, search


This is a brief manual about how to make Canon i-sensys LBP2900 (LBP2900) to work with arch. This manual can be also applied on folowing printer models: LBP3010/LBP3018/LBP3050, LBP3100/LBP3108/LBP3150, LBP3250, LBP3310, LBP5100, LBP5300, LBP3500, LBP3300, LBP5000, LBP3210, LBP3000, LBP2900, LBP3200, LBP-1120, LBP-1210

Note: if you can find your printer model on the list use this manual, and switch [printer model] with your printer model


  • cups
  • ghostscript
  • gsfonts
  • system-config-printer
  • (addition: system-config-printer-gnome)
  • (addition: kdeadmin-system-config-printer-kde)

Install with:

# pacman -S cups ghostscript gsfonts rpmextract system-config-printer

Additional requirements on Arch64

Install with:

# pacman -S lib32-libcups lib32-heimdal lib32-libxml2

And build the aur package using ABS.


For information about setting up cups, refer to CUPS.


Download the driver and extract it:

# wget
# tar -xvf Linux_CAPT_PrinterDriver_V230_uk_EN.tar.gz
# cd Linux_CAPT_PrinterDriver_V230_uk_EN/32-bit_Driver/RPM
or: # cd Linux_CAPT_PrinterDriver_V230_uk_EN/64-bit_Driver/RPM (on Arch 64-bit)
# *

The last command abow will extract all rpm-s and merge all directories that were stored in them. So basically you'll get two directories: etc and usr. Next thing you need to do is to open etc directory and change init.d to rc.d. You can also do it by command:

# mv etc/init.d etc/rc.d

Now you can remove rpm-s:

# rm *.rpm

and execute the nexth command wich will merge etc end usr directories with appropriate ones in / directory:

# cp -var * /

Restart cups

# /etc/rc.d/cupsd restart

Add cups daemon in /etc/rc.conf

Open /etc/rc.conf with a text editor of your choice (e.g. nano), and put cups in the list of daemons:

DAEMONS=(... @bluetooth cupsd gdm)

Make folowing directories and fifo0

# mkdir /var/ccpd /var/captmon
# mkfifo /var/ccpd/fifo0

Make fifo0 accessable to everyone:

# chmod 777 /var/ccpd/fifo0

Change the owner of fifo0 into root:

# chown root /var/ccpd/fifo0

Register printer

Register the printer driver with the print spooler with the following command, replacing [printer model] with your printer model and [printer driver file] with your driver file:

# /usr/sbin/lpadmin -p [printer model] -m [printer driver file] -v ccp://localhost:59787 -E
(old method - now wrong: # /usr/sbin/lpadmin -p [printer model] -m [printer driver file] -v ccp:/var/ccpd/fifo0 -E)

for this manual it would be

# /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59787 -E
(old method - now wrong: # /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E)

Register the printer with ccpd daemon, once again replace [printer model] with your printer model:

# /usr/sbin/ccpdadmin -p [printer model] -o /dev/usb/lp0

in this case it is:

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

Make udev rule for your printer

Create an udev rule so when you turn the printer on, printer daemon (ccpd) will start. More about udev rules you can see here:

# echo -e '#Own udev rule for [printer model]\nSUBSYSTEM=="usb", KERNEL=="lp0", RUN+="/etc/rc.d/ccpd restart"' <no line break>
> /etc/udev/rules.d/85-[printer model].rules

in this case:

# echo -e '#Own udev rule for Canon i-sensys LBP2900\nSUBSYSTEM=="usb", KERNEL=="lp0", RUN+="/etc/rc.d/ccpd restart"' <no line break>
> /etc/udev/rules.d/85-LBP2900.rules

Start printer daemon and print

# /etc/rc.d/ccpd start

The printer should now be installed. You could test it by pressing the Print Test Page button.


Related Links/Additional Information - A guide for setting up the printer on ubuntu