HPLIP
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 необходимо добавить:
SANE_BACKENDS="hp"
Back-end hpaio предоставляется самим HPLIP, если включен USE-флаг
scanner
. Если не требуется дополнительной настройки этого back-end'а, то должны быть определены следующие настройки в /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, должны быть включены следующие опции ядра:
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
Устройствам, подключенным через параллельный порт, необходимы следующие опций ядра:
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, выходят за рамки этого руководства.