The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Установка GDI-принтера Lexmark Z23/33 в Debian (print driver win linux debian)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: print, driver, win, linux, debian,  (найти похожие документы)
From: Виталий Маяцких <vymz@mail.ru.> Newsgroups: email Date: Mon, 12 Dec 2004 18:21:07 +0000 (UTC) Subject: Установка GDI-принтера Lexmark Z23/33 в Debian Оригинал: http://vymz.narod.ru/lexmark.html Установка принтера Lexmark Z23/33 в Debian (Sarge) Со времён житья-бытья под виндой у меня осталась (последняя :) обрезанная железка, зовущаяся струйным принтером Lexmark Z23e, который довольно терпимо работал под виндой, но, в силу своей GDI'шной сущности, имел проблемы с работой в линуксе. На сайте лексмарка (www.lexmark.com) доступен драйвер lexmarkz33-1.0-3.sh, более-менее беспроблемно работающийся в старых редхатоидах с системой печати LPRng. Волею судеб меня занесло на дебиан, у которого и система пакетов другая, и вообще он другой. Пришлось озадачиться над тем, как заставить работать этот GDI-принтер в совершенно враждебной для него среде :) Для начала установим саму систему печати: # apt-get install lprng В принципе, существует скрипт foomatic-lexmark, который позволяет использовать систему печати CUPS, но в ASP Linux 9.0, где я его пробовал в работе, не только CUPS работать не стал, но ещё и возможность печатать через LPRng исчезла :) К тому же, LPRng является не менее мощной системой, чем CUPS. разве что CUPS в KDE можно мышкой настраивать ;-) Так что особой мотивации для настройки CUPS в дебиане у меня нет. Теперь распакуем содержимое скрипта: # tail +143 lexmarkz33-1.0-3.sh | gzip -cd | tar xv Далее среди кучи всей ерунды появится rpm-ка с самым главным, её нужно сконвертировать с помощью alien: # alien --to-deb lexmarkz33-1.0-3.i386.rpm Ставим deb: # dpkg -i lexmarkz33-1.0-4_i386.deb Никаких зависимостей в deb не попало, поэтому нужно руками установить старый libc и прописать принтер в /etc/printcap. В принципе, можно сконвертировать rpm в tgz, всё равно никаких возможностей deb'а использовать не будем :) Итак, ставим нужную версию библиотеки: # apt-get install libstdc++2.10-glibc2.2 Вот содержимое /etc/printcap, которое прописывает установщик: ##PRINTTOOL3## LOCAL lexmarkz33:\ :sd=/var/spool/lpd/lexmarkz33:\ :mx#0:\ :mc#99:\ :sh:\ :rw:\ :lp=/dev/usb/lp0:\ :if=/usr/local/lexmark/z33/z33.sh: ##PRINTTOOL3## LOCAL z33-outfiles:\ :sd=/var/spool/lpd/z33-outfiles:\ :mx#0:\ :mc#99:\ :sh:\ :rw:\ :lp=/dev/usb/lp0: ##PRINTTOOL3## LOCAL lp:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :mc#99:\ :sh:\ :lp=/dev/usb/lp0:\ :rw:\ :if=/usr/local/lexmark/z33/z33.sh: С драйвером идут свои библиотеки, ложащиеся в /usr/local/lib, поэтому нужно прописать туда путь в /etc/ld.so.conf и запустить ldconfig. Кроме того, для работы скрипта-враппера необходим enscript. Убедитесь, что у вас этот пакет стоит. Также нужен (не помню, для чего :) libslang. В драйвере присутствует демон lexlmd, который чего-то мониторит, его тоже бы нужно запустить, например, при загрузке системы. Создаём в /etc/init.d/ скрипт под именем lexlmd с таким содержимым: #!/bin/sh PROGRAM=/usr/local/sbin/lexlmd test -x $PROGRAM || exit 0 case "$1" in start) echo -n "Setting lexlmd:" $PROGRAM > /dev/null echo " done." ;; stop) ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/lexlmd {start|stop|restart|force-reload}" exit 1 esac exit 0 и создаём сиволическую ссылку в нужный runlevel: ln -s /etc/init.d/lexlmd /etc/rc2.d/S90lexlmd Ещё неплохо убедиться, что подгружены нужные модули для работы с usb-принтерами. В моём случае отключены всякие plug'n'play'ности, поэтому нужно загрузить модуль usb-хаба (для чипсета SiS735 это ohci-hcd), который потом сам грузит usbcore и usblp для свежеобнаруженного принтера. Если plug'n'play'ности включены, например, discover, то ничего руками делать, скорее всего, не придётся. Теперь можно попробовать запустить /usr/local/bin/z23-z33lsc. Графические прибамбасы лексмарка используют GTK1.2, так что озаботьтесь наличием в системе libgtk1.2. Для адекватного отображения надписей пришлось немного настроить GTK. Вот содержимое .gtkrc в моём домашнем каталоге: style "gtk-default-ru" { fontset = "-cronyx-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-r,\ -*-arial-medium-r-normal--12-*-*-*-*-*-koi8-r,*-r-*" } class "GtkWidget" style "gtk-default-ru" Если всё до этого момента прошло хорошо, то вы увидите примерно такое окно "Центра помощи": Если драйвер или графические утилиты при печати будут ругаться на отсутствующую libstdc++-libc6.1.1.so.2, то создайте симлинк с таким именем на libstdc++-libc6.2-2.so.3 и запустите ldconfig. Если что-либо ругаться перестало, то теперь можно печатать из OpenOffice'а, KDE'шных прог и т.д. В консоли всё тоже работает прекрасно. Печатаем с помощью lpr, чистим очередь lprm, смотри её состояние lpq: vitaly@delirium:~$ lpq Printer: lexmarkz33@localhost Queue: no printable jobs in queue Server: no server active Status: job 'vitaly@localhost+881' saved at 19:48:24.443 Rank Owner/ID Pr/Class Job Files Size Time done vitaly@localhost+881 A 881 (STDIN) 62900 19:48:03 У драйвера есть некоторые проблемы в принципе. Например, он льёт много чернил (больше, чем в винде при таком же режиме), неправильно рассчитывает вертикальные поля (нужно в графической конфигурялке принтера поставить поставить размер листа по вертикали примерно на 20мм больше, чем есть), и у меня в ASP9.0 не получилось распечатать больше 4 листов подряд, на 5-м печать с глюками и артефактами на бумаге обрывается. P.S.: Касаемо последней проблемы: картридж у меня давно сдох (дорожки поотваливались, сопла позасохли, в общем, принтер только делает вид, что печатает), поэтому не могу точно гарантировать, но принтер только что съел 6 листов и не подавился. Возможно, глюк был в ASP Linux 9.0... P.S.S.: Недавно купил новый картридж, печатает просто замечательно. Качество, как оказалось, ещё очень сильно зависит от ghostscript'а и установленных шрифтов. В этом плане дебиан опять рулит :) Кстати, картридж купил не "полный" 10N0016, а "половинчатый" 10N0017. Раньше жадные буржуи просто чернил меньше в них лили, а теперь и перегородку внутри соорудили... Для того, чтобы индикатор чернил, расчитанный на 16-й картридж, корректно работал и с новым, производитель предлагает стянуть новый драйвер с сайта, но нам, на правильной операционной системе :), да и нет нового драйвера для z23-z33, достаточно в /usr/local/lexmark/lexgui.conf поставить нужную цифру в переменной k_10N0016: [maximum dot counts] cmy_10N0026=1280000000 k_10N0016=503000000 Сколько там нужно ставить, я не знаю, можно попробовать 250 млн. В любом случае, нужно заправлять почаще (даже если не печатаете - чернила сами по себе сохнут) и чистить сопла время от времени. Заправку я сам беру и всем советую InkTec HP29A (для HP 6xx), пусть она немного менее чёрная, зато менее вязкая и дисперсная, а значит, картридж живее будет. Я свой родной, шедший с принтером, угробил инктековской заправкой именно для 16-го картриджа. P.S.S.S.: Ещё существует интересный конфиг /var/spool/lexmark/z23-z33.conf, который вдвое больше конфига с таким же именем, создающимся в ~/.lexmark. В этом конфиге можно встретить данные калибровки головок, количество "отстрелянных" точек (в секции [dotcounts]), а также одну из самых ценных настроек - resolution (в dpi). Выставив значение 300, я получил такой же расход чернил, как и в винде при быстрой печати. Т.е. из проблем остался только размер листа по вертикали, возможно, в скором времени и её получится более прямо решить. Таким образом, получили почти полностью виндовую функциональность.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру