Принт-сервер на FreeBSD

в 12:57, , рубрики: cups, freebsd, Серверное администрирование, метки: ,

Итак у нерадивого техсуппорта за плохое поведение был изъят принтер Xerox Phaser 3117. Так как десктопом (да и не только) на работе я (и не только я) использую FreeBSD, то возникла необходимость прикрутить данный принтер к данной ОС. А так как принтером пользуюсь не только я, то нужно его расшарить еще по сети как то.

Проштудировав миллион ссылок гугла стало понятно что расшаривание принтера через SAMBA не выход. Ибо в офисе из 40 машин виндовых только две.
Через LPD тоже как то не сильно прельщало. Решил остановиться на http-подключении. Как оказалось не зря.

Итак, что я сделал.

Подключил принтер. Он удачно определился:
[anton@raccoon ~]$ bzcat /var/log/messages.0.bz2|grep ulp
Mar 15 16:04:01 raccoon kernel: ulpt0: <Xerox Corporation Xerox Phaser 3117, class 0/0, rev 1.10/1.00, addr 2> on uhub1
Mar 15 16:04:01 raccoon kernel: ulpt0: using bi-directional mode

После чего ставим систему управления печатью CUPS. Ставил из портов:
[root@raccoon ~]# whereis cups
cups: /usr/ports/print/cups
[root@raccoon ~]# cd /usr/ports/print/cups
[root@raccoon /usr/ports/print/cups]# make install

Когда все поставилось, то пробуем добавить принтер в систему. Для этого добавляем в rc.conf строку cupsd_enable=«YES»
[root@raccoon /usr/ports/print/cups]#echo 'cupsd_enable= «YES»' >> /etc/rc.conf

Запускаем CUPS
[root@raccoon /usr/ports/print/cups]# /usr/local/etc/rc.d/cupsd start

Если все прошло удачно, то заходим на http://localhost:631/ и видим CUPS

Пробуем добавить принтер.«Администрирование» — «Добавить принтер». Выбираю «USB Printer #1». Нажимаю «Далее». В следующем меню вроде как все понятно. Главное вписать название. Расположение и комментарии не очень важны. Они более для информативности. Чекбокс для расшарки ставим. Опять нажимаем «Далее».

И тут в следующем окне возник небольшой затык. Нет принтеров фирмы Xerox. Да и вообще как то скудно по моделям. Ладно, там же есть возможность подкинуть pdd-файл. Первым делом полез на сайт Xerox. Дрова были только линуксовые, но файл pdd в них был. Однако как ни удивительно, но не завелось.

После очередно рыскания по просторам мировой сети оказалость что есть такой порт splix, котором есть драйвера для моего принтера. Да и не только для моего. Ставим:
[root@raccoon /usr/ports/print/cups]# whereis splix
splix: /usr/ports/print/splix
[root@raccoon /usr/ports/print/cups]# cd /usr/ports/print/splix
[root@raccoon /usr/ports/print/splix]# make install

После чего рестартим CUPS и успешно добавляем принтер. Пробую печатать тестовую страницу. не печатает и в логе заданий пишет что
canceled at
Thu Mar 15 16:51:46 2012
"Unable to open device file: Permission denied"

Проблема решается просто
Правлю файл:
mcedit /usr/local/etc/cups/printers.conf

Меняю строку
DeviceURI usb:/dev/ulpt0
на
DeviceURI file:/dev/ulpt0

После чего пробую отправить тестовую страницу на печать. И все начинает работать и печататься.

После этого возник вопрос «что делать тем кто хочет печатать по сети?». Все очень просто. Им надо добавить http-принтер по следующему адресу: http://myhost:631/printers/printername
printername в данном случае название принтера, которое Вы дали при настройке.

Однако чтобы дать доступ по сети в файле
/usr/local/etc/cups/cupsd.conf
в секции
<Location />

необходимо или прописать ip-адреса конкретных машин или полностью открыть доступ для печати. Интуитивно там все понятно. Очень похоже на htaccees.

Если хотим печатать на данный принтер из FreeBSD, то на клиентской машине ставим CUPS и splix и добавляем принтер по http.
Их Linux печатать не пробовал так как его нет под рукой, но думаю что проблем не возникнет.
Из MAC принтер добавился и выплюнул тестовую страницу как родной.
Из Win как обычно добавляем сетевой принтер. Печать успешная. Предварительно только скачал драйвера для принтера под данную ОС и указал при установке.

Автор: toxxxa13

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js