将打印机挂载在/ dev / usb并仍使用CUPS


12

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

搜索后,我发现了一个方法来解决这个问题,注释掉blacklist usblp/etc/modprobe.d/blacklist.conf。确实可以,但是如果我这样做,CUPS将不再能够与任何打印机通信(我确实需要)。那么,如何才能有某种直接通往打印机的直接路径,而CUPS仍能正常工作?

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


Archwiki有一些关于这个问题的段落,最后他们建议使用该usblp模块加载固件(例如cat sihp1020.dl > /dev/usb/lp0及其rmmod之后的固件。(确实
很丑


为了将来参考,我确认这DEVICE_URI="usb://HP/LaserJet%20102?serial=XYZ" /usr/lib/cups/backend/usb 1 1 1 1 '' ~/sihp1020.dl是一种libusb可行的方法,可以将固件发送到需要它的打印机(并且使用usblp,也可以通过cat sihp1020.dl > /dev/usb/lp0之前将其发送到)。这也可以用于向USB打印机发送任意文件,因此OP可以尝试一下。
sr_

另一件事尝试,根据这个,有可能是使用CUPS与方式usblp模块,通过配置为使用file:/dev/usb/lp0 代替 usb:/dev/usb/lp0
sr_

Answers:


1

我可以确认上述解决方案对我来说很好。我使用带有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命令找到它。


0

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


0

您能否说明打印机的品牌和型号?另外,您的分布是什么?另外,您的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软件管理员手册》以获取更多信息。对于最新的CUPS版本,Apple在文档上做了一些奇怪的事情,因此这适用于CUPS 1.1,但仍然有效。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.