Настройка CUPS и lpd через foomatic

Сложно дать краткое описание того, что же такое foomatiс. Это и база описаний моделей принтеров, и интерфейс настройки одновременно. Более того, foomatic умеет настраивать практически все известные на сегодняшний день спулеры, в частности CUPS и lpr.

Процедуру настройки лучше всего рассмотреть на конкретном примере. Пусть мы хотим настроить printer HP LaserJet 1100, расположенный на Windows™-машине SOMEHOST в рабочей группе SOMEGROUP под именем SOMEPRINTER.

  1. Шаг1. Сформируем URI, описывающее расположение принтера. Общий формат <протокол>://<местоположение>. Местоположение зависит от протокола:

    Если удаленный сервер совместим с lpd, то URI имеет вид : lpd://имя_машины/имя_принтера

    Если принтер подключен локально, то URI — file://путь_к_файлу, в частности может быть указан файл-устройство (например, /dev/lp0.

    Если удаленный сервер работает под управлением Windows™ (наш случай), то URI — smb://user:password@SOMEGROUP/SOMEHOST/SOMEPRINTER. Некоторые поля в описании могут отсутствовать.

    Наконец, в случае Netware-сервера URI — ncp://user:password@SERVER/PRINTER

  2. Шаг2. Посмотрим доступные описания моделей принтеров. Для этого запустим команду foomatic-configure -O | less. Описание будет выведено на экран в формате XML. Выделим подходящее описание:

    	  <printer>  
    	  <id>62816</id>
    	  <make>HP</make>  
    	  <model>LaserJet 1100</model>
    	  <functionality>A</functionality>
    	  <autodetect>    
    	  <parallel>
    	  <commandset>MLC,PCL,PJL</commandset>
    	  <description>HP LaserJet 1100
    	  Printer</description>
    	  <manufacturer>Hewlett-Packard</manufacturer>
    	  <model>HP LaserJet 1100</model>
    	  </parallel>  
    	  </autodetect>  
    	  <drivers>
    	  <driver>ljet4</driver>
    	  <driver>stp</driver>
    	  </drivers>
    	  </printer>
    	

    Нас прежде всего интересует идентификатор-описание, заключенный в теги <id> — в нашем случае это 62816. Выберем также драйвер GhostScript™ — выбор того или иного драйвера дело опыта и вкуса. Мы остановимся на ljet4 — основной рабочей лошадке всего этого семейства принтеров.

  3. Шаг3. Мы собрали теперь достаточно информации для того чтобы произвести конфигурацию принтера. Это делается одной командой foomatic-configure. Мы укажем желаемый спулер (параметр -s), имя принтера (параметр -n) идентификатор описания, драйвер и URI.

    foomatic-configure -s cups -n Laser_Jet -p 62816 -d ljet4 -c \ smb://user:password@SOMEGROUP/SOMEHOST/SOMEPRINTER

Вот и все готово. Настройки можете посмотреть непосредственно в конфигурационных файлах спулера или при помощи команды foomatic-configure -Q. Данная программа на моей машине сообщила следующее:

      <defaultqueue>printer</defaultqueue> 
      <queue foomatic="1" spooler="cups">
      <name>Laser_Jet</name>
      <printer>62816</printer>
      <driver>ljet4</driver>
      <connect>smb://user:password@SOMEGROUP/SOMEHOST/SOMEPRINTER</connect>
      <description>HP LaserJet 1100</description> 
      </queue>
      <queue foomatic="0" spooler="cups">  
      <name>lexmark</name>
      <connect>file:/dev/lp0</connect>
      </queue>
      <queue foomatic="1" spooler="cups">
      <name>printer</name>
      <printer>62368</printer>
      <driver>ljet4</driver>
      <connect>file:/dev/lp0</connect>
      </queue>
      </queues>
    

Все понятно без лишних комментариев.