FreeBSD: Печать на сетевой принтер, подключенный к компьютеру с Windows [2010]
Одной из важных задач, связанных с интеграцией десктопа с FreeBSD в корпоративную сеть, состоящую из компьютеров с Windows, является организация печати на принтеры, подключенные к "инородным” принт-серверам. На мой взгляд, самым простым решением данной "проблемы” является совместное использование штатной системы печати FreeBSD, известной как Berkeley printing system и LPD, а также службы Print Services for UNIX, которая входит в комплект поставки всех современных версий Windows.
Почему именно LPD?
Вполне закономерный вопрос, особенно с учетом того, что штатная система печати FreeBSD "бесповоротно устарела”, и в настоящее время доступно множество более мощных и удобных альтернатив, самой популярной из которых является CUPS. Во-первых, потому, что LPD прекрасно работает со всеми используемыми мной десктопными приложениями, во-вторых, потому, что она не нуждается в стороннем программном обеспечении и может быть настроена за пару минут. Система печати CUPS менее стабильна, занимает много места на диске и нуждается в сложной настройке, при этом большинство ее "наворотов” не имеет практического смысла при использовании на десктопе. Вот, собственно, и все обоснование.
Исходные данные
Все действия, которые описаны в данной заметке, могут быть выполнены на любом компьютере с Linux/Unix, при этом Вам не придется устанавливать на него какое-либо программное обеспечение. На роль сервера печати подойдет компьютер с любой операционной системой семейства Windows NT, к которому подключен принтер. Лично я использовал десктоп с FreeBSD 8.1-PRERELEASE и KDE 3.5.10_6, принт-сервер с Windows XP Professional SP3 и принтер HP LaserJet 1200. На всякий случай следует отметить, что штатный брандмауэр сервера печати был отключен.
Настройка компьютера с Windows
Для того, чтобы компьютер с Windows мог обрабатывать задания, отправленные штатной системой печати FreeBSD, необходимо установить на него Службы печати для Unix. Для выполнения этой процедуры следует перейти к Панели управления, запустить компонент Установка и удаление программ, щелкнуть по закладке Установка компонентов Windows, выбрать Другие службы доступа к файлам и принтерам в сети, нажать кнопку Состав, установить "галочку” Службы печати для Unix и нажать кнопку ОК. В результате будет установлена и запущена служба Сервер печати TCP/IP (короткое название – lpdsvc). По непонятным причинам (скорее всего, из-за "любви” разработчиков Windows к Unix-like операционным системам) для нее задается режим запуска Вручную, который следует изменить на Автоматически любым удобным способом, например, командой:
sc config lpdsvc start= auto
Настройка компьютера с FreeBSD
Для того, чтобы штатная система печати компьютера с FreeBSD могла отправлять задания Службам печати для Unix, нужно настроить демон lpd(8). Первым этапом данной процедуры является добавление определения принтера в базу данных принтеров, которая хранится в файле /etc/printcap (подробное описание формата данного файла имеется в printcap(5)). Определение сетевого принтера должно выглядеть примерно так:
HP LaserJet 1200|lp:\
:lp=:rm=computer:rp=printer:sh:sd=/var/spool/lpd:
Первая строка содержит любое количество имен (псевдонимов) принтера (принтер, который предполагается использоваться по умолчанию, должен иметь псевдоним lp), вторая строка определяет: lp – устройство, связанное с принтером (для сетевых принтеров нужно указывать пустое значение), rm – IP-адрес или имя сервера печати, rp – имя принтера, заданное на сервере печати, sh – запрет выдачи начальных страниц, sd – папка спулинга.
Для того, чтобы демон lpd автоматически запускался при запуске операционной системы, выводил подробную информацию о выполняемых действиях в лог /var/log/lpd-errs и не открывал сокет для приема заданий от других компьютеров, нужно добавить в файл /etc/rc.conf следующие строки:
lpd_enable="YES"
lpd_flags="-ls"
На этом настройка штатной системы печати FreeBSD заканчивается. Можно запустить демон lpd командой /etc/rc.d/lpd start, а затем запросить его состояние командой /etc/rc.d/lpd status. Если последняя команда выдаст сообщение: lpd is running as pid …, все нормально, если же – lpd is not running, Вам следует найти и устранить ошибки в файлах конфигурации. Для финальной проверки свеженастроенной системы следует воспользоваться командой lptest 20 5 | lpr, в результате выполнения которой в левом верхнем углу листа должен напечататься вот такой текст:
!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456
$%&'()*+,-./01234567
%&'()*+,-./012345678
На всякий случай следует отметить, что список возможных проблем, а также методов их устранения имеется в разделе Выявление проблем хендбука.
Заключение
Выполнив действия, которые описаны в этой заметке, Вы сможете без каких-либо проблем печатать на сетевой принтер из браузера Mozilla Firefox и почтового клиента Mozilla Thunderbird, приложений KDE 3.5.x и OpenOffice.org, а в случае необходимости использовать стандартные команды штатной системы печати FreeBSD, подробное описание которых имеется в разделе Использование принтеров хендбука.