LINUX.ORG.RU

CUPS - использовать одно подключение для принтеров одной модели


0

1

Приветствую!

Тут бьюсь с одной проблемой, казалось бы - мелочь.

Есть USB принтер, скажем, HP LaserJet 1020. Он ставится и печатает нормально, без проблем.

Прикол в том, что если я подключаю другой принтер такой же модели (то есть HP LaserJet 1020) он не печатает.

Насколько я понял там идет привязка на connection. Мне приходится менять настройки чтобы тот, другой принтер печатал.

Я ищу возможность в CUPS чтобы принтеры одной и той же модели печатались без дополнительных свистоплясок. То есть воткнул такой же принтер, и он сразу бы пахал.

Я пробовал убирать параметер «serial» из DeviceURI в printers.conf но не помогает.

Перерыл все мануалы, printers.conf, cupsd.conf не нашел подходящей опции.

Вариант, с установкой каждого принтера и использование классов не предлагать. Потому что у меня таких принтеров, сотни.

Может udev какой нибудь написать нужно?

Буду благодарен за любые советы.

Речь идет только об USB принтерах установленных локально.

Также, я выяснил что стандартными средствами это невозможно.



Последнее исправление: nehochuha (всего исправлений: 1)

А подключаешь все принтеры к хосту одновременно? Если не одновременно и по юсб - пиши правило для udev, что бы создавать симлинк при подключении однотипных устройств.

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

Нет, не одновременно. Можно пояснить по «создавать симлинк».

Пишу udev, определяю SERIAL принтера. Далее вызываю lpadmin и делаю как бы модификацию уже установленного принтера?

nehochuha
() автор топика
Ответ на: комментарий от nehochuha
ygor@mbook:~/Видео/HouseM.D.8$ cat /etc/udev/rules.d/70-persistent-cd.rules 
# This file maintains persistent names for CD/DVD reader and writer devices.
# See udev(7) for syntax.
#
# Entries are automatically added by the 75-cd-aliases-generator.rules
# file; however you are also free to add your own entries provided you
# add the ENV{GENERATED}=1 flag to your own rules as well.
# Virt._CD_DVD-ROM (platform-vhba-scsi-0:0:1:0)
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="platform-vhba-scsi-0:0:1:0", SYMLINK+="cdrom", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="platform-vhba-scsi-0:0:1:0", SYMLINK+="dvd", ENV{GENERATED}="1"

# Virt._CD_DVD-ROM (platform-vhba-scsi-0:0:0:0)
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="platform-vhba-scsi-0:0:0:0", SYMLINK+="cdrom1", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="platform-vhba-scsi-0:0:0:0", SYMLINK+="dvd1", ENV{GENERATED}="1"

ygor@mbook:~/Видео/HouseM.D.8$

Вот что-то наподобие, и указываешь этот симлинк в localhost:631 в качестве устройства.

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

В общем пошел другим путем. Так как CUPS не использует /dev/ (ну или я не понял как использовать dev/symlink)

написал udev rule который определяет номер серии принтера и запускает lpadmin -p <printername> передаю ему подключение и все работает. Не знаю, насколько стабильно, буду смотреть.

P.S: когда lpadmin вызываешь, он либо создает принтер либо модифицирует существующий. Получилось удобно.

nehochuha
() автор топика

Т.е., грубо говоря, сломался принтер - воткнули такой же на замену - сразу запечатало? У меня так работает «из коробки», кстати, именно с HP LaserJet 1020.

strangeman ★★★★
()
Ответ на: комментарий от strangeman

Не может быть )))) Потому что это был официальный ответ «стандартными средствами, это невозможно, но возмжоно есть плагины для CUPS которые решат Вашу задачу»

Вы уверены, что «другой такой же» до этого не конфигурировался?

Очень интересно вообще то.

Может плагин стоит какой нибудь?

Если да, то это уже не «из коробки».

nehochuha
() автор топика
Ответ на: комментарий от nehochuha

Хм. Стоит Ubuntu 8.04 с KDE3, ПО все стандартное, из репозитория, foomatic только свежий, самосборный. И таки все работает.

strangeman ★★★★
()
Ответ на: комментарий от strangeman

Наверное DE решает эту задачу сам. через, опять таки, плагины. Потому что, ну нет поддержки этой «фишки» в CUPS :D

Можешь удалить все принтеры.

1. Добавить принтер (проверить и т.д.) 2. Вытащить принтер 3. Добавить другой такой же 4. Попробовать распечатать.

Если можно посмотреть какие CUPS backend ы стоят еще.

ПОЖАЛУЙСТА! (очень прошу помочь именно с бэкендом, я верю что работает)

nehochuha
() автор топика
Ответ на: комментарий от strangeman

Нашел что можно использовать свой бэкенд

http://en.opensuse.org/SDB:Using_Your_Own_Backends_to_Print_with_CUPS#A_carel...

Careless только нифига он не заработал.

lpinfo -v не показывает ни usb ни usblp

правда если вырубаю usblp модуль показывает usb connection.

но самописный backend не видит.

nehochuha
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.