Canon CAPT

出自 ArchWiki
注意: 请参阅 CUPS 主条目,以及 CUPS/打印机特定问题 以获取关于非 CAPT Canon 打印机的信息

CAPT (Canon Advanced Printing Technology) 是佳能的专有驱动程序,支持 Canon i-Sensys 系列激光打印机。 更多信息,请参阅 在 Ubuntu 上设置 CAPT 打印机

安装

安装 capt-srcAUR 软件包。 它依赖于 32 位库软件包,并且需要 启用 multilib

还有一个早期 alpha 阶段的开源 CAPT 驱动程序,此处未描述,可作为 captdriver-gitAUR 获取。

配置

佳能的驱动程序使用本地守护程序与打印机通信,并使用 CUPS 驱动程序对其进行封装。

要配置打印机,请按照 CUPS 文章,添加一个 CAPT 打印机 并使用 ccp://localhost:59787打印机 URI。 使用 lpinfo -m 查找正确的型号,或查看 Ubuntu 帮助页面 上提供的表格,该表格将每个受支持的打印机与其对应的 PPD 匹配。

注意
  • 通过 CUPS Web 界面安装 CAPT 打印机可能无法工作 [1]。 请改用 CLI 工具
  • 如果端口 59787 不起作用,请尝试端口 59687
  • 某些型号有多个 PPD,其中最后一个字母表示区域型号(J = 日本,K = 英国,S = 美国)

接下来,通过 ccpdadmin 在 CAPT 驱动程序本身中注册打印机。 将 queue_name 替换为队列描述性名称,将 printer_address 替换为 USB 端口(例如 /dev/usb/lp0)(如果是本地打印机)或 IP 地址,以 net: 为前缀(例如 net:192.168.1.100)(如果是网络打印机)

# ccpdadmin -p queue_name -o printer_address

例如,对于 USB 打印机(如果有多台 USB 连接的打印机,请阅读 #与其他打印机冲突

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

或者对于网络打印机

# ccpdadmin -p LBP6310 -o net:192.168.1.100

启动/启用 CAPT 守护程序 ccpd.service

要移除打印机

# ccpdadmin -x queue_name

CAPT 状态监视器

本地 CUPS

该驱动程序包含一个状态监视器,可以使用以下命令启动

$ captstatusui -P printer_model

例如

$ captstatusui -P LBP6310

如果您只希望在出现问题时弹出状态监视器,只需附加 -e 开关

$ captstatusui -P LBP6310 -e

远程 CUPS

不幸的是,本地安装的 captstatusui 将无法检测到远程 CUPS 服务器上的 CAPT 打印机。

但是,可以使用 SSHX11 转发来实现远程打印监控。

警告: X11 转发具有重要的安全隐患,尤其是在使用 -Y 开关(ForwardX11Trusted,通过 X11 转发使 CAPT 状态监视器工作所必需)时。 请参阅 X11 转发 以获取更多信息。
注意: 设置 X11 转发的方法有很多种。 出于安全原因,此示例基于公钥身份验证、专用 SSH 用户帐户以及在 CUPS 服务器上运行的 SSH。 请根据您的具体配置调整这些说明。

客户端配置

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

服务器配置

  • 创建一个新用户 capt
  • 将以下部分附加到 /etc/ssh/sshd_config重启 SSH 守护程序或套接字
...
Match User capt
       X11Forwarding yes
       PermitTTY no
       ForceCommand captstatusui -P printer_model -e
       AuthenticationMethods publickey

例如

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

可以通过将每个用户添加到 capt 组,然后使用 Match Group 规则,将其扩展为包含多个用户(使用单个共享 SSH 密钥或每个用户使用唯一的 SSH 密钥)

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

故障排除

与 CUPS 冲突

为了防止 CUPS 访问我们的仅 CAPT 打印机(并使用通过 USB 的多个设置请求混淆固件),可以将不受支持的 VID/PID 对列表添加到 /usr/share/cups/usb/ 中。 可以创建一个新文件(例如 capt-printers.usb-quirks)以防止列表被 CUPS 更新覆盖。 请参阅 GitHub 上的问题:Cups attempts to probe, configure unsupported Canon CAPT USB printers

与其他打印机冲突

连接到计算机的其他打印机可能会创建它们自己的 /dev/usb/lpN 条目,甚至可能在您的 Canon 打印机被枚举和初始化之前,导致 CAPT 访问它不应该访问的设备。 可以通过 Udev 基于 USB VID/PID 和(可选)dmesg 中报告的序列号自动创建到 USB 设备的符号链接。

/etc/udev/rules.d/50-canon.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="271c", ATTRS{serial}=="0000A2BARL02", SYMLINK+="usb/lbp7010c"

然后,将符号链接路径添加到 CCPD

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

来源:Arch 论坛: "/dev/usb/lp1" 被用于打印机,而不是 "/dev/usb/lp0"