LINUX.ORG.RU

Помогите разобраться с CUPS. Основы.


0

0

Корень проблемы лежит в запуске принтера LBP810 из линукса. Есть полурабочий драйвер, который содержит утилиту выполняющую печать. Называется capt. Исходник лежит тут http://www.boichat.ch/nicolas/capt/
Этому capt можно скормить бинарную картинку, приготовленную ghostscript'ом - вот так: capt < foo.bin и он ее распечатает. Сама софтина переговаривается с принтером (пока не понял как именно), но слушает отклик, и если не получает оного, то зависает. Принтер на редкость гадкий - софтовый, т.е. перед каждой печатью ждет фирмварю. Этот capt этой фирмварей снабжает. Теперь проблемма: что-то такое с капс изменилось, что файл описания принтера Canon-LBP-810-capt.ppd не подходит. есть в нем главная строчка:
*FoomaticRIPCommandLine: "gs -q -dNOPAUSE -dPARANOIDSAFER -dBATCH -r60&&
0x600 -sDEVICE=pbmraw%A%Z -sOutputFile=&quot;|capt%B&quot; - 1&gt; /tmp/capt.log&&
2&gt;&amp;1"
Тут происходит, на сколько я понял следующее: готовим бинарник и скармливаем его capt - у, который и будет печатать. Все это через пайпы стдины и стдоуты делается. При этом пайп как бы получается не заклееным, т.е. из потока вырываются данные в /dev/usb/lp0 , а не должны потому как писать в /dev/usb/lp0 должен только capt стало быть принтер получает лишние данные от которых сходит с ума, для того что бы он снова мог печатать надо встряхнуть мозги - включением - выключением.
Вопрос - как обеспечить ситуацию что бы полученные капсом данные шли ТОЛЬКО в утилиту capt, и сам капс ничего не писал в /dev/usb/lp0?

Ответ на: комментарий от Gharik

Ну, давай раскажи мне, как тыканием мышки заточить драйвер под новый капс.

Для всех кроме Gharik: Чего в настоящий момент добился так это работоспособности капс если прописать принтер как принтер использующий параллельный порт, тогда CUPS ничего не шлет в /dev/usb/lp0. Но вопрос остается открытым. Как заставить капс ничего самому в /dev/usb/lp0 не писать, а предоставить это дело конкретной утилите.

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

В мануале к capt подробно написано, как его инициализировать. У меня на работе стоят штуки три таких принтера, добавил на рабочий стол юзерам скриптик, отключающий принтер и подключающий снова (т.е. перезапуск capt и cups с перерегистрацией принтера). Запуск через sudo. Как только принтер начинает глючить, запускают - и все работает снова. :-) Это, конечно, не самый лучший вариант, но что поделать, если поставщик припер долбаный Canon? На samsung или другой полноценный принтер менять не хочет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ты имеешь в виду как его установить? capt - это не демон чтоб его перезапускать.

Я в общем примерно понял откуда грабли. Похоже, при получении задания распечатать, капс блокирует запись в /dev/usb/lp0 и capt обламывается, это можно будет проверить слегка подправив исходник.

Видимо выход в этой ситуации только один - подсовывать капсу фэйк устройство типа /dev/usb/lp_fake который сам по себе к принтеру не имеет никакого отношения.

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