Заметки ИТ-шника

Установка сетевого принтера в FreeBSD

Со смертью моего 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 в самбе (у вас пользователь, конечно же, будет другой).

Все. На этом установка завершена. Принтер настроен, драйвера установлены.