HPLIP

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page HPLIP and the translation is 100% complete.
Other languages:
Resources

HPLIP (HP Linux Imaging and Printing) предоставляет драйвера для принтеров HP. Также, она включает в себя поддержку сканера и факса, а также сервисные инструменты для различных периферийных устройств различного назначения.

Действительно ли нужен HPLIP?

Использование HPLIP рекомендуется для большинства принтеров HP inkjet и laserjet. Однако, бывают устройства, работающие со стандартной установкой CUPS, которая предоставляет адекватные драйвера или PPD файлы.

Некоторые устройства имеют возможности, которые можно использовать только когда включен бинарный плагин. Этот плагин должен быть установлен дополнительно к драйверам. Поэтому, он необходим, когда используются эти возможности (например, лучшее качество печати, более быстрая печать или сканирование). Для более подробной информации смотрите раздел бинарные плагины.

Установка

Заметка
Все пользователи, которым нужно управлять принтерами, используя web-интерфейс или hp-setup, должны быть членами группы lpadmin. Редактирование файлов конфигурации CUPS текстовым редактором, однако, требует root привилегий. Для пользователей, которым нужна только печатать, никаких особых привилегий или членства в группах не требуется.

Для поддержки печатания, рекомендуется использовать новый драйвер hpcups, который можно включить USE-флагом hpcups. Старый драйвер hpijs всё ещё включен, если HPLIP компилируется с USE-флагом hpijs.

Стандартная установка разрешает динамически генерировать PPD-файлы во время выполнения. Некоторые принтеры всё же могут требовать статические PPD-файлы. Если возникают проблемы с hp-setup, попробуйте активировать USE-флаг static-ppds и переустановить HPLIP.

Для USB-принтеров net-print/cups должен быть собран с USE-флагом usb. Таким образом он использует инструмент пользовательского пространства dev-libs/libusb, который заменяет поддержку USB-принтера в ядре (CONFIG_USB_PRINTER). В случае возникновения проблем отключите USE-флаг usb для net-print/cups и заново активируйте функциональность в ядре.

Чтобы была возможность настроить сетевой принтер, версии 1.5 пакета net-print/cups должен быть собран с USE-флагом avahi или slp. Начиная с версии 1.6 net-print/cups прекратил поддержку slp, и для выбора остались только USE-флаги avahi и zeroconf. Для того, чтобы печатать на сетевом принтере HPLIP должен быть собран с USE-флагом snmp.

Для некоторых сканеров требуется активировать соответствующий back-end SANE. Чтобы определить какой back-end требуется для устройства, перейдите на страницу поиска драйверов проекта SANE и поищите "HEWLETT-PACKARD" в поле manufacturer. Появится список всех поддерживаемых устройств с требуемым back-end'ом. Например, если устройство требует back-end hp, при установке media-gfx/sane-backends к конфигурации portage необходимо добавить:

ФАЙЛ /etc/portage/make.conf
SANE_BACKENDS="hp"
Заметка
Back-end hpaio предоставляется самим HPLIP, если включен USE-флаг scanner. Если не требуется дополнительной настройки этого back-end'а, то должны быть определены следующие настройки в /etc/sane.d/dll.conf.
ФАЙЛ /etc/sane.d/dll.conf
# Add support for the HP-specific backend. Needs net-print/hplip installed.
hpaio

Ядро

Устройства, подключённые через USB, требуют базовой поддержки USB в ядре. При использовании старого драйвера для USB-принтера, подразумевая, что USE-флаг usb не использовался в net-print/cups, должны быть включены следующие опции ядра:

ЯДРО Optional: USB printer support
Device Drivers  --->
    [*] USB support  --->
        <*> USB Printer support

Этот драйвер может быть активирован как модуль, который будет называться usblp. Это также делает более удобным тестирование USE-флага usb, поскольку можно просто переключаться между 2 методами, отключая USE-флаг и загружая модуль ядра или включая USE-флаг и выгружая модуль ядра с помощью modprobe. Это экономит перекомпиляции ядра и перезагрузки; требуется только переустановить HPLIP для того, чтобы изменения USE-флага произвели эффект. Если модуль должен быть постоянно отключен, он может быть добавлен в чёрный список для предотвращения автоматической загрузки во время запуска системы.

Загрузите модуль ядра usblp:

root #modprobe usblp

Выгрузите модуль ядра usblp:

root #modprobe -r usblp

Добавьте модуль ядра usblp в чёрный список:

root #echo "blacklist usblp" >> /etc/modprobe.d/blacklist.conf

Устройствам, подключенным через параллельный порт, необходимы следующие опций ядра:

