由于 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
.