Canon CAPT

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Note: See CUPS for the main article, and CUPS/Printer-specific problems for information on non-CAPT Canon printers

CAPT (Canon Advanced Printing Technology) is Canon's proprietary driver, supporting the Canon i-Sensys series of laser printers. For more information, see Setting up CAPT printers on Ubuntu.

Installation

Install the capt-srcAUR package. It depends on 32-bit library packages and requires enabling multilib.

There is also an open source CAPT driver in early alpha stage not described here, available as captdriver-gitAUR.

Configuration

Canon's driver uses a local daemon to communicate with the printer, and wraps that using a CUPS driver.

To configure the printer, follow the CUPS article, adding a CAPT printer and using a Printer URI of ccp://localhost:59787. Find the right model using lpinfo -m, or check the table provided on the Ubuntu help page, which matches each supported printer with its corresponding PPD.

Note:
  • Installing CAPT printers via the CUPS web interface may not work [1]. Instead, use the CLI tools.
  • If port 59787 does not work, try port 59687.
  • Some models have multiple PPDs, where the last letter indicates the regional model (J = Japan, K = United Kingdom, S = United States)

Next, register the printer with the CAPT driver itself via ccpdadmin. Replace queue_name with the queue descriptive name and printer_address with either the USB port (e.g. /dev/usb/lp0) in case of a local printer or the IP address, prefixed by net: (e.g. net:192.168.1.100), in case of a network printer:

# ccpdadmin -p queue_name -o printer_address

For example, for a USB printer:

# ccpdadmin -p LBP6310 -o /dev/usb/lp0

Or for a network printer:

# ccpdadmin -p LBP6310 -o net:192.168.1.100

Start/enable the CAPT daemon with ccpd.service.

To remove a printer:

# ccpdadmin -x queue_name

CAPT status monitor

Local CUPS

The driver includes a status monitor which can be launched with

$ captstatusui -P printer_model

e.g.

$ captstatusui -P LBP6310

If you only want the status monitor to pop up when a problem occurs, simply append the -e switch:

$ captstatusui -P LBP6310 -e

Remote CUPS

Unfortunately, a local installation of captstatusui will not detect CAPT printers on a remote CUPS server.

Remote print monitoring can be achieved, however, using SSH and X11 forwarding.

Warning: X11 forwarding has important security implications, especially when using the -Y switch (ForwardX11Trusted, required for the CAPT status monitor to work via X11 Forwarding). See X11 forwarding for further information.
Note: There are many ways to set up X11 forwarding. For security reasons, this example is based on public key authentication, a dedicated SSH user account, and SSH running on the CUPS server. Adapt these instructions to your specific configuration.

Client configuration

#!/bin/sh
ssh -T -Y -i ~/.ssh/capt remote_server_hostname_or_IP_address < /dev/null

Server configuration

  • create a new user capt
  • append the following section to /etc/ssh/sshd_config and restart the SSH daemon or socket
...
Match User capt
       X11Forwarding yes
       PermitTTY no
       ForceCommand captstatusui -P printer_model -e
       AuthenticationMethods publickey

e.g.

...
Match User capt
       X11Forwarding yes
       PermitTTY no
       ForceCommand captstatusui -P LBP6310 -e
       AuthenticationMethods publickey

This can be extended to include multiple users (using a single, shared SSH key or each with a unique SSH key) by adding each user to a capt group, then using a Match Group rule:

...
Match Group capt
       X11Forwarding yes
       PermitTTY no
       ForceCommand captstatusui -P LBP6310 -e
       AuthenticationMethods publickey