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

Решил в качестве эксперимента настроить принт сервер
и так поехали устанавливаем сам 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

(даже не знаю как правельно)

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.