CUPS 故障排除

出自 ArchWiki

本文涵盖了 CUPS 和打印驱动程序的所有非特定(即,与任何一台打印机无关)故障排除(但不包括与打印机共享相关的问题),包括确定问题确切性质的方法以及解决已识别问题的方法。

调试日志

让打印工作起来的最佳方法是在 /etc/cups/cupsd.conf 中将 LogLevel 设置为

LogLevel debug

然后像这样查看 /var/log/cups/error_log 的输出

# tail -n 100 -f /var/log/cups/error_log

输出左侧的字符代表

  • D=调试
  • E=错误
  • I=信息
  • 等等

这些文件也可能被证明是有用的

  • /var/log/cups/page_log - 每次打印成功时都会回显一个新条目
  • /var/log/cups/access_log - 列出所有 cupsd http1.1 服务器活动

打印文档并观察 error_log,以获得更详细和正确的打印过程图像。

升级导致的问题

CUPS 和相关程序包版本递增后出现的问题

CUPS 停止工作

可能是新版本需要新的配置文件才能正常工作。例如,尝试通过 localhost:631 管理 CUPS 可能会导致“404 - page not found”(404 - 页面未找到)等消息。

要使用新配置,请将 /etc/cups/cupsd.conf.default 复制到 /etc/cups/cupsd.conf(如果需要,备份旧配置),然后重启 CUPS 以应用新设置。

所有作业都“已停止”

此文章或章节的 事实准确性 存在争议。

原因: 这似乎是一种相当粗暴的修复方法;也许打印机只是被禁用了?(在 Talk:CUPS/Troubleshooting 中讨论)

如果发送到打印机的所有作业都变为“已停止”,请首先检查 /var/log/cups/error_log 中的错误日志。如果它没有提供任何有用的提示来指示问题的根源,请删除打印机并重新添加。使用 CUPS Web 界面,转到 Printers > Delete Printer(打印机 > 删除打印机)。

要检查打印机的设置,请转到 Printers(打印机),然后转到 Modify Printer(修改打印机)。复制显示的信息,单击“Modify Printer”(修改打印机)以继续到下一页,依此类推。

所有作业都显示“打印机未响应”

对于网络打印机,您应该检查打印机的 URI 中的主机名是否通过 DNS 解析为打印机的 IP 地址,例如,如果您的打印机连接如下所示

lpd://BRN_020554/BINARY_P1

那么主机名“BRN_020554”需要从运行 CUPS 的服务器解析为打印机的 IP。如果正在使用 Avahi,请确保 Avahi 的主机名解析工作正常。

或者,将 URI 中使用的主机名替换为打印机的 IP 地址。

PPD 版本与 gutenprint 不兼容

运行

# /usr/bin/cups-genppdupdate

并重启 CUPS(如 gutenprint 的安装后消息中指出的那样)。

与 2.3.3 -> 2.4.0 升级相关的问题

此文章或章节正在考虑移除。

原因: 这发生在 2021 年 11 月。新行为应该已经在故障排除页面之外的文档中记录了。(在 Talk:CUPS/Troubleshooting 中讨论)

CUPS 现在通过报告所需的属性和 DNS-SD TXT 记录键,正式支持 AirPrint 和 Mopria 客户端(包括 Windows 10)。它还包括对 huffy iOS 客户端的有限支持。以下新功能列表摘自 CUPS 发行说明

  • 新的 ReadyPaperSizes 指令,用于指定每个打印机的“已加载”(就绪)介质;实际列表基于打印机支持的介质尺寸,并允许用户从简短列表中选择尺寸。默认列表基于区域设置(A4 等,但在北美使用 Letter 等)
  • 图像/urf 的正确 URF/urf-supported 值。
  • 其他所需的属性/键。

作为新的就绪介质传播的副作用,IOS 客户端可能会显示错误的介质类型(例如,US letter 而不是 DIN/ISO A4)。获取 ISO 介质类型的最佳方法是在 /etc/cups/cupsd.conf 中将 DefaultPaperSize 设置为

DefaultPaperSize A4

对于 ISO。此外,应正确配置 系统默认纸张尺寸

注意: CUPS 仅为 IOS 客户端提供一组主要介质尺寸。此集合从默认介质尺寸集合(请参阅 ReadyPaperSizes)和 PPD 中的尺寸或 DefaultPaperSize(如果尺寸都不匹配)中匹配。

