Thinstation: использование принтеров HP LaserJet 1000 1005 1018 1020

  • 25.10.2021
  • 130
  • 0
  • 26.10.2021
  • 1
  • 1
  • 0
Thinstation: использование принтеров HP LaserJet 1000 1005 1018 1020

Описание проблемы

При попытке использовать для печати с Thinstation принтеры HP серии LaserJet моделей 1000, 1005, 1018 и 1020, можно столкнуться с тем, что они напрочь отказываются печатать. Связано это с тем, что данные принтеры не работают без предварительной загрузки прошивки на само устройство. Делать это должно непосредственно устройство, к которому подключен принтер, в данном случае этим устройством выступает тонкий клиент. В UNIX подобных операционных системах (BSD, Linux, Mac OS) для этой цели используют набор драйверов foo2zjs, которые так же есть в виде специального пакета в Thinstation. Однако, такой скомпилированный пакет весит порядка 12 МБ, при том, что для данных принтеров там нужен только файл прошивки, объем которой всего 100 с лишним килобайт, и скрипт, который будет эту прошивку на принтер загружать.

В результате изучения данного вопроса, были собраны небольшие пакеты, с минимальным содержимым, которых достаточно для работы вышеуказанных принтеров. Скачать эти пакеты можно по ссылкам ниже:

Пакет Thinstation для HP LaserJet 1000
Пакет Thinstation для HP LaserJet 1005
Пакет Thinstation для HP LaserJet 1018
Пакет Thinstation для HP LaserJet 1020

Самостоятельная сборка пакета

Вы можете так же создать подобный пакет вручную, для этого нужно выполнить следующие действия (по умолчанию будут браться параметры для принтера HP LaserJet 1018):

  1. Создадим в удобном месте директорию, которая станет временной корневой директорией для будущего пакета. В ней создаем следующие директории:
    • /etc/foo2zjs
    • /etc/udev/rules.d
    • /lib/foo2zjs/firmware
  2. Скачиваем файл прошивки под нужную модель принтера с репозитория на github. К примеру, для HP LaserJet 1018 это sihp1018.dl. Сохраняем данный файл в директорию /lib/foo2zjs/firmware.
  3. В директории /etc/udev/rules.d создаем текстовый документ 90-foo2zjs.rules, и пишем там одну единственную строчку:
    KERNEL=="lp*", ATTRS{product}=="HP LaserJet 1018", SYMLINK+="usb/hp1018", RUN+="/etc/foo2zjs/hp1018.sh"
  4. Вместо значения HP LaserJet 1018 у параметра ATTRS{product}=="HP LaserJet 1018" должно быть название принтера, которое можно получить, выполнив следующую команду:

    udevadm info -a -n /dev/usb/lp0 | grep ATTRS{product}

    При этом, если в тонкий клиент подключено несколько устройств, то вместо lp0 может быть lp1 и т. д.
    Вместо hp1018 в тексте SYMLINK+="usb/hp1018" и RUN+="/etc/foo2zjs/hp1018.sh" пишем сокращенное название модели своего принтера.

  5. В директории /etc/foo2zjs создадим скрипт с названием принтера, к примеру hp1018.sh. Его содержимое должно быть следующим:
    #!/bin/bash
    
    cat /lib/foo2zjs/firmware/sihp1018.dl > /dev/usb/hp1018

    Где вместо sihp1018.dl должно быть название файла прошивки под ваш принтер, а вместо /dev/usb/hp1018 - симлинк под вашу модель принтера, который мы ранее написали в скрипте для udev.

  6. Теперь запакуем все это в архив формата tar.gz - так, чтобы в корне архива были директории etc и lib. Из под Windows, удобнее всего будет воспользоваться архиватором 7-Zip, про создание в нем архивов формата tar.gz можно прочитать здесь.
  7. Меняем расширение архива с tar.gz на pkg. На этом пакет для Thinstation готов к использованию, его можно загружать на tftp или http сервер, и включать в конфиге его использование.

Особенности настройки принтера в Windows

При использовании данных принтеров, которые были подключены через lp_server под операционной системой Windows Server 2008 R2, была выявлена неприятная особенность - при отправке на печать задания, принтер начинал его бесконечно печатать. Для исправления этого недоразумения, необходимо в настройках принтера отключить двухсторонний обмен данными.

Была ли эта статья Вам полезна?

Добавить комментарий

Ваш адрес email не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.