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 необходимо добавить:
/etc/portage/make.confSANE_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, должны быть включены следующие опции ядра:
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-doctor
hp-doctor is a diagnostic utility included with HPLIP that can help find problems. It will give an error that Gentoo is not supported but will work.
user $hp-doctorIt may give errors about missing hp-upgrade and missing python3-pyqt4 which will not cause problems. Other issues should be investigated as they may indicate an actual problem.
The error below indicates a network problem. Make sure the ip address can be pinged. If using DHCP, make sure the printer is also configured to use DHCP. Some printer models allow the "IPv4 Config Method" to be set via the contol panel on the printer itself - make sure it is set to DHCP.
error: Unable to communicate with device (code=12): hp:/net/[printer name ....ip=xxx.xxx.xxx.xxx]
Принтер не найден
Проблема: hp-setup или HP Device Manager не нашел сетевой принтер.
Решение: Проверьте, что у пакета net-print/hplip включен USE-флаг snmp и SNMP включено в настройках принтера.
Печать приостановлена
Проблема: Печать начинается не сразу после отправки задания печати.
Решение: Проверьте административный интерфейс принтера CUPS и убедитесь что принтер не стоит в состоянии паузы.
Обновление 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 segfaulting when using HPAIO backend
Ensure that the dbus service is running. HPAIO segfaults silently if this is not the case.
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, выходят за рамки этого руководства.