网络问题

无法添加打印机或显示消息“正在打印”,但没有任何反应

例如,在 GNOME 打印机设置中,您可能会发现添加打印机时遇到问题,即使您已安装驱动程序。您可以尝试安装 system-config-printer 并通过终端执行它,然后从那里添加打印机(例如,使用 LPD/LPR 队列“PASSTHRU”)。

无法找到打印机

即使 CUPS 可以检测到网络打印机,在尝试打印某些内容时,您仍然可能会遇到“Unable to locate printer”(无法找到打印机)错误。此问题的解决方案是启用 Avahi 的 .local 主机名解析。有关详细信息,请参阅 CUPS#网络

当您有防火墙时,也可能出现此问题。您可能需要禁用防火墙或设置正确的规则。使用 system-config-printer 检测网络打印机将自动执行此操作。

同样,连接到 VPN 也可能导致 CUPS 无法找到打印机。临时禁用任何 VPN 连接进行打印可以帮助解决此问题。

旧的 CUPS 服务器

从 CUPS 版本 1.6 开始,客户端默认使用 IPP 2.0。如果服务器使用 CUPS <= 1.5 / IPP <= 1.1,则客户端不会自动降级协议,因此无法与服务器通信。一种解决方法是将 [1] 中记录的 version=1.1 选项附加到 URI。

无法找到 PPD 文件

/var/log/cups/error_log
Cannot connect to remote printer ipp://HP079676.local
copy_model: empty PPD file

确保 Avahi 设置正确。特别是,确保安装了 nss-mdns 并在 /etc/nsswitch.conf 中设置。

查找 Windows 打印服务器的 URI

有时,Windows 在确切的设备 URI(设备位置)方面不太配合。如果在 CUPS 中指定正确的设备位置时遇到问题,请运行以下命令以列出特定 Windows 用户名可用的所有共享

$ smbtree -U windowsusername

只要 Samba 设置并运行正常,这将列出本地局域网子网上特定 Windows 用户名可用的每个共享。它应该返回类似这样的内容

 WORKGROUP
	\\REGULATOR-PC   		
		\\REGULATOR-PC\Z              	
		\\REGULATOR-PC\Public         	
		\\REGULATOR-PC\print$         	Printer Drivers
		\\REGULATOR-PC\G              	
		\\REGULATOR-PC\EPSON Stylus CX8400 Series	EPSON Stylus CX8400 Series

这里需要的是最后一行的第一部分,即与打印机描述匹配的资源。因此,要打印到 EPSON Stylus 打印机,应输入

smb://username:password@REGULATOR-PC/EPSON%20Stylus%20CX8400%20Series

作为 URI 进入 CUPS。

USB 打印机

与 SANE 冲突

如果您也在运行 SANE,则可能与 CUPS 冲突。要解决此问题,请创建一个 Udev 规则,将设备标记为与 libsane 匹配

/etc/udev/rules.d/99-printer.rules
ATTRS{idVendor}=="vendor id", ATTRS{idProduct}=="product id", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

与 usblp 冲突

可以使用两种方法访问 USB 打印机:usblp 内核模块和 libusb。前者是经典方法。它很简单:通过将数据写入设备文件作为简单的串行数据流,将数据发送到打印机。读取同一个设备文件允许双向访问,至少对于读取墨水液位、状态或打印机功能信息 (PJL) 等操作。它对于简单的打印机非常有效,但对于多功能设备(打印机/扫描仪),它不适用,HP 等制造商提供自己的后端。来源:此处[死链 2024-11-05 ⓘ]

警告:cups 版本 1.6.0 开始,不再需要将 usblp 内核模块列入黑名单。如果您发现这是解决剩余问题的唯一方法,请向上游 CUPS 错误跟踪器报告此问题,也可能与 Till Kamppeter(Debian CUPS 维护者)联系。有关更多信息,请参阅 上游错误

如果您在使 USB 打印机工作时遇到问题,可以尝试将 usblp 内核模块 列入黑名单

/etc/modprobe.d/blacklistusblp.conf
blacklist usblp

自定义内核用户可能需要在继续之前手动加载 usbcore 内核模块

安装模块后,运行

# journalctl -f

然后插入打印机并检查输出,查看是否检测到它。

如果您正在使用 usblp,则输出应指示已检测到打印机,如下所示

Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver

如果您将 usblp 列入黑名单,您将看到类似这样的内容

usb 3-2: new full speed USB device using uhci_hcd and address 3
usb 3-2: configuration #1 chosen from 1 choice

USB 自动挂起

当有驱动程序支持且设备未使用时,Linux 内核会自动挂起 USB 设备。这可以节省电量,但某些 USB 打印机认为当内核挂起 USB 端口时它们已断开连接,从而阻止打印。这可以通过禁用特定设备的自动挂起来解决,请参阅 电源管理#USB 自动挂起

错误的权限

检查打印机 USB 设备的权限。从 lsusb 获取总线和设备号

$ lsusb
Bus <BUSID> Device <DEVID>: ID <VENDOR>:<PRINTERID> Hewlett-Packard DeskJet D1360

通过查看 devfs 检查所有权

# ls -l /dev/bus/usb/BUSID/DEVID

cups 守护程序以用户“cups”身份运行,并属于组“lp”,因此该用户或组需要对 USB 设备具有读写访问权限。如果您认为权限看起来不正确,可以临时更改组和权限

# chgrp lp /dev/bus/usb/BUSID/DEVID
# chmod 664 /dev/bus/usb/BUSID/DEVID

然后检查 cups 现在是否可以正确看到 USB 设备。

要进行持久的权限更改,以便在每次连接 USB 设备时自动触发,请添加以下行

/etc/udev/rules.d/10-local.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="VENDOR", ATTRS{idProduct}=="PRINTERID", GROUP:="lp", MODE:="0664"

编辑后,使用以下命令重新加载 udev 规则

# udevadm control --reload-rules

每个系统可能有所不同,因此请查阅 udev#列出设备的属性 Wiki 页面。

HP 问题

此文章或章节是与 CUPS/打印机特定问题#HP 合并的候选对象。

说明: 不应有两个不同的地方讨论这些问题。(在 Talk:CUPS/Troubleshooting 中讨论)

CUPS:“/usr/lib/cups/backend/hp failed”

尝试使用 http:// 协议将打印机添加为网络打印机。

注意: 可能需要设置正确的权限问题。

CUPS:作业显示已完成,但打印机无任何反应

当您选择(旧的)hpijs 驱动程序(例如,Deskjet D1600 系列)时,HP 打印机上会发生这种情况。请改用 hpcups 驱动程序。

某些 HP 打印机需要每次打开打印机时都从计算机下载固件。如果 udev(或等效项)存在问题,并且固件下载规则从未触发,您可能会遇到此问题。作为一种解决方法,您可以手动将固件下载到打印机。确保打印机已插入并已打开,然后运行

# hp-firmware -n

CUPS:“'foomatic-rip' 不可用/已停止,状态为 3”

如果在 /var/log/cups/error_log 中使用 HP 打印机时收到以下任何错误消息,并且作业似乎正在处理,但最终都未完成,其状态设置为“stopped”(已停止)

Filter "foomatic-rip" for printer printer_name not available: No such file or director

PID pid (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!

请确保已安装 hplip

CUPS:“Filter failed”(过滤器失败)

“filter failed”(过滤器失败)错误可能是由多种问题引起的。CUPS 错误日志(默认为 /var/log/cups/error_log)应记录哪个过滤器失败以及原因。

缺少 ghostscript

安装 ghostscript/usr/lib/cups/filter/gstoraster 需要它才能运行)。

缺少 foomatic-db

安装 foomatic-dbfoomatic-db-ppds。这在某些情况下可以解决问题。

Avahi 未启用

启动启用 avahi-daemon 服务。

插件过时

此错误也可能表明插件已过时(版本不匹配),并且可能在系统升级后发生,可能在日志中显示为 Plugin error 消息。如果您已安装 hplip-pluginAUR,您将需要更新软件包,否则重新运行 hp-setup -i 以安装最新版本的插件。

打印机配置过时

hplip-pluginAUR v3.17.11 开始,hpijs 不再可用。如果您有使用 hpijs 的打印机,它们将无法打印。您必须修改它们并选择新的 hpcups 驱动程序。

您可以查看 cups error_log 以检查是否是这种情况

$ grep hpijs /var/log/cups/error_log
...
D [09/Jan/2018:14:32:58 +0000] [Job 97] sh: hpijs: command not found
...

客户端和主机都运行带有 hpcups 的 CUPS

注意: 以下问题已在 FreeBSD 论坛上描述。在此处阅读更多内容

当主机使用来自 hplip 的 hpcups 驱动程序共享物理连接的 HP 打印机,并且客户端通过 IPP 在其自己的 CUPS 服务器中添加共享打印机时,似乎会影响 CUPS,也使用 hpcups 驱动程序。在每次尝试从客户端打印页面时,客户端的作业页面无限期地返回“正在向打印机发送数据”,而主机的同一页面返回“Filter failed”(过滤器失败)。似乎作业在 CUPS 过滤器中运行两次:第一次在客户端,第二次在主机端,这导致它在主机端失败。从 Windows 客户端打印或直接在主机上打印时,不应观察到相同的错误。这里有一些解决方法(仅使用一种方法)

  • 在客户端上使用 Generic IPP Everywhere Printer 驱动程序。在 CUPS Web 界面中选择驱动程序时,您应该在 Generic 制造商中找到它。
  • 修改客户端上使用的 PPD,以便作业不通过客户端过滤器。在 /usr/share/ppd/HP 中找到正确的 PPD,并将其复制到您的主目录中。编辑副本:将行 *cupsFilter: "application/vnd.cups-raster 0 hpcups" 替换为 *cupsFilter: "*/* 0 -"。现在,在客户端 CUPS 上添加您的打印机,选择位于您主目录中的自定义 PPD。
  • 在主机上创建原始队列:当您在主机的 CUPS 界面中添加打印机时,不要选择打印机的特定 PPD,而是从 Raw 制造商中选择 Raw queue(原始队列)。您应该能够在此客户端上添加此共享打印机,这次使用打印机的特定 PPD。使用此方法,主机无法直接打印文档,因为它不运行过滤器。但是,如果主机是一个小型无头嵌入式设备(如 Raspberry Pi),您可能会注意到使用此方法与前两种方法相比,响应时间显着减少,尤其是在处理大型文档时,因为它节省了大量 CPU 使用率。

CUPS:在 HP LaserJet 上只打印空白页或单页以及错误消息页

存在一个错误,导致 CUPS 在 HP LaserJet 上打印图像时失败(在 LasertJet 3380 和 LaserJet 1300 上最近在 2024 年 7 月也观察到)。该错误已由 Ubuntu 报告并修复。第一页是空白页,第二页包含以下错误消息

 ERROR:
 invalidaccess
 OFFENDING COMMAND:
 filter
 STACK:
 /SubFileDecode
 endstream
 ...

此问题也可能以不同的方式出现,即需要很长时间才能开始打印,然后打印单页,然后是另一页包含以下错误消息的页面

 ERROR:
 typecheck
 OFFENDING COMMAND:
 idiv
 STACK:
 50000
 --nostringval--
 --nostringval--
 -mark-
 -mark-
 -mark-
 -mark-

为了解决这些问题,以 root 身份运行以下命令

# lpadmin -p printer -o pdftops-renderer-default=pdftops

CUPS:“File "/usr/lib/cups/filter/rastertospl" not available”(文件 "/usr/lib/cups/filter/rastertospl" 不可用)

在通过其他方式将打印机连接到网络后,可以通过 CUPS Web 界面设置 HP 107w 激光打印机;但是,此错误会阻止打印。

似乎 hplip 不提供对此打印机的支持。但是,可以使用 HP 的安装脚本和 PPD 文件安装驱动程序,这些文件可在 HP 下载页面上找到。

解压 .zip 文件并阅读此 gist 以获取更多详细信息和说明。

如果此问题在 PPD 包(如 foomatic-*)更新后出现,请检查打印机是否有新的 PPD,并尝试使用新的 PPD。

截至 2022 年 1 月,三星 M283x 的新驱动程序在名称中包含 PXL,并且 PPD 不引用 rastertospl,打印机再次工作。通过上述方法获取 rastertospl 无效,因为参数传递顺序错误。

HPLIP 3.13:插件已安装,但 HP 设备管理器抱怨未安装

问题可能与对 /var/lib/hp/hplip.state 所做的文件权限更改有关。要纠正此问题,简单的 chmod 644 /var/lib/hp/hplip.statechmod 755 /var/lib/hp 应该就足够了。有关更多信息,请阅读此链接

hp-toolbox:“Unable to communicate with device”(无法与设备通信)

# hp-toolbox
# error: Unable to communicate with device (code=12): hp:/usb/printer id

虚拟 CDROM 打印机

这也可能是由 P1102 等打印机引起的,这些打印机为 MS Windows 驱动程序提供虚拟 CD-ROM 驱动器。lp 出现在 /dev/ 中,然后消失。在这种情况下,请尝试 usb_modeswitch 软件包,该软件包允许您关闭“Smart Drive”(软件包中包含 udev 规则)。

网络打印机

如果 avahi-daemon 未运行,则使用动态主机名的网络连接打印机也可能发生这种情况。另一种可能性是 hp-setup 无法找到打印机,因为打印机的 IP 地址由于 DHCP 而更改。如果是这种情况,请考虑在 DHCP 服务器的配置中为打印机添加 DHCP 保留。如果打印机已经具有静态 IP 并且带有自己的 Web 服务器,请检查是否通过在浏览器中调用打印机的 IP 地址来打开 SNMP:Networking > SNMP(网络 > SNMP)。

hp-setup 要求为发现的打印机指定 PPD 文件

此外,在 hp-setup 的图形模式下选择 PPD 文件时,该字段不会更新,并且不显示任何错误消息。

或者,如果在交互式(控制台)模式下,即使提供了有效 ppd 文件的正确路径,您也可能会遇到类似这样的情况

 Please enter the full filesystem path to the PPD file to use (q=quit) :/usr/share/ppd/HP/hp-deskjet_2050_j510_series.ppd.gz
 Traceback (most recent call last):
   File "/usr/bin/hp-setup", line 536, in <module>
     desc = nickname_pat.search(nickname).group(1)
 TypeError: cannot use a string pattern on a bytes-like object

解决方案是在运行 hp-setup 之前安装并启动 cups

hp-setup:“Qt/PyQt 4 initialization failed”(Qt/PyQt 4 初始化失败)

安装 python-pyqt4AUR[死链:未找到软件包],它是 hplip 的可选依赖项。或者,要使用命令行界面运行 hp-setup,请使用 -i 标志。

hp-setup:自动找到打印机,但在之后立即打印测试页时报告“Unable to communicate with device”(无法与设备通信)

至少对于通过本地网络连接的 HP Officejet 6500A 的 hplip 3.13.5-2 来说,会发生这种情况。要解决此问题,请为 hp-setup 指定 HP 打印机的 IP 地址以找到打印机。

hp-setup:“KeyError: 'family-class'”

如果在 UI 中静默添加打印机失败,或者您从 hp-setup 收到 KeyError: 'family-class' 回溯,则可能需要手动更新 /usr/share/hplip/data/models/models.dat。检查是否在打印机部分中定义了 family-class=Undefined,如果未定义,则添加它

/usr/share/hplip/data/models/models.dat
[hp_laserjet_pro_mfp_m225dw]
...
family-class=Undefined

Broken pipe(管道破裂)

如果 /var/log/cups/error_log 包含 HTTP_STATE_WAITING Closing for error 32 (Broken pipe) 错误,您可能需要安装 hplip-pluginAUR 并重启 cups 服务。

其他

打印机“已暂停”或“已停止”,状态为“Rendering completed”(渲染完成)

墨水不足

当墨水不足时,某些打印机将卡在“Rendering completed”(渲染完成)状态,如果是网络打印机,则打印机甚至可能从 CUPS 的角度变得不可访问,即使它已正确连接到网络。在这种情况下更换墨水不足/耗尽的墨盒将使打印机恢复到“Ready”(就绪)状态,如果是网络打印机,则将使打印机再次可用于 CUPS。

注意: 如果您使用第三方墨盒,打印机报告的墨水液位可能不准确。如果您使用第三方墨水,并且您的打印机过去工作正常,但现在卡在“Rendering completed”(渲染完成)状态,请更换墨盒,而无需考虑报告的墨水液位,然后再尝试其他修复方法。

打印失败,出现未经授权的错误

如果远程打印机请求身份验证,CUPS 将自动在 /etc/cups/printers.conf 中为打印机添加 AuthInfoRequired 指令。但是,某些图形应用程序(例如,某些版本的 LibreOffice [2])无法提示输入凭据,因此打印失败。要解决此问题,请在 URI 中包含所需的用户名和密码。请参阅 [3][4]

Unknown supported format: application/postscript(未知支持的格式:application/postscript)

注释掉 /etc/cups/mime.convs 中的行

application/octet-stream        application/vnd.cups-raw        0      -

/etc/cups/mime.convs 中注释掉,以及

application/octet-stream

/etc/cups/mime.types 中注释掉。

Print-Job client-error-document-format-not-supported(打印作业客户端错误-文档格式不支持)

尝试安装 foomatic 软件包并使用 foomatic 驱动程序。

此文章或章节的 事实准确性 存在争议。

原因: 暗示用户安装了错误的驱动程序没有意义(与本节无关)。(在 Talk:CUPS/Troubleshooting 中讨论)

如果这不能解决问题,您可能需要从打印机列表中删除打印机,然后手动搜索您的打印机驱动程序(通常可以在 AUR 上找到),然后重新添加打印机。

无法获取打印机驱动程序列表

(也适用于错误 "-1 not supported!")

尝试删除 Foomatic 驱动程序,或参考 CUPS/Printer-specific problems#HPLIP 以获取解决方法。

lp: 错误 - 调度器未响应

如果您收到此错误,请确保 CUPS 正在运行,环境变量 CUPS_SERVER 未设置,并且 /etc/cups/client.conf 是正确的。

“Using invalid Host” 错误信息

尝试将 ServerAlias * 添加到 /etc/cups/cupsd.conf 中。

无法从 LibreOffice 打印

如果您可以从 CUPS Web 界面打印测试页,但不能从 LibreOffice 打印,请尝试 安装 a2ps 软件包。

打印机输出偏移

这似乎是由 CUPS 中设置了错误的页面尺寸引起的。

打印机在出现问题后卡住

当打印过程中出现问题时,CUPS 中的打印机可能会变得无响应。 lpq 报告打印机 未就绪,可以使用 cupsenable 重新激活它。 在 CUPS Web 界面中,打印机显示为暂停,可以通过恢复打印机来重新激活。

要使 CUPS 自动重新激活打印机,请将 ErrorPolicy 从默认的 stop-printer 更改为 retry-current-job

Samsung: URF 错误 - 会话超时未完成

此错误通常在通过 IPP 经网络打印文件到三星打印机时遇到,通过使用 samsung-unified-driverAUR 软件包可以解决。

注意: 相应的错误代码 11-1112 对应于打印机的内部线路问题,因此联系三星的技术支持是徒劳的。

Brother: 打印机打印多份副本

有时打印机会打印文档的多份副本(例如,MFC-9330CDW 打印了 10 份)。 解决方案是 更新打印机固件

普通用户无法更改打印机的属性或删除某些作业

如果普通用户需要能够更改打印机的属性或管理打印队列,则可能需要将用户添加到 sys 组。

无法登录 Web 界面

检查是否运行了多个 cupsd 进程。 如果是这种情况,请 停止 cups.service,杀死所有名为 cupsd 的进程,然后再次 启动 cups.service

虚拟 PDF 打印机停止作业

如果虚拟 PDF 打印机(驱动程序:Generic CUPS-PDF Printer (w/ options))不断停止打印作业,并且错误日志显示 Unable to auto-configure PostScript Printer - no bidirectional I/O available!,重新安装 cups-filters 可能会有所帮助。

未找到合适的目的地

如果打印机首选 ipps (ipp-secure),Cups 会将打印机的证书存储在 /etc/cups/printers/ssl 中。 但是,即使证书无效,也永远不会删除这些证书。 除了过期外,证书失效有几种情况:例如,如果您从标准、自签名打印机证书切换到官方 SSL 证书;如果您的打印机软件升级并生成了新证书;或者如果打印机只是更换为同名的新打印机。 在任何这些情况下,Cups 都不会续订缓存的证书,而只会发出相当通用的消息“未找到合适的目的地”。

遗憾的是,*不能* 通过删除并重新安装打印机来解决此问题:即使这样,无效的证书也会保留在文件系统中。 解决此问题的唯一方法是手动删除证书。 (注意:执行此操作的确切方法,即仅擦除 /etc/cups/printers/ssl 是否足够,或者您是否需要先停止 cups 和/或删除受影响的打印机,已在历史记录中丢失 - 请随时添加此信息)。