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

Ваше исследование выделяет основную причину почему, анализируя вывод ls всегда плохая идея. Посмотрите Wiki Greg для полного объяснения.

Думайте о своей проблеме наоборот. Вы заметили, что ls иногда делает и иногда не печатает новые строки между, он производится. Для использования в сценариях или при принуждении -1 флаг, это делает. Одна новая строка в конце каждого файла. Что нет никакой гарантии, что каждая новая строка представляет новое имя файла. На самом деле, если имя файла будет содержать саму новую строку, то вывод ls будет absolutly un-parsable. Рассмотрите эти имена файлов:

file1
file2\nfile3
file4

Когда Вы ls -1 каталог с этим в нем, Вы получили бы что-то, что было похоже на это:

file1
file2
file3
file4

Вы естественно не предположили бы, что было четыре файла? Так был бы любые сценарии, которые анализируют вывод ls. В действительности существует три файла, один из с хитрым именем, но Вы не смогли бы полагать это из вывода ls.*

*, Если Вы не использовали -l отметьте и замеченный, вывод был borked, но Ваши сценарии будут все еще дросселировать.

12
20.12.2011, 21:40
3 ответа

Можно ли заявить бренд принтера и модель? Кроме того, каково Ваше распределение? Кроме того, какова Ваша версия 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

Выполните это как корень или пользователя в 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;" ""

Можно проверить Руководство Adminstrator программного обеспечения CUPS для получения дополнительной информации. Apple сделала что-то странное с документацией для более свежих версий CUPS, таким образом, это для CUPS 1.1, но должно все еще быть допустимо.

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

0
27.01.2020, 19:56

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

0
27.01.2020, 19:56

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

1
27.01.2020, 19:56

Теги

Похожие вопросы