Canon CAPT

From ArchWiki
Revision as of 01:24, 12 April 2012 by Zwastik (talk | contribs) (Installation: typo)
Jump to navigation Jump to 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 (system-config-printer-gnome/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.


Also you can search in for your printer driver, newest version is v240 at least for the lbp-3200 (checked april 2012).

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 above 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 next command which 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:

# echo -e '#Own udev rule for Canon-CAPT\nSUBSYSTEM=="usb", KERNEL=="lp*", RUN+="/etc/rc.d/ccpd restart"' <no line break>
> /etc/udev/rules.d/85-canon-capt.rules

Reload Rules:

# udevadm control --reload-rules

More about udev rules you can see here:

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