Решил в качестве эксперимента настроить принт сервер
и так поехали устанавливаем сам CUPS
# cd /usr/ports/print/cups
# make install
Ставим драйвера.
# cd /usr/ports/print/splix
# make install
# cd /usr/ports/print/foo2zjs
# make install
# cd /usr/ports/print/gimp-print #(http://gimp-print.sourceforge.net/)
# make install
# cd /usr/ports/print/libijs/
# make install
# cd /usr/ports/print/hplip или # /usr/ports/print/hpijs/
# make install
# cd /usr/local/etc/cups
В этой директории расположены все конфигурационные файлы CUPS.
Для настройки Web интерфейса делаем следующее - открываем файл
#ee /usr/local/etc/cups/cupsd.conf
и вносим следующие изменения:
В секции Network Options
Добавляете:
Listen 127.0.0.1:631
Listen 192.168.0.1:631
В секции Secutity Options
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
#Добавляете:
Allow From 192.168.0.*
</Location>
<Location /admin>
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
#Добавляете:
Allow From 192.168.0.*
</Location>
<Location /admin/conf>
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
#Добавляете:
Allow From 192.168.0.*
</Location>
Теперь вы сможете производить настройку через Web
интерфейс с любого компьютера сети, имеющего IP адрес - 192.168.0.*
Добавим в /etc/rc.conf
usbd_enable="YES"
lpd_enable="YES"
cupsd_enable="YES"
и запускаем
# /usr/local/etc/rc.d/cupsd start
Теперь можно заходить через веб-морду
http://192.168.0.1:631
Вот еще, умолчанию для cups параметр ErrorPolicy принимает значение stop-printer,
поэтому если при печати случаются какие-то ошибки cups останавливает принтер и сам меняет состояние принтера в файле
/usr/local/etc/cups/printers.conf
с State Idle на State Stopped.
Чтобы при печати и каких-то ошибках принтер не стопорился,а просто прерывался job необходимо
в /usr/local/etc/cups/cupsd.conf прописать:
#Error policy default stop-printer
для Самбы все просто
в [global] файла /usr/local/etc/smb.conf добавляем:
load printers=yes
printing=cups
printcap name=cups
use client driver = yes
[printers]
comment = "All printers"
path = /var/spool/samba
public = Yes
guest ok = Yes
writable = No
printable = Yes
browseable = Yes
read only = Yes
Перезапускаем самбу
Смотрим логи
#tail -100 /var/log/cups/error_log
Если есть подобные сообщения:
E [06/Nov/2013:13:18:19 +0200] [CGI] Saw EOF, expected '}'!
E [06/Nov/2013:13:18:22 +0200] [CGI] Saw EOF, expected '}'!
E [06/Nov/2013:13:18:29 +0200] [CGI] Saw EOF, expected '}'!
E [06/Nov/2013:13:18:51 +0200] [CGI] Saw EOF, expected '}'!
Добавляем закрывающую фигурную скобку перед закрывающим тегом </P>
# ee /share/cups/templates/ru/classes-header.tmpl
строку
<P ALIGN="CENTER">{total=0?Нет групп:Группа {#printer_name} из {total}.</P>
меняем на
<P ALIGN="CENTER">{total=0?Нет групп:Группа {#printer_name} из {total}.}</P>
Добавляем закрывающую фигурную скобку перед закрывающим тегом </P>
Аналогично
# ee /usr/local/share/cups/templates/ru/jobs-header.tmpl
<P ALIGN="CENTER">{total=0?Нет заданий:Задание {#job_id} из {total}
{?which_jobs=?активных:{which_jobs=all?:завершенных}}.</P>
меняем на
<P ALIGN="CENTER">{total=0?Нет заданий:Задание {#job_id} из {total}
{?which_jobs=?активных:{which_jobs=all?:завершенных}}.}</P>
# ee /usr/local/share/cups/templates/ru/printers-header.tmpl
строку
<P ALIGN="CENTER">{total=0?Нет принтеров:Принтер {#printer_name} из
{total}.</P>
меняем на
<P ALIGN="CENTER">{total=0?Нет принтеров:Принтер {#printer_name} из
{total}.}</P>
# /usr/local/etc/rc.d/cupsd restart
Все, эта назойливая ошибка теперь не будет мозолить глаза
Еще об ошибках
X [06/Nov/2013:13:31:01 +0200] kevent() returned Bad file descriptor
X [06/Nov/2013:13:31:04 +0200] Unable to open device file: Permission denied
CUPS запускается с правами root, но печатать будет только на устройства, принадлежащие системной группе "cups".
Приводим /etc/devfs.rules к такому виду:
# ee /etc/devfs.rules
[system=10]
add path ulpt0 mode 0660 group cups
# ee /etc/rc.conf
devfs_system_ruleset="system"
# /etc/rc.d/devfs restart
# /chown root:cups /dev/ulpt0
или так
# ee /etc/devfs.conf
#Give cups printer access
own ulpt0 root:cups
perm ulpt0 0660
(даже не знаю как правельно)
Коментувати