Со смертью моего D-Link роутера, который одновременно и являлся принт-сервером в сети, пропала возможность печати. Можно, конечно было, подключить принтер к какому-нибудь другому компьютеру и сделать его сетевым, но провод просто не дотягивался. К тому же все компьютеры периодически выключаются, перезагружаются и т.д.
Решил поставить его на сервер. Воткнул провод от принтера в сервак. Сразу же на консоли увидел две строчки, сообщающие мне, что принтер успешно подключен.
Попытался прикрутить его к SAMBA. Но компьютеры с Windows его не видели почему-то :-(
Полазил в портах, нашел утилиту hplip - утилиты для принтеров HP. Что ж, ставим:
# cd /usr/local/print/hplip
# make install clean
Убираем галочку с поддержки GUI. Не надо это. Лично у меня, порт ставился минут 30, т.к. утянул за собой просто немеренное количество библиотек. Что не сделаешь для принтера. Пока ждал, узнал, что в портах обновился php до версии 5.2.6 )))
ВАЖНО! hplip тянет за собой ghostscript-gpl и почему-то не показывает окошко с опциями (make config). А по умолчанию ставится версия с поддержкой X11. У меня нет X11 и я не хочу, чтобы они ставились только ради этого. По этому, до установки hplip, я поставил ghostscript-gpl-nox11.
После установки, нам сообщается, что принтер должен быть подключен как устройство ugen(4), а не ulpt. Поэтому в конфиге ядра надо удалить строчку:
device ulpt
Делаем это, пересобираем ядро, добавляем в rc.conf строчки:
cupsd_enable="YES"
hpssd_enable="YES"
и перезагружаемся, чтобы заработало ядро.
Так же надо поставить cups-samba:
# cd /usr/ports/print/cups-samba
# make install clean
После установки на экран будет выведена инструкция по дальнейшим действиям.
Надо поправиться файлы /usr/local/etc/cups/mime.convs и mime.types и раскомментировать в них строчку:
application/octet-stream
Далее правим файл /usr/local/etc/smb.conf:
[global]
load printers = yes
# взять из /etc/printcap, то, что до знака |
printing = cups
printcap name = cups
[HP_LaserJet_1010]
comment = Printer
path = /var/spool/samba
guest ok = yes
printable = yes
browseable = yes
public = yes
writable = no
printer admin = av3nger
[print$]
comment = Printer Drivers
path = /usr/local/share/cups/drivers
browseable = yes
guest ok = yes
read only = yes
write list = av3nger
Перезагружаем SAMBA.
Настраиваем HPLIP
Создаем файл /etc/devfs.rules:
[system=10]
add path 'usb*' group cups
add path 'usb*' mode 0660
add path 'ugen*' group cups
add path 'ugen*' mode 0660
Добавляем в rc.conf строчку:
devfs_system_ruleset="system"
Выполняем команду:
# /etc/rc.d/devfs restart
Делаем:
# hp-setup
Может быть такое, что будет не найдет файл PPD. Тогда вам надо его скачать отсюда.
ВАЖНО! У меня все равно не получилось установить принтер с помощью hp-setup, т.к. в конце всегда возникала ошибка:
error: Printer queue setup failed. Please restart CUPS and try again.
Перезагрузка CUPS не помогала. Решил проблему, просто установив принтер через панель управления CUPS.
Настраиваем CUPS
В файле /usr/local/etc/cups/cupsd.conf проверяем наличие следующих строк:
# здесь ip адрес сервера, у меня 192.168.0.3
Listen 192.168.0.3:631
<Location>
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>
<Location>
Encryption Required
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>
Запускаем cupsd и заходим на https://192.168.0.3:631 (тут указывайте адрес сервера). И настраиваем там принтер. Там все интуитивно понятно.
Настраиваем автоматическую загрузку драйверов с сервера. Иными словами, как сделать так, чтобы не надо было постоянно тыкать диск с драйверами для принтера в каждый компьютер.
Рекомендуется использовать родные драйвера cups. Но их я поставить так и не смог. Жаль. Вместо них можно использовать драйвера Adobe PhostScript. Качаем их отсюда.
Распаковываем, там будет папка WinXP. Все файлы из нее надо скопировать в папку /usr/local/share/cups/drivers на сервере. Важно, чтобы имена файлов были в нижнем регистре!!!
После этого выполняем команду:
# cupsaddsmb -U av3nger -v -a
Это означает, что мы используем имя пользователя av3nger, чтобы установить все принтера в самбу. Чтобы выполнить команду, надо ввести пароль пользователя av3nger в самбе (у вас пользователь, конечно же, будет другой).
Все. На этом установка завершена. Принтер настроен, драйвера установлены.