Jump to content

# Canon CAPT

1 language

- 日本語

From ArchWiki

Related articles

- CUPS
- CUPS/Printer-specific problems

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 (in case of multiple USB-connected printers, read #Collisions with other printers):

    # 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

- create a new SSH key `~/.ssh/capt` and copy the public key to the remote server
- create a file `captstatusui.sh` with the following content, make it executable and place it in your autostart folder:

    #!/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

## Troubleshooting

### Conflict with CUPS

To prevent CUPS from accessing our CAPT-only printer (and confusing the firmware with multiple setup requests over USB), a list of unsupported VID/PID pairs may be added into `/usr/share/cups/usb/`. A new file (e. g. `capt-printers.usb-quirks`) may be created to prevent the list from getting overwritten by CUPS updates. See the issue on GitHub: Cups attempts to probe, configure unsupported Canon CAPT USB printers.

### Collisions with other printers

Other printers connected to the computer may create their own /dev/usb/lpN entries, possibly even before your Canon printer is enumerated and initialized, causing CAPT to access devices it shouldn't be touching. A symlink to the USB device can be created automatically by Udev based on the USB VID/PID and (optionally) the serial number reported in `dmesg`.

    /etc/udev/rules.d/50-canon.rules

    SUBSYSTEMS=="usb", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="271c", ATTRS{serial}=="0000A2BARL02", SYMLINK+="usb/lbp7010c"

Then, add the symlinked path to CCPD:

    # ccpdadmin -p LBP7010C -o /dev/usb/lbp7010c

Source: Arch Forums: "/dev/usb/lp1" is used instead of "/dev/usb/lp0" for printers

Category:

- Printers