将打印机安装在 /dev/usb 并仍然使用 CUPS

将打印机安装在 /dev/usb 并仍然使用 CUPS

由于 CUPS 的新版本,我突然失去了以前在/dev/usb/lpXXX.我用它直接从命令行打印。echo "test" > /dev/usb/lp0

经过搜索,我找到了解决这个问题的方法,通过blacklist usblp/etc/modprobe.d/blacklist.conf.这确实有效,但如果我这样做,CUPS 将不再能够与任何打印机通信(我确实需要它)。那么,如何才能拥有通往打印机的某种直接路径,同时 CUPS 仍能正常工作呢?

注意:某些(收据)打印机无法被 CUPS 识别,因此lpr不适用于这些打印机。

答案1

请问您的打印机品牌和型号可以吗?另外,你的分布是什么?另外,你的CUPS版本是什么?我不清楚第一段中描述的问题是什么。您可以通过 USB 使用 CUPS 设置打印。这(通常)没什么大不了的。您能详细说明一下您最初是如何设置的吗?请注意,CUPS 有一个lpr实用程序,在 Debian 中至少在软件包中cups-bsd,并且可用于从命令行打印,使用 CUPS 作为后端,以通常的方式,即lpr filename

通常情况下,当 USB 设置完毕后,您的/etc/cups/printers.conf外观将如下所示。我当前的打印机使用 USB。

# Printer configuration file for CUPS v1.4.4
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<DefaultPrinter SamsungLaser>
Info SamsungLaser
MakeModel Samsung ML-2850 Series PS
DeviceURI usb://Samsung/ML-2850%20Series
[...]

这通常使用命令行命令进行设置lpadmin。该命令看起来像这样:

/usr/sbin/lpadmin -p printer -E -v device -P ppd_file

以 root 或组中的用户身份运行此命令lpadmin。在此设备是usb://something。要找到与您的打印机对应的 USB 设备,请尝试

lpinfo -l -v

当然,您需要确保它已插入并打开。有人建议跑步/usr/lib/cups/backend/usb,这对我也有用。但lpinfo比较标准。您/dev/usb/lpXXX最初是如何开始使用的?

在我的计算机上,我得到以下输出:

/usr/lib/cups/backend/usb

DEBUG: list_devices_libusb
DEBUG: usb_find_busses=2
DEBUG: usb_find_devices=5
direct usb://Samsung/ML-2850%20Series "Samsung ML-2850 Series" "Samsung ML-2850 Series" "MFG:Samsung;CMD:PCL5E,PCL6,POSTSCRIPT;MDL:ML-2850 Series;CLS:PRINTER;STATUS:BUSY;" ""

您可以查看CUPS 软件管理员手册了解更多信息。 Apple 对最新 CUPS 版本的文档做了一些奇怪的事情,因此这是针对 CUPS 1.1 的,但应该仍然有效。

注意:除非您确实确定这是问题所在,否则我不会将模块列入黑名单。

答案2

我可以确认上述解决方案对我来说效果很好。我使用带有 CUPS 的 OpenWRT 通过路由器 (TL-WR1043ND) 进行打印。我使用 HP Laserjet P1005。这个每次开机都需要上传固件。我放入固件/usr/lib并使用以下命令:

DEVICE_URI="usb://HP/HP%20LaserJet%20P1005?serial=BB0417Y" /usr/lib/cups/backend/usb 1 1 1 1 '' /usr/lib/sihpP1005.dl

哪里usb://HP/HP%20LaserJet%20P1005?serial=BB0417Y需要换成你的。您可以使用 /usr/lib/cups/backend/usb 命令找到它。

答案3

您的 CUPS 和发行版本是什么?从 1.4.x 开始,CUPS 可以使用libusb与 USB 设备节点通信,而不是通过lpusb.

相关内容