- Главная... arrow - Статьи... arrow | - Linux arrow Принтеры Hp Laserjet 10xx (1000 1005 1018 1020) в Linux

#Записки о Unix/Linux/BSD/Solaris

Принтеры Hp Laserjet 10xx (1000 1005 1018 1020) в Linux
Автор H@wk!   
19:08:2009 г.

Статья не новая, взята с http://www.helplinux.ru/, но надеюсь она поможет понять причину капризности данных принтеров. Встречаются ветки форумов, где описываются интересные вещи, драйвер принтера установлен, но принтер не печатает, если перезагрузится в виндовс при включенном принтере распечатать и перезагрузится в линукс, то начинает печатать )))). Так вот в чем собака зарыта? Думаю ниже изложенное немного прояснит ситуацию...

Почему данные принтеры не работают в Linux и как это исправить?


Принтеры HP LaserJet 1000, 1005, 1018 и 1020 сразу после включения питания не имеют в себе прошивку (firmware, arm binary). Операционная система при обнаружении принтера должна "залить" в него необходимую прошивку и после этого работать как с обычным принтером. (Именно этим объясняется тот факт, что если не выключая принтер перезагрузиться из известной нам операционной системы от MS в Linux, принтер будет работать).
Как происходит "заливка" прошивки?


В современном Linux события о появлении новых устройств обрабатывает специальная служба udev. Правила обработки событий, т.е. что будет происходить при обнаружении новой железки, находятся в /etc/udev/rules.d/. В Ubuntu правила для принтеров обсуждаемых в данной статье находятся в файле /etc/udev/rules.d/85-hplj10xx.rules (пример для Ubuntu Gutsy).
Если правила в udev есть, почему принтер не работает?

Дело в том, что правила есть, а самих прошивок нет. Причины этого не понятны, но и не особо интересны. Мы можем скачать их сами и положить туда, где udev, в соответствии с правилами, их найдёт.
Как скачать прошивки?

В Ubuntu по умолчанию установлен пакет foo2zjs, которые содержит необходимые нам утилиты:

    * getweb - утилита которая "сливает" прошивки с foo2zjs.rkkda.com (вызывается следующим образом: getweb 1020 - скачает прошивку для HP LaserJet 1020)
    * arm2hpdl - утилита, которая добавляет необходимые заголовки для принтера HP к бинарному файлу arm (смотрите man arm2hpdl), после добавления заголовков прошивку можно заливать в принтер (этим и занимается udev)

Для проверки можно залить прошивку вручную следующим образом: cat sihp1020.dl > /dev/usb/lp0, где /dev/usb/lp0 нода устройства принтера. Нода может быть и другой, например /dev/usblp0, чтобы узнать наверняка, можно посмотреть dmesg|tail -20 после включения принтера.
Куда их положить?

Положить нужно в /usr/share/foo2zjs/firmware/
А теперь готовое решение в виде скрипта

Проверенно в Ubuntu 7.04 и 7.10

#!/bin/bash
printers="1000 1005 1018 1020"
cd /tmp
for prn in $printers; do
    img="sihp${prn}.img"
    dl="sihp${prn}.dl"
    getweb $prn
    if [ -f $img ]; then
        arm2hpdl $img > $dl
        sudo cp $dl /usr/share/foo2zjs/firmware/$dl
        rm $img $dl
    fi;
done


Чем данное решение лучше других, которые можно найти в интернет?

Другие решения помимо основной задачи, а именно, установки прошивок, выполняют другие лишние действия, например, заново устанавливают foo2zjs (который уже есть в системе), но не из deb-пакета, а из исходных кодов. Это не даёт преимуществ, но может создать проблемы при обновлении системы.

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code


Просмотров: 17025

  Коментарии (2)
RSS комментарии
 1 Написал(а) svf_danger, в 12:38 08.12.2016
:cry пишет отказано в доступе
 2 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 22:59 02.04.2011
Раньше делал так, всё работало. А сейчас что-то не хочет...
 
« Подборка советов по доработке свежеустановленного Ubuntu 9.04 Linux   Интеграция Linux-клиента с LDAP сервером »

#COMMENT

Блокируем Ylmf-pc на Exim, Bru...
Благодарю за кучу уцелевших нервов:) постоянно приходилось б...
30/05/17 00:02 More...
By Mus

Установка даты и времени в кон...
Спасибо
12/05/17 17:49 More...
By dushka

Раскладка в rdesktop
Огромное спасибо!
28/04/17 14:01 More...
By Виктор

Аутентификация средствами Apac...
подскажите как писать пороль цифры ?пж! :sigh
28/03/17 13:06 More...
By Лиза

Logwatch - мониторинг журналов...
Отлично, очень не хватало. Автору большое спасибо, пиши еще.
25/01/17 02:44 More...
By Gregg

Сейчас на сайте находятся:
2 гостей