The OpenNET Project / Index page

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

Печать на принтере HP LaserJet 1020 во FreeBSD 6.1. (print hardware driver freebsd)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: print, hardware, driver, freebsd,  (найти похожие документы)
From: Дмитрий Прокопенко <diozan@inbox.ru.> Date: Mon, 25 Sep 2006 14:31:37 +0000 (UTC) Subject: Печать на принтере HP LaserJet 1020 во FreeBSD 6.1. Оригинал: http://www.diozan.chat.ru/txt/hp1020.txt Основное отличие этого принтера от аналогичных лазерных принтеров HP заключается в использовании иного формата данных, передаваемых принтеру. Это теперь уже не старый добрый PCL, а ZJS (Zenographics ZjStream printer format). Этот формат не понимает основной принтерный фильтр Ghostscript. Но благодаря Рику Ричардсону (Rick Richardson), появилась программа foo2zjs, которая позволила преобразовать принтерный вывод в требуемый нам формат. Данную программу можно найти по адресу http://foo2zjs.rkkda.com/ . Под FreeBSD-6.1 скомпилировалась и установилась без проблем, только вместо make нужно было использовать gmake. Другой особенностью принтера HP LaserJet 1020 является то, что его программное обеспечение (firmware) не зашито жестко в аппарат, а должно быть загружено с компьютера при включении принтера или перед началом печати. В принципе, это мудрое решение, так как позволяет, при необходимости замены firmware, избежать сложную, и порой небезопасную, процедуру перепрошивки аппарата. Для апгрейда достаточно просто указать новый файл прошивки на компьтере, и даже в случае его недееспособности, ничего страшного не произойдет. Но с другой стороны эта особенность и явилась тем подводным камнем, на который наткнулись пользователи FreeBSD. Програмное обеспечение принтера никак не хотело грузиться. И я оказался не первый, кто столкнулся с этой проблемой. Загрузка программного обеспечения принтера производится путем посылки файла на устройство принтера (ulpt...), однако команда cat /usr/share/foo2zjs/firmware/sihp1020.dl > /dev/ulpt0 не имела особого эффекта. После достаточно долгого молчания появлялось сообщение о занятости устройства. Данную проблему я поборол удалив из ядра драйвер ulpt, закоментировав соответствующую строчку в файле конфигурации ядра. #device ulpt # Printer Затем перекомпилировал и переустановил ядро. После загрузки нового ядра, принтер уже не определялся как /dev/ulpt0. Он у меня определился как /dev/ugen0.1. И после этого команда cat /usr/share/foo2zjs/firmware/sihp1020.dl > /dev/ugen0.1 прошла на ура. Принтер заморгал своими светодиодами, сигнализируя, что программное обеспечение успешно загрузилось. Следующим шагом было создание приемлемого фильтра для печати. Выходным форматом программного обеспечения, из которого осуществляется печать, является Postscript. Однако, foo2zjs этот формат не понимает. В качестве входного формата она принимает pbmraw или bitcmyk. Оба этих формата могут использоваться в качестве выходных программой Ghostscript. Поэтому фильтр для принтера представляет собой связку из Ghostscript, который преобразует Postscript в pbmrawв и foo2zjs, преобразующий pbmraw в ZJS. Я создал два фильтра, для печати на бумаге формата A4 и A5. файл /etc/pf_hp_lj-1020_a4.sh #!/bin/sh /usr/local/bin/gs \ -q \ -dBATCH \ -dSAFER \ -dQUIET \ -dNOPAUSE \ -dDEVICEWIDTHPOINTS=595 \ -dDEVICEHEIGHTPOINTS=830 \ -r600x600 \ -sDEVICE=pbmraw \ -sOutputFile=- - | \ /usr/bin/foo2zjs \ -r600x600 \ -g4958x6917 \ -p1 \ -t \ -z1 файл /etc/pf_hp_lj-1020_a5.sh #!/bin/sh /usr/local/bin/gs \ -q \ -dBATCH \ -dSAFER \ -dQUIET \ -dNOPAUSE \ -dDEVICEWIDTHPOINTS=420 \ -dDEVICEHEIGHTPOINTS=583 \ -r600x600 \ -sDEVICE=pbmraw \ -sOutputFile=- - | \ /usr/bin/foo2zjs \ -r600x600 \ -g3500x4858 \ -p1 \ -t \ -z1 Два этих файла отличаются только циферками размера бумаги и разрешения картинки. После создания фильтров осталось прописать принтеры в систему. Я использую систему печати LPD. Для этого в файле /etc/printcap прописываю следующие строки: LaserJet-1020_A4:sh:if=/etc/pf_hp_lj-1020_a4.sh:lp=/dev/ugen0.1:sd=/var/spool/output/lpd/hp_lj1020_a4:lf=/var/log/lpd-errs LaserJet-1020_A5:sh:if=/etc/pf_hp_lj-1020_a5.sh:lp=/dev/ugen0.1:sd=/var/spool/output/lpd/hp_lj1020_a5:lf=/var/log/lpd-errs Таким образом в системе у меня появилось два принтера LaserJet-1020_A4 и LaserJet-1020_A5. Диспечер печати KDE их видит и может обслуживать. В Open Office для добавления принтера существует программа spadmin. Каталоги спуллера /var/spool/output/lpd/hp_lj1020_a4 и /var/spool/output/lpd/hp_lj1020_a5 так же нужно создать. Запуск демона lpd производится путем занесения строчки lpd_enable="YES" в файл /etc/rc.conf. После этих манипуляций команда lpr -PLaserJet-1020_A4 /usr/local/share/ghostscript/7.07/examples/tiger.ps должна вывести на печать симпатичного тигра. Для тех, кто использует CUPS следует отметить, что файл /etc/printcap обслуживает эту систему, а не lpd. В принципе никто не мешает использовать параллельно обе эти системы, а что бы не возникло конфликта по использованию этого файла, в конфигурационном файле CUPS-а /usr/local/etc/cups/cupsd.conf указать ему использовать другой файл, вместо /etc/printcap (параметр Printcap). Автоматическую загрузку программного обеспечения так же было нужно предусмотреть. Для этого я использовал usbd. Этот демон, так же запускается из файла /etc/rc.conf путем включения в него строчки usbd_enable="YES". В конфигурационный файл /dev/usbd.conf добавил строчки device "HP LserJet 1020 printer" product 0x2b17 vendor 0x03f0 attach "cat /usr/share/foo2zjs/firmware/sihp1020.dl > /dev/${DEVNAME}.1" Теперь, после перезапуска usbd, каждое включение принтера у меня начало сопровождаться загрузкой в него программного обеспечения сразу же после включения. Хочу обратить внимание, что числовые параметры product и vendor могут потребовать уточнения, т.к. я не уверен, что они одинаковые для всех экземпляров принтеров. При необходимости это можно сделать посмотрев, при включенном принтере, вывод команды sysctl -a | grep dev.ugen После сих манипуляций я смог успешно залить программное обеспечение в принтер и нормально на нем печатать с приемлемым качеством и скоростью. Проблем не возникло, и я с уверенностью могу сказать, что HP принтеры делать умеет.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Аноним (-), 11:06, 25/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо!
     
  • 1.2, vadiml (?), 11:49, 25/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я 2 месяц назад под линуксом такое делал, правда я rpm-ку сразу собирал и обновлял для себя foomatik (патч о проделанной работе лежит на багзилле федоры) -- работает
     
     
  • 2.6, Vasja (??), 00:15, 26/09/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Рад за тебя
     
  • 1.3, s1lv3r (?), 12:27, 25/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    /usr/ports/print/foo2zjs
     
  • 1.4, Demimurych (?), 12:59, 25/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень очень большое спасибо
     
  • 1.5, rolano (??), 16:39, 25/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Огромное спасибо автору статьи.
     
  • 1.7, Ананимуз (?), 10:12, 26/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я конечно понимаю, что БСДшники на linuxprinting.org не ходят, но там таки давно описана методика
     
  • 1.8, boo (?), 14:45, 26/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    При попытке повторить то же самое выянилось вот что:
    1) В pf_hp_lj-1020_a4.sh в foo2zjs передается 2 опции:
    -t и -z1. У меня foo2zjs , поставленная из портов, их не понимает (в мане про
    них тоже ничего нет):

    # foo2zjs -V
    $Id: foo2zjs.c,v 1.59 2004/10/21 22:36:43 rick Exp $

    2) если убрать эти 2 опции и попробовать выполнить, к примеру,
    lpr -PLaserJet-1020_A4 /usr/local/share/ghostscript/7.07/examples/tiger.ps
    то в итоге из принтера вываливается пустой листок

    не приходилось сталкиваться с чем то подобным?

     
  • 1.9, boo (?), 16:08, 26/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    первая проблема решилась обновлением порта.
    а вот белый лист так и остался белым :(
    ничего не печатается
     
  • 1.10, lamo (??), 19:10, 26/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а 1018 поднимется?
     
     
  • 2.12, Black Hawk (?), 14:15, 30/01/2007 [^] [^^] [^^^] [ответить]  
  • +/
    1018 работает
     
  • 1.11, wituS (?), 08:38, 29/01/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а когдаж на Canon LBP 1120 выпустят статейку...
    такое складываться впечатление, что Canon LBP 1120 стоит у Линуксойдов и Виндусятников...
     
  • 1.13, sgh (?), 06:50, 19/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Огромное человечексое Спасибо !! за статью
     
  • 1.14, Maksym (?), 15:11, 25/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно ли настроить принтер HP LaserJet 1022 ?
    Если можно, то как? Спасибо наперед!
     
  • 1.15, Наталья (??), 13:57, 12/01/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как  настроить печать с двух сторон и как этим пользоваться
     
  • 1.16, Shooroop (?), 12:45, 06/09/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Возникла проблема с печатью картинок. Принтер не может напечатать больше одной из очереди а чаще вообще не печатает. Что делать?
     
  • 1.17, Leonid (??), 02:08, 27/02/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Привет всем! Помогите пожалуйста! У меня 1018, отправляю на печать, а в ответ тишина, задание через время пропадает. Я никак не могу понять КУДА и какие команды вы вводите. Помогите дилетанту!!!
     
  • 1.19, Анжелка (?), 15:31, 04/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скажите почему текст печатается, а изображения слишком контрастные. Как настроить?
     
  • 1.20, quest (??), 14:27, 05/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    HP1018 всё работает и на ulpt0. FreeBSD 8.0 - Release
     
     
  • 2.24, anonymous (??), 19:19, 28/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    HP1018 всё работает только на ulpt0. FreeBSD 8.0 - Release
    fixed
     
  • 1.21, Лариса (??), 20:17, 09/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Помогите,принтер выдает ошибку "The HP LaserJet 1020 has the front cover door open or the cartridge is missing". Картридж заправили,все равно не печатает. Что нужно сделать?
     
     
  • 2.22, hate (ok), 20:43, 09/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Помогите,принтер выдает ошибку "The HP LaserJet 1020 has the front cover door
    >open or the cartridge is missing". Картридж заправили,все равно не печатает.
    >Что нужно сделать?

    На выбор:

    1 - Купить словарик

    2 - Позвать админа

    3 - Купить коньяк и ещё раз громко позвать Админа пригласив на коньяк

    4 - Пойти к Админу с коньяком и _мягко_ ему намекнуть что есть проблемы с принтером

    5 - Если админа нет то взять словарик и начать изучать инструкцию по использованию данного принтера

    6 - Если все методы испробованы и ничего не получается то нанять Админа, а если нет такого желания то отвезти принтер на сервис предварительно взяв с собой наличные (для ускорения решения вашей проблемы)


        

     
  • 1.25, beibt (?), 06:36, 05/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я  приобред  принтер НР Laser Jet 1020,  без устаночного диска (драйвера). Не  смогли бы вы  подсказать ,  где и  как  можно  скачать программу  для  установки принтера  в  компьютер. Просто в  компьютерных  делах  я  совсем  делитант  и  по этому  прошу  прощения  если  посчитаете  вопрос глупым.
     
  • 1.26, Alex (??), 22:37, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Привет подскажите пожалуйста решение такой проблемке, при отправлении на печать выходит просто почти черный лист ! Что сделать чтоб картридж не гнал полоски ????? Заранее спасибо!
     
  • 1.27, senya87 (?), 13:10, 14/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    the hp laserJet 1020 has the front cover door open or the toner cartridges is missing----картридж вставлен,всё что надо закрыто-чего ему ещё надо.В утиль может пора?Как это исправить?
     

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




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