Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
Добавляем Cаnon LBP-810 в CUPS
2018-05-09 02:08 | Автор: jekader | Filed under: FedoraMD
Дома с давних времён валялся без дела древний GDI принтер Canon-LBP-810. Попросили меня подключить его для эпизодической распечатки бумажек. Так как это win-принтер, официальные драйвера существуют лишь под Windows, причём не новее версии XP. Мне даже выдали под это дело системних уровня Pentium-IV, на поверку оказавшийся... Тудорашем*!
Ностальгия - это хорошо, однако в современном мире использовать XP страшновато. Решил попробовать завести принтер в Linux и раскопал для этого заброшенный драйвер. В этой записи освещу шаги, необходимые для его работы в современном окружении.
Первым делом необходимо установить gcc, cups и glibc-dev. Чтобы собрать код современным компилятором, в опции gcc нужно добавить -std=gnu89 - иначе будет ругаться на INLINE функции. Для этого редактируем Makefile и добавляем опцию к CFLAGS
Теперь собираем и устанавливаем:
$ make
$ sudo make install
Для справки, этим шагом мы установили два бинарника и PPD файл. Первый бинарник называется capt и занимается непосредственно отправкой stdin на принтер через устройство /dev/usb/lp0. Второй бинарник называется capt-print и служит для отладки. Это простой shell-скрипт для преобразования postscript файлов в формат PBM, который понимает первый бинарник. PPD файл - это по сути конфигурация-обёртка для CUPS, точно так-же генерирующая PBM и отправляющая её программе capt.
Теперь перезапускаем CUPS и идём добавлять новый принтер. LBP-810 должен быть в списке. Главное, что нужно сделать после добавления - сходить в свойства и поставить URI принтера как file:/dev/null - иначе, в моём случае, CUPS при печати переключал принтер в неправильный режим, устройство /dev/usb/lp0 пропадало и печать не шла.
Можно отправлять задания на печать! Если что-то не работает, вот примерный путь распечатки:
Приложение -> CUPS -> postscript -> PBM -> capt -> USB
Шагов много, проблемы вероятнее всего таятся на последних трёх. Если они возникли - смотрим в /tmp/capt.log и /var/log/cups/error_log. Ещё можно воспользоваться служебной утилитой, скормив ей тестовый postscript файл:
# cat a_image.ps|capt-print
Если это работает, а CUPS всё равно не печатает - проверяем политики безопасности и право CUPS запускать бинарник capt. Также можно изучить подробнее PPD файл, его можно будет найти в /etc/cups/ppd/ и строка FoomaticRIPCommandLine отвечает за запуск конвертации и печати.
Ну и конечно проверьте, что принтер включён в розетку и в нём есть бумага 😉
Удачной печати!
* Тудораш - первый сервер FedoraMD, трудившийся с 2007 по 2008 год
Метки:
11, 2018 14:05
Помню этот принтер и CAPT драйвер (со времен Fedora Core 6), что для LBP-810, так и LBP-1120 — крайне любил драйвер падать при сбое принтера, при отключении USB кабеля, при завершении бумаги. Перезапуск captd, отключение SELinux, очистка spool’а задач на печать. Такие танцы не позволяли рекомендовать этот принтер для Linux окружения.
27, 2018 13:29
О да, принтерок тот ещё. Тут даже нет никакого cupsd — просто консольная утилита и печать через pipe. Ни о каком контроле наличия бумаги и речи нет — нужно чтобы её было не меньше, чем страниц в документе, иначе недостающее придётся печатать отдельно.
В итоге на тудораша я накатил XP драйвер и отключил его от интернета, пускай печатают если надо 🙂