суббота, 8 сентября 2007 г.

Принтер HP DeskJet 6943 в сети с FreeBSD

Избавившись в своё время от Windows-принтера HP LaserJet 1005w, который не умеет работать с Unix, недавно задался вопросом о приобретении достаточно универсального агрегата. «Переболев» манией печати электронных книг, которые с большей вероятностью останутся лежать на полках непрочитаными или со временем превращающихся в непереплетённую макулатуру, решил больше не делать из бумаги культа. Всё должно быть в меру. А значит лазерник, обеспечивающий дешёвую печать исключительно ч.-б. копий, мне не нужен.

Итак, новые требования к аппарату для получения твёрдых копий были простыми: печать чёрно-белых и цветных материалов с приемлемым качеством и в относительно небольших объёмах. Так же, аппарат должен быть совместим с Unix, в частности, с системой печати CUPS.

HP DeskJet 6943

Так, я приобрёл принтер для небольших печатных работ. Аппарат относится к серии 6940. Важно, что он имеет два интерфейса: USB для обычного подключения, и для включения в сеть Ethernet (IEEE 802.3) — в работе задействуется что-то одно.

Технические характеристики можно посмотреть подробнее >>>

Картриджи для печати сравнительно дорогие. Далее привожу расклад по ценам на картриджи для этого принтера от одного из интернет-магазинов (цены немного округлены в большую сторону).

Чёрный картридж большой ёмкости HP 130 (C8767HE) на 850 листов стоит 830 руб.
Трёхцветный картридж малой ёмкости HP 135 (C8766HE) на 330 листов или на 110 фотокарточек стоит 860 руб.
Трёхцветный картридж большой ёмкости HP 134 (C9363HE) на 590 листов или 220 фотокарточек стоит 900 руб.
Фотокартридж HP 138 (C9369HE) на 130 фотокарточек стоит 680 руб.
Серый фотокартридж HP 100 (C9368AE) на 80 фотокарточек стоит 630 руб.

В работе используются всегда два картриджа: либо чёрный с трёхцветным картриджем для обычной чёрно-белой или цветной печати, либо фотокартридж с трёхцветным картриджем для реалистичной фотопечати.

Так же доступны так называемые «наборы», куда входят картриджи и фотобумага, которые по совокупной стоимости гораздо дешевле, чем их отдельные составляющие. Так, например, можно купить набор для фотопечати HP 135 с 100 листами фотобумаги повыш. качества 10x15 см (Q7935HE) всего за 750 руб. Так же можно купить групповую упаковку из двух трёхцветных картриджей HP 134 (CB332HE) всего за 1250 руб.

Кроме того, картриджи для этого принтера перезаправляемы! Вот здесь: http://www.ink-market.ru/?cid=992
можно подобрать необходимые чернила для перезаправки и скачать инструкцию.

Подключение
Подключение принтера выполняется либо USB-кабелем (его нет в компекте — нужно покупать отдельно), либо Ethernet-кабелем (этот кабель есть в комплекте). Я подключил принтер к ADSL-роутеру. Вставил картриджи. Включил. Автоматически распечаталась первая тестовая страничка, показав, что вроде бы всё в порядке. В инструкции к принтеру отсутствовала какая-либо информация о доступе к принтеру по Web-интерфейсу. Но ведь нужно как-то смотреть состояние принтера, который не подключен ни к какому компьютеру. Интуитивно нажал кнопку [V] на принтере и распечатался отчёт, где был указан IP-адрес принтера в сети, введя который в браузере я смог попасть на web-страницу принтера. Кроме общих настроек и информации о состоянии ничего более примечательного не обнаружилось. Пришлось изучать Интернет на предмет того, «как же на нём печатать?».

CUPS
В Unix достаточно давно существует Common UNIX Printing System — CUPS. Эта система представляет собой сетевую службу поддержки печати на PostScript-принтерах в среде Unix. Между прочим, операционная система Apple MAC OS X — тоже «потребитель» этого решения.

Так как я вообще не имею понятия о системе печати в Unix (ни разу не пользовался ни lpr, ни CUPS), то настройка печати во FreeBSD для меня казалась нетривиальной задачей. Фактически пришлось «сращивать» не-PostScript принтер с CUPS через промежуточный слой, называемый HPLIP (HP Linux Imaging and Printing).

HPLIP
Так как система печати CUPS у меня уже была установлена вместе с Xfce4, то надо было доустановить HPLIP. Начал было скачивать тарбол-архив с сайта hplip.sourceforge.net, но вовремя заметил, что это ПО портировано во FreeBSD и находится в Коллекции портов: /usr/ports/print/hplip

Установка HPLIP со всеми зависимостями, в том числе и GhostScript, заняла порядка часа. Далее я начал искать как всё это запустить. Удивительно, но Google выдал ответы только по подключению USB-принтеров, про сетевую печать не было ни одной ссылки (может я задавал не те вопросы?).
Позднее, переиначив запрос на втором десятке открытых страниц поиска я, наконец-то, обнаружил то, что искал.

Вот тут: http://dsteinbrook.googlepages.com/hpliponfreebsd
есть информация, как подключить USB-принтер. Но у меня принтер подключён к роутеру по Ethernet.

Вот здесь: http://hplip.sourceforge.net/install/step4/cups/net.html
исчерпывающая информация по настройке сетевого принтера.

Инструкция
1. Установите CUPS:
% cd /usr/ports/print/cups/ && make install clean

2. Установите HPLIP:
% cd /usr/ports/print/hplip/ && make install clean
(Для сетевого принтера HP важно, чтобы пакет HPLIP был собран с поддержкой SNMP, иначе hp-makeuri не найдёт принтер в сети.)

3. Обеспечьте загрузку демонов при старте системы в /etc/rc.conf:
cupsd_enable="YES"
hpssd_enable="YES"


4. Задайте дополнительные права в /etc/devfs.rules, только если принтер подключен по USB (полный текст настройки прав):
[system=10]
add path 'da*' mode 0666 group operator
add path 'acd*' mode 0666 group operator
add path 'cd*' mode 0666 group operator
add path 'fd*' mode 0666 group operator
add path 'umass*' mode 0666 group operator
add path 'xpt*' mode 0666 group operator
add path 'usb*' mode 0770 group cups
add path 'ugen*' mode 0660 group cups
и внесите пользователя в группу operator в файле /etc/group.
В /etc/rc.conf добавьте:
devfs_system_ruleset="system"


5.Перезагрузите машину.

6. Определите IP-адрес принтера из его отчёта и сгенерируйте ссылку для него:
% hp-makeuri 192.168.1.4


7. Откройте браузер и перейдите по адресу:
http://localhost:631
Запустится домашняя страница демона CUPS.

8. Добавьте принтер в систему CUPS с помощью мастера и Web-форм:

Кнопка Add Printer ->

Форма Add New Printer
Name: HPDJ6943
Location: ссылка, полученная в п.6.
Description: краткое описание принтера

Форма Device for HPDJ6943
Бокс выбора Device: HP DeskJet 6940 series (192.168.1.4)...

Форма Model/Driver for HPDJ6943
Список выбора Model: HP DeskJet 6940 Foomatic/hpijs (en)
Кнопка Add Printer ->
Введите имя и пароль администратора и принтер будет добавлен в систему CUPS.

На странице настроек принтера можно задать носитель, режимы печати, распечатать пробную страницу и т.д.

В общем, настройка не так сложна, как кажется.

P.S.
Можно выбрать драйвер принтера более точно — указать PPD-файл: /usr/local/share/ppd/HP/hp-deskjet_6940_series-hpijs.ppd.gz