Пишет Aleksey Salow (w00dy)
@ 2006-08-16 10:51:00
Предыдущая запись В избранное! Рассказать другу! Следующая запись
Местоположение: work
Настроение: супер
Метки данной записи: hardware, softwareFreeBSD && Canon LBP-810
Итак, вчера, в результате неравных сражений, принтер был захвачен в плен и заставлен печатать. В общем поднял я его, не смотря на то что он весь из себя Win-принтер. Теперь у меня есть возможность печатать и сканить прямо из фряхи (и с рядом стоящей винды тоже)
Как заставить работать:
Для начала необходимо чтобы принтер был виден как девайс. Это всё хорошо описано в FreeBSD Handbook и смысла повторяться нет.
Дальше идём на страничку Nicolas Boichat посвящённую Linux CAPT driver и качаем capt-0.1.tar.gz. Распаковываем, открываем в редакторе capt.c, меняем /dev/usb/lp0 на /dev/ulpt0 (или где у вас там принтер висит), делаем make, потом нужно проверить работоспособность. Я сделал просто, у меня ещё от игр со сканером осталась картинка, поэтому cat img.pnm | pnmtops | ./capt-print (возможно прийдётся поправить пути к gs и capt внутри скрипта capt-print на /usr/local/bin/gs и ./capt соотв.) Как результат - должны получить распечатку. Собственно треть работы мы уже сделали.
Следующий этап - прописать принтер в printcap для того чтобы на него можно было печатать из других приложений. Открываем в редакторе /etc/printcap и прописываем следующе (желающие могут добавить/удалить capabilities на своё усмотрение):
lp|Canon LBP-810:\
:sd=/var/spool/output/lpd:\
:lp=/dev/null:\
:lf=/var/log/lpd-errs:\
:sh:\
:sf:\
:mx#0:\
:if=/path/to/capt-print:
где capt-print это файлик из пакета capt, с исправлеными путями и некоторыми правками:
#!/bin/sh
/usr/local/bin/gs -q -dNOPAUSE -r600x600 -sPAPERSIZE=a4 -sDEVICE=pbmraw -sOutputFile=\|"/path/to/capt" -
Проверка в нашем случае достаточно проста: `cat img.pnm | pnmtops | lpr`. Теперь нам доступна печать из приложений на нашей машине.
Теперь остался последний момент - разрешить доступ к принтеру с других машин (в нашем случае windows машин ;). Для начала читаем эту статью на OpenNET.ru. Нам также понадобится Adobe Universal PostScript Windows Driver. При инсталяции, драйвер спросит о ppd файле, он есть в составе capt-0.1. Проблем больших здесь быть не должно, по крайней мере у меня не было и принтер заработал почти с первого раза. Дело в том что фильтр запусткается от daemon:daemon, и ему нужно дать rw права на доступ к /dev/ulpt0. Или каким-то другим способом, например суидом на capt ;)
Осталось самое малое, написать порт и немного пропатчить сорцы ;)