ЯДРО Optional: Parallel port printer support
Device Drivers  --->
    <*> Parallel port support  --->
        <*>   PC-style hardware
        [*]   IEEE 1284 transfer modes
    Character devices  --->
        <*> Parallel printer support

Оба вышеупомянутых способа обычно уже включены в большинстве ядер.

Устройства, подключенные по сети, не требуют особых драйверов ядра, но все еще требуется базовая поддержка сети.

Программное обеспечение

Следующая таблица показывает текущие USE-флаги для net-print/hplip:

USE flags for net-print/hplip HP Linux Imaging and Printing - Print, scan, fax drivers and service tools

+hpcups Build the hpcups driver for cups (by HP)
+snmp Add support for net-analyzer/net-snmp which enables this driver to work over networks (both for server and client)
X Enables scanner GUI dependencies with USE="scanner" where media-gfx/xsane is preferred over media-gfx/sane-frontends
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
fax Enable fax on multifunction devices which support it
hpijs Build the IJS driver for cups (Foomatic)
kde Enables kde-misc/skanlite as scanner GUI with USE="scanner X"
libnotify Enable desktop notification support
libusb0 Depend on virtual/libusb SLOT 0. Some old printers do not work with virtual/libusb SLOT 1.
minimal Only build internal hpijs/hpcups driver (not recommended at all, make sure you know what you are doing)
parport Enable parallel port for devices which require it
policykit Enable PolicyKit (polkit) authentication support
qt5 Add support for the Qt 5 application and UI framework
scanner Enable scanner on multifunction devices which support it
static-ppds Use statically-generated PPDs instead of Dynamic PPDs. Although this is deprecated some printers may still need it to work properly. Use this flag if hp-setup fails to find/create a valid PPD file

Установите net-print/hplip:

root #emerge --ask hplip
Заметка
Перед установкой hplip, убедитесь, что установили необходимые USE-флаги. Например, для сетевых принтеров, может понадобится флаг snmp. Если он не указан глобально, укажите его для пакета hplip:
root #emerge --ask echo "net-print/hplip snmp" >> /etc/portage/package.use

Конфигурация

Принтеры и факсы

Заметка
Убедитесь, что USB-принтер подключен к компьютеру или сетевой принтер к сетевому сокету.

Если HPLIP был установлен с включенным USE-флагом qt4 или qt5, используйте "HP Device Manager" для настройки устройств.

В качестве альтернативы выполните hp-setup в терминале:

root #hp-setup

Для сетевого принтера, также укажите его IP-адрес:

root #hp-setup -i 192.168.1.27

После этого, перезапустите CUPS:

root #rc-service cupsd restart

Сканеры

В итоге, сканеры должны работать и определяться в XSane и др.

Тестирование

Принтер

После завершения hp-setup, он должен позволить распечатать тестовую страницу. Это может быть сделано позже с использованием "HP Device Manager" или web-интерфейса CUPS, который находится по адресу http://localhost:631/.

Сканер

Чтобы убедиться, что драйвер сканера установлен и правильно работает, запустите xsane и затем нажмите кнопку предварительного просмотра.

Обновление

Каждый раз после обновления HPLIP рекомендуется выполнить hp-setup -r, чтобы удалить все принтеры и настроить их заново, как описано выше в разделе конфигурация.

Бинарные плагины

Некоторым устройствам необходимы бинарный плагин для использования всех предлагаемых ими функций. Список таких устройств, включая причины, по которым требуется бинарный плагин, доступен на домашней странице проекта. В настоящее время Gentoo не поддерживает бинарные плагины. Однако, hp-setup пытается установить их автоматически.

Установленные файлы находятся за пределами контроля portage и находятся в /usr/share/hplip/data/firmware/, /usr/share/hplip/data/plugins/ и /usr/share/hplip/prnt/plugins/. Для установки плагина без настройки очередей печати доступна команда hp-plugin.

Если установить плагин с помощью hp-setup или hp-plugin не удалось, можно загрузить установщик на сайте openprinting. Для установки плагина необходимо выполнить загруженный файл .run в оболочке:

root #sh hplip-version-plugin.run

Затем следуйте инструкциям установщика по аналогии с hp-setup или hp-plugin.

Устранение проблем

Принтер не найден

Проблема: hp-setup или HP Device Manager не нашел сетевой принтер.

Решение: Проверьте, что у пакета net-print/hplip включен USE-флаг snmp и SNMP включено в настройках принтера.

Печать приостановлена

Проблема: Печать начинается не сразу после отправки задания печати.

Решение: Проверьте административный интерфейс принтера CUPS и убедитесь что принтер не стоит в состоянии паузы.

Ошибка при установке "File "./plugin_install.py", line 78 except ImportError, e:"

Проблема: Происходит следующая ошибка:

root #hp-setup -i 192.168.1.27
[...SNIP...]
 
----------------------
| INSTALLING PLUG-IN |
----------------------
 
Verifying archive integrity... All good.
Uncompressing HPLIP 3.12.10a Plugin Self Extracting Archive.....................................................
  File "./plugin_install.py", line 78
    except ImportError, e:
                      ^
SyntaxError: invalid syntax
error: Python gobject/dbus may be not installed

Решение: Python 3 установлен как основной интерпретатор для python. В настоящее время HPLIP не работает корректно с Python 3. Переключитесь на Python 2 с помощью команды eselect python, чтобы решить эту ошибку.

Дополнительная информация на Launchpad bug #718069

Обновление ebuild'а HPLIP не обновляет бинарные плагин(ы)

Проблема: ebuild HPLIP не обновляет бинарные плагин(ы) после обновления ebuild'а. Признак проблемы: при запуске XSane может произойти ошибка сегментации (т.е. HP LaserJet M1522nf требует бинарный плагин для использования возможности сканирования).

Решение 1: Следование инструкциям по обновлению должно решить эту проблему, поскольку hp-setup пытается обновить плагин. Если проблемы до сих пор остались, в HPLIP присутствует команда hp-plugin, которую можно использовать для установки плагина. В крайнем случае можно загрузить плагин с сайта OpenPrinting и установить его вручную.

Решение 2: Если HPLIP был собран с USE-флагом qt4 или qt5, выполнение hp-info через терминал пользователя автоматически обнаружит конфликт версии бинарной части установленного драйвера и предложит пользователю обновить его, запросив также root пароль через виджет qt4/qt5.

Печать необычных символов

Проблема: Распечатка содержит странно выглядящие символы.

Решение: Принтер скорее всего не может обрабатывать вывод Postscript Level 3. Чтобы обойти это ограничение, отредактируйте PPD файл принтера и замените *LanguageLevel: "3" на *LanguageLevel: "2".

Смотрите Launchpad bug #277404, который был открыт в 2008, и Freedesktop.org bug #19640 для более подробной информации.

Заметка
Launchpad bug #277404 не был исправлен в =net-print/hplip-3.13, и в установленных PPD файлах до сих пор назначен "LanguageLevel 3", несмотря на то, что конкретные принтеры HP не поддерживают 3 уровень.
Заметка
Даже Microsoft Windows печатает, используя Postscript Language Level 2. Хотя графический пользовательский интерфейс может отображать 3 уровень, программы всё равно будут печатать на 2 уровне.
Заметка
Иногда использование Infinality может вызвать неизвестные проблемы. Если ничего не работает, попробуйте отключить Infinality.

SANE/XSANE не находит сканер hpaio

Проблема: SANE или XSANE до сих пор не может найти сканер на основе hpaio.

Решение: SANE/XSANE SANE_BACKENDS и media-gfx/sane-backends используются для того, чтобы потребовать hp или USE-флаг hp. В данный момент, 'hp' sane-backend больше не нужен для доступа к устройствам HPLIP hpaio. Также, если никакие устройства SANE_BACKENDS не указаны в /etc/portage/make.conf, почти все устройства sane-backend компилируются по умолчанию во время установки пакета media-gfx/sane-backends. Это противоречит основному принципу работы USE-флагов и замедляет очень длительную компиляцию на платформах x86.

Может быть благоразумно всё-таки установить SANE_BACKENDS="hp" (или, по крайней мере, нескольким драйверам, даже если они не нужны) в файле /etc/portage/make.conf или в USE-флагах пакета. Также существует старый формат SANE_BACKENDS="sane_backends_hp", поэтому убедитесь, что конфигурация адаптирована под новый формат.

Более актуальное и значимое направление поиска решения этой проблемы: убедиться, что пользователь находиться в группах scanner, usb и/или lp в файле /etc/groups. Если scanimage -L и hp-scan работает от имени root, то что-то не так с разрешениями. Если сканировать не удаётся даже от root, особенно с hp-scan, убедитесь, что плагин правильно установлен/обновлён, а устройство подключено.

Ещё одно область для проверки, когда всё вышеперечисленное настроено правильно: убедитесь, что пользователь может читать файлы в /etc/sane.d/ (особенно /etc/sane.d/dll.conf).

Заметка
Ни hp-scan -g HPLIP, ни scanimage -L SANE не сообщают никакой полезной информации касательно проблем с разрешениями.

Когда ничего не удаётся, strace, содержащийся в dev-util/strace, может предоставить более подробные отчёты, но объяснения, как работать с strace, выходят за рамки этого руководства.

Смотрите также

Внешние ресурсы