Смонтируйте принтеры в / dev / usb и продолжайте использовать CUPS

12

Из-за новой версии CUPS я внезапно потерял прямой путь к своим принтерам, который ранее был доступен в разделе /dev/usb/lpXXX. Я использовал это для печати прямо из командной строки. echo "test" > /dev/usb/lp0,

После поиска я нашел способ исправить это, комментируя blacklist usblpв /etc/modprobe.d/blacklist.conf. Это действительно работает, но если я сделаю это, CUPS больше не сможет общаться с любым принтером (и мне это нужно). Итак, как я могу иметь какой-то прямой путь к своему принтеру, и при этом работать CUPS?

ПРИМЕЧАНИЕ: некоторые из принтеров (чеков) не распознаются CUPS, поэтому lprне будут работать для них.

imz - Иван Захарящев
источник
В Archwiki есть несколько параграфов по этому вопросу , в конце они советуют использовать usblpмодуль для загрузки прошивки (например cat sihp1020.dl > /dev/usb/lp0), а rmmodпотом - . (Действительно, уродливо.)
sr_
Для дальнейшего использования я подтверждаю, что 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_

Ответы:

1

Я могу подтвердить, что вышеупомянутое решение прекрасно работает для меня. Я использую OpenWRT с CUPS для печати через маршрутизатор (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.

Bas
источник
0

Какая у вас версия CUPS и дистрибутив? Начиная с 1.4.x, CUPS можно использовать libusbдля связи с узлами устройства USB вместо прохождения lpusb.

ephemient
источник
0

Можете ли вы указать марку и модель вашего принтера, пожалуйста? Кроме того, каков ваш дистрибутив? Кроме того, какая у вас версия CUPS? Мне не ясно, в чем проблема, описанная в первом абзаце. Вы можете настроить печать с помощью CUPS через USB. Это (обычно) не имеет большого значения. Можете ли вы рассказать о том, как вы его изначально настроили? Обратите внимание , что 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, но все же должно быть в силе.

Примечание: я бы не стал заносить модули в черный список, если вы не уверены, что это проблема.

Фахим Митха
источник