Где хранятся ppd linux

Обновлено: 07.07.2024

CUPS - это стандартная система печати с открытым исходным кодом, разработанная Apple Inc. для MacOS® и других UNIX®-подобных операционных систем.

Contents

Установка

Если вы намерены "распечатать" в документ PDF, тогда вам необходимо установить пакет cups-pdf . По умолчанию файлы PDF хранятся в /var/spool/cups-pdf/имя_пользователя . Местоположение можно изменить в /etc/cups/cups-pdf.conf .

Сокет-активация

cups предоставляет юнит cups.socket . Если сокет cups.socket включен (а служба cups.service отключена), systemd не будет запускать CUPS сразу, а просто будет слушать соответствующие сокеты. Затем всякий раз, когда программа пытается обратиться к одному из этих сокетов, systemd будет запускать службу cups.service и прозрачно передавать управление этими портами процессу CUPS.

Таким образом, CUPS запускается только тогда, когда программа хочет его использовать.

Интерфейсы подключения

Дополнительные шаги для обнаружения принтера приведены ниже для различных интерфейсов подключения.

  • Вспомогательные программы CUPS запускаются с использованием пользователя и группы cups . Это позволяет им получать доступ к файлам принтера и читать файлы конфигурации в /etc/cups/ , которые принадлежат группе cups .
  • До cups версии 2.2.6-2, вместо группы cups использовалась группа lp . После обновления файлы в /etc/cups должны принадлежать группе cups , а в файле /etc/cups/cups-files.conf должно быть прописано User 209 и Group 209 .

Чтобы узнать, обнаружен ли ваш USB-принтер:

Параллельный порт

Чтобы использовать принтер с параллельным портом, требуются модули ядра lp , parport и parport_pc .

Чтобы обнаружить или предоставить общий доступ к принтерам с помощью DNS-SD/mDNS, настройте разрешение имени узла .local через Avahi и перезапустите службу cups.service .

Примечание: DNS-SD поддерживается только при использовании Avahi. CUPS не поддерживает использование systemd-resolved для DNS-SD. Для получения дополнительной информации смотрите CUPS issue 5452.

Для предоставления общего доступа к принтерам с помощью Samba, например, если система должна быть сервером печати для клиентов Windows, необходим пакет samba .

Драйверы принтеров

Драйверы для принтеров можно получить из любого из источников, приведенных ниже. Смотрите CUPS/Принтероспецифичные проблемы для неполного списка драйверов, которые работают.

Для управления принтером CUPS требуется файл PPD, а для большинства принтеров - некоторые фильтры. Подробнее о том, как CUPS использует PPD и фильтры, смотрите на [1].

Список принтеров OpenPrinting содержит рекомендации для драйверов для многих принтеров. Он также поставляет файлы PPD для каждого принтера, но большинство из них доступны через foomatic или рекомендованный пакет драйверов.

Когда файлы PPD предоставляются CUPS, тогда сервер CUPS будет регенерировать файлы PPD и сохранять их в /etc/cups/ppd/ .

CUPS обеспечивает поддержку принтеров AirPrint и IPP Everywhere.

Фильтры OpenPrinting CUPS

Рабочая группа OpenPrinting в Linux Foundation предоставляет cups-filters. Это бэкэнды, фильтры и другие двоичные файлы, которые когда-то были частью CUPS, но больше не поддерживаются Apple. Они доступны в пакете cups-filters , который является зависимостью для cups .

Для принтеров Non-PostScript требуется установить ghostscript . Для ghostscript также может потребоваться gsfonts .

Foomatic

Рабочая группа foomatic в OpenPrinting в Linux Foundation предоставляет PPD для многих драйверов принтеров, как свободных, так и проприетарных. Для получения дополнительной информации о том, что делает foomatic, смотрите Обзор foomatic от разработчиков.

Чтобы использовать foomatic, установите foomatic-db-engine и по крайней мере один из пакетов:

  • foomatic-db - коллекция файлов XML, используемая foomatic-db-engine для генерации файлов PPD.
  • foomatic-db-ppds - прекомпилированные файлы PPD.
  • foomatic-db-nonfree - коллекция файлов XML под несвободными лицензиями от производителей принтеров, используемая foomatic-db-engine для генерации файлов PPD.
  • foomatic-db-nonfree-ppds - прекомпилированные файлы PPD под несвободными лицензиями.

Для PPD foomatic могут потребоваться дополнительные фильтры, такие как min12xxw AUR .

Gutenprint

Проект Gutenprint предоставляет драйвера для Canon, Epson, Lexmark, Sony, Olympus, и принтеров PCL для использования с CUPS и GIMP.

Примечание: Когда пакет Gutenprint обновился, принтеры, использующие драйвера Gutenprint, будут остановлены, пока вы не выполните от суперпользователя команду cups-genppdupdate и не перезапустите CUPS. Команда cups-genppdupdate обновит файлы PPD для всех настроенных принтеров. Для получения дополнительной информации смотрите cups-genppdupdate(8) .

Специфические для производителя драйвера

Многие производители принтеров поставляют свои собственные драйверы Linux. Они часто доступны в официальных хранилищах Arch или в AUR.

Некоторые из этих драйверов описаны более подробно в CUPS/Принтероспецифичные проблемы.

URI принтера

Ниже перечислены дополнительные шаги для ручного создания URI, если это необходимо. Для некоторых принтеров или драйверов нужны особые URI, описанные в CUPS/Принтероспецифичные проблемы.

CUPS должен иметь возможность автоматически генерировать URI для USB-принтеров, например usb://HP/DESKJET%20940C?serial=CN16E6C364BH .

Параллельный порт

URI должен иметь вид parallel:device . Например, если принтер подключен к /dev/lp0 , используйте parallel:/dev/lp0 . Если вы используете адаптер USB для параллельного порта, используйте parallel:/dev/usb/lp0 в качестве URI принтера.

URI также можно создать вручную, не используя Avahi. Список доступных схем URI для сетевых принтеров доступен в документации CUPS. Поскольку точные данные URI отличаются между принтерами, проверьте руководство принтера или CUPS/Принтероспецифичные проблемы.

URI для сетевых принтеров SMB описаны на справочной странице smbspool(8) .

Использование

  • Имя принтера - короткое, но описательное имя, используемое в системе для идентификации принтера. Это имя не должно содержать пробелов или специальных символов. Например, принтер, соответствующий HP LaserJet 5P, может быть назван "hpljet5p". С каждым физическим принтером можно связать более одной очереди.
  • Расположение - это описание физического расположения принтера (например, "спальня", или "кухня"). Это помогает поддерживать несколько принтеров.
  • Описание - полное описание принтера. Обычно используется полное имя принтера (например, "HP LaserJet 5P").

Инструменты CLI

Смотрите локальную документацию CUPS для получения дополнительных сведений об инструментах командной строки.

Примечание: Нельзя сгруппировать переключатели командной строки

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Нестандартное использование списков определений, комментариев в командной строке. (Discuss in Talk:CUPS (Русский)) Список устройств Список моделей Добавление нового принтера

Имя принтера зависит от тебя. Например:

Примечание: При указании PPD используйте только имя файла, а не полный путь (например, pxlmono.ppd вместо /usr/share/ppd/cupsfilters/pxlmono.ppd ) Установите принтер по умолчанию Изменение параметров

Проверка cостояния принтера Отключение принтера Включение принтера Настройка принтера для приема заданий Удаление принтера

Сначала настройте принтер для отклонения всех входящих записей:

Затем отключите его.

Наконец, удалите его.

Печать файла Проверка очереди Очистка очереди

Веб интерфейс

Перейдите на вкладку Администрирование.

Изменение существующих принтеров

Перейдите на вкладку Принтеры и выберите принтер для изменения.

Перейдите на вкладку Принтеры и выберите принтер.

Приложения с GUI

Настройка

Настройки сервера CUPS находятся в /etc/cups/cupsd.conf и /etc/cups/cups-files.conf (смотрите cupsd.conf(5) и cups-files.conf(5) ). После редактирования любого из этих файлов, перезапустите cups.service , чтобы применить произведенные изменения. Настройки по умолчанию подходят для большинства пользователей.

Группы с правами администрирования принтера определены в SystemGroup в /etc/cups/cups-files.conf . Группы sys и root используется по умолчанию.

Пакет cups собран с поддержкой libpaper и значением по умолчанию для формата бумаги Письмо для файла libpaper. Чтобы избежать необходимости изменять размер бумаги для каждого принтера, отредактируйте /etc/papersize и задайте размер бумаги по умолчанию для вашей системы. Для получения дополнительной информации смотрите papersize(5) .

По умолчанию все журналы отправляются в файлы в /var/log/cups/ . Изменив значения директив AccessLog , ErrorLog и PageLog в /etc/cups/cups-files.conf на syslog , то CUPS сможет отправлять логи в журнал systemd. Смотрите вики-страницу fedora для получения информации об исходном предлагаемом изменении.

cups-browsed

This article or section is out of date.

Reason: cups-browsed.service не требуется для обнаружения принтеров, объявленных через DNS-SD, что делается сейчас через cups.service . Служба требуется только для обнаружения принтеров на сервере LDAP и тех, которые используют устаревший протокол CUPS (серверы CUPS ≤ 1.5). (Discuss in Talk:CUPS (Русский))

CUPS может использовать Avahi для обнаружения неизвестных общих принтеров в вашей сети. Это может быть полезно в крупных сетях, где сервер неизвестен. Чтобы использовать эту функцию, настройте разрешение .local hostname и запустите службы avahi-daemon.service и cups-browsed.service . Задания отправляются непосредственно на принтер без какой-либо обработки, поэтому созданные очереди могут не работать, однако для принтеров, не требущих драйверов, такие как те, которые поддерживают IPP Everywhere или AirPrint все должно работать из коробки.

  • Поиск сетевых принтеров может значительно увеличить время, необходимое для загрузки вашего компьютера.
  • Служба cups-browsed.service необходима только для динамического добавления и удаления принтеров, когда они появляются и исчезают из сети. Она не требуется, если вы просто хотите добавить сетевой принтер с поддержкой DNS-SD/mDNS в CUPS.

Серверы печати и удаленное администрирование

Разрешение аутентификации администратора через PolicyKit

PolicyKit можно настроить так, чтобы пользователи могли настраивать принтеры с помощью графического интерфейса без пароля администратора.

Примечание: Возможно, вам понадобится установить cups-pk-helper для работы с этими правилами.

Вот пример, который позволяет членам группы wheel управлять принтерами без пароля:

Без локального сервера CUPS

CUPS можно настроить для прямого подключения к удаленным серверам принтеров вместо запуска локального сервера печати. Для этого потребуется установить пакет libcups . Некоторым приложениям по-прежнему потребуется пакет cups для печати.

Мы уже ранее объясняли, почему драйверы для линукса не нужно устанавливать отдельно. Linux автоматически определит необходимые драйверы для вашего компьютера и установит их. С драйверами для принтеров в Linux совсем другая ситуация.

Интересный факт: печать в Linux осуществляется через CUPS (Первичный (основной) механизм для печати и сервисов печати в Unix-системах). Владельцем CUPS является APPLE, а так же и ее основным разработчиком. CUPS используется и в MAC OS.

Используем базу данных Foomatic

В окружении рабочего стола вашего дистрибутива Linux уже имеются графические инструменты для настройки CUPS и вашего принтера. Есть множество способов подключения принтеров — как через USB-кабель, так и через сеть. При некоторых типах подключения принтер будет автоматически определен и к нему будет установлен соответствующий драйвер. При других типах подключения принтера вам придется настроить его собственноручно.

Ubuntu и многие другие дистрибутивы используют конфигуратор написанный корпорацией Red Hat (той, что занимается разработкой одноименного дистрибутива Red Hat Enterprise, Fedora и, с недавнего времени, CentOS). Другие конфигураторы принтеров очень похожи на нее, т.к. все они используют CUPS в бекграунде.

В зависимости от типа подключения принтера выберите в конфигураторе принтеров необходимый драйвер вашего принтера. Эта утилита предложит вам скачать драйвер принтера для Linux с базу данных foomatic. Укажите производителя принтера, его серийный номер и драйвер будет установлен.

Если вы не можете найти драйвер для именно вашего принтера — укажите модель, серийный номер которой максимально близок к вашей.

После настройки принтера в конфигураторе вам предложат распечатать тестовую страницу, чтоб проверить, правильно ли стали ваши драйверы.

Так же для установки драйвера принтера в Linux можно использовать и веб-интерфейс CUPS для настройки печати. Этот путь немного не так дружественен к пользователю, как предыдущий, но этот способ доступен в любом дистрибутиве Linux.

Откройте браузер, в адресную строку вставьте localhost:631 и нажмите Enter. Выберите «Администрирование» и нажмите «Добавить принтер» для добавления принтера в систему через веб-интерфейс CUPS. В некоторых дистрибутивах пароль на веб интерфейс CUPS — такой же как и для пользователя ROOT.

Получить ppd-файл от разработчика

Утилиты для настройки принтеров в системе Linux позволяют устанавливать ppd-файл напрямую. Как же найти подходящий ppd-файл для принетра в Linux? Эти файлы можно найти на диске с драйверами вашего принтера. Причем не важно, драйвер для какой системы на диске.

Драйвер можно так же найти на сайте производителя. Даже если драйвер запакован в exe файл, то откройте его архиватором и поищите ppd файл.

Related Posts

Если вам нравится стилизация под старину, мониторы терминала в стиле Fallout, то обратите внимание на…

Microsoft PowerShell теперь с открытым исходным кодом, и доступно для Linux и Mac. Вы можете…

Windows для работы оборудования необходимы драйверы, написанные производителями устройств. Linux и другие операционные системы так…

Благодаря Steam играть на Linux становится легче, доступнее и интереснее. В этой статье мы посмотрим…

Разберем процесс установки Minecraft на Ubuntu . Игра отлично работает на Linux. Но, может быть,…

Итак, исторически в Linux было 2 системы печати LPRng и BSD LPD. Данные системы постепенно устаревают и на смену им приходит система печати CUPS, которая разработана как замена вышеуказанных систем и возможности которой гораздо шире. При использовании GUI интерфейса GNOME, KDE или другого, управление принтерами с помощью CUPSосуществляется не сложнее, чем в Windows. В статье я же сделаю упор на работу в консольном режиме и GUI инструменты рассматривать практически не буду (клавиши Ctrl+P (печать в GUI) есть на всех клавиатурах и работают одинаково как в Windows, так и в Linux ). Отмечу только, что при использовании графической оболочки, запускаются те же команды, что мы рассмотрим далее.

Как система печати Linux обрабатывает файлы

В Linux только пользователь root имеет возможность прямого доступа к устройствам (в нашем случае - к принтеру), остальным пользователям операционная система не дает возможности обращаться напрямую к физическим устройствам, чтобы избежать появления конфликтных ситуаций. Вместо этого, утилиты обращаются к фоновым системным процессам, которые ставят задания в очередь на печать. Кроме всего прочего, данные процессы выполняют преобразование содержимого исходных файлов, подготавливая его к выводу на определенный принтер. Для этого используются язык принтера и протоколы обмена, на основании которых настраивается разрешение печати, формируются страницы, если необходимо, убираются/добавляются колонтитулы, нумеруются страницы.

Система печати Linux находится под контролем демона cupsd, который обладает всеми необходимыми привилегиями, чтобы обращаться к принтерам от имени пользователя. Данный демон автоматически загружается при запуске Linux и настраивает систему для корректной работы печати. Все необходимые параметры демон берет из каталога /etc/cups.

В Linux, где установлен CUPS, для печати используются два основных метода. В основе первого лежат команды lpr и lp (в более новых версиях CUPS). Которые в качестве аргумента принимают имя печатаемого файла и отправляют его на печать на принтер по умолчанию. Данные команды являются "мостиком" ко второму способу печати. В основевторого способа лежат обращения к системным вызовам CUPS. Приложения, использующие данный метод могут не только посылать cupsd информацию, но и получать от демона информацию, о возможностях принтера. В ответ на такой запрос, CUPS возвращает приложению файл в формате PPD (PostScript Printer Definition - описание принтера PostScript). Данные файлы описывают возможности, которыми обладают принтеры (размер страницы, разрешение, ориентация и т.п.). Файлы PPD являются ключевыми компонентами впакете драйверов для принтеров. Для принтеров, которые не поддерживают язык PostScript, предоставляются PPD-файлы, описывающие возможности через GhostScript.

Совершенно не важно, поддерживает приложение CUPS или нет - после того, как демон cupsd примет задание печати, он поместит его в каталог буфера печати - спулер (обычно -/var/spool/cups) вместе с файлом, описывающим данное задание. Далее cupsd сортирует список заданий и отправляет на принтер одно за другим.

Управление печатью в Linux

Система печати в Linux довольно сложна и настройка обычно происходит либо очень просто (потому что CUPS все сам обнаружит и настроит), либо очень сложно (к примеру попробуйте быстро заставить работать принтер Canon LBP-810 с Linux). Работа печати в Linux основана на нескольких различных пакетах. Основной - это пакет cups, содержащий демон печати. В большинстве дистрибутивов имеется пакет cups в репозитории. Право выбора, каким образом устанавливать ПО в Linux оставляю вам. Я установил так: apt-get install cups. Данный пакет отлично подхватывает все необходимые зависимости.

Давайте немного разберемся, что же такое PostScript, а что такое GhostScript? Как показывает практика, приложения Linux и UNIX в большинстве случаев генерируют на выходе файлы двух форматов:

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

Программы могут отправлять на принтер файлы в простом текстовом формате исходя из предположения, что в качестве принтера используется типичное устройство постраничной печати.

PostScript

Язык Adobe PostScript - это один из многих языков принтеров. Большинство приложений, использующих сложное форматирование на выходе всегда создают файл формата PostScript.

К сожалению, современные принтеры не все поддерживают язык PostScript (особенно бюджетные модели для дома и малого бизнеса). В связи с этим, файл, полученный от приложения, должен пройти обработку GhostScript. GhostScript - это интерпретатор PostScript, который может размещаться в компьютере, а не в принтере.

Следует заметить, что GhostScript рассматривает все принтеры, как графические устройства. Таким образом, при выводе на печать обычного текстового документа GhostScriptпреобразует текст в растровый рисунок и отправляет этот рисунок принтеру. Это означает, что GhostScript не может использовать шрифты, встроенные в принтер. Это так же означает, что печать документов через GhostScript иногда выполняется более медленно, чем печать тех же документов на драйверах Windows. Хотя в большинстве случаев эта разница практически не заметна, бывают и большие задержки.

Стандартная установка CUPS поддерживает довольно узкий спектр принтеров (хотя, это довольно спорный момент ). Обычно, это модели с поддержкой PostScript и принтеры компаний HP и Epson. Если принтер автоматически не определился, то необходимо посетить сайт производителя принтера для получения пакета драйверов и инструкций об установке принтера в системе Linux.

Подключение и настройка принтеров в Linux

Для подключения принтеров существует несколько интерфейсов, таких как: USB, Ethernet, LPT и COM (последний безбожно устарел). Данным интерфейсам соответствуют устройстваLPT - /dev/lp*, COM - /dev/ttyS* (вместо звездочек, естественно - цифра, обозначающая номер порта, к которому подключено устройство), для взаимодействия с USB используется дерево каталогов /proc/bus/usb, для Ethernet, естественно - IP.

Прежде чем настроить службы печати в Linux, необходимо убедиться, что соединение с принтером действительно установлено. Наверное, лучше всего это проверить из операционной системы windows, если она у вас установлена 2ой системой. Если нет такой возможности, то давайте попробуем обнаружить наш принетр средствами Linux. Если принтер подключен к LPT, либо COM, то можно выполнить команду для LPT: cat /etc/fstab > | /dev/lp0 или для com: cat /etc/fstab > | /dev/ttyS0. При этом, на устройстве в лучшем случае должно напечататься содержимое файла, в худшем - мигнуть индикаторы состояния. Если используется порт USB, то можно проверить подключение устройства с помощью командыlsusb, вывод которой должен содержать маркировку принтера. Для Ethetnet соединения, думаю достаточно проверить доступность IP принтера командой ping.

Настройка безопасности CUPS

В отличии от старых систем LPD, управлять системой печати CUPS удобнее через Web. Однако, по умолчанию, настройка доступа к web интерфейсу может быть настроена не корректно. Некоторые дистрибутивы предоставляют свои инструменты управления CUPS. Все настройки CUPS хранятся в файле /etc/cups/cupsd.conf. Данный файл смоделирован по образу файла Веб сервера Apache. Данному веб серверу я обязательно посвящу обзор. Файл конфигурации cupsd.conf начинается с ряда глобальных параметров директив, которые оформлены в виде пар имя - значение. Для примера, чтобы изменить имя сервера, отправляемое другим системам, необходимо ввести директиву:

Данная строка определяет имя сервера как my.printserver.local. Файл конфигурации обладает огромным количеством директив, описание которых выходит далеко за рамки данной статьи. К сожалению, на русском языке я так и не нашел полного описания конфигурационного файла. Могу сказать одно - полный пакет документации можно будет почитать на английском прямо из настроенного веб интерфейса. А так же, документация по конфигурационному файлу доступна тут. Приведу Вам начало своего конфигурационного файла, содержащего глобальные директивы:

Давайте разберем каждый параметр.Как уже упоминалось выше, ServerName указывает имя сервера печати. LogLevel указывает подробность журналирования (по умолчанию при установке параметр равен info, если возникли какие-то проблемы с CUPS, а в протоколе нет ничего информативного, можно поднять уровень до максимального — debug2), Portуказывает на каком порту будет доступен веб-интерфейс, Listen позволяет указать на каком IP адресе будет доступен веб-интерфейс, а так же прослушиваемый сокет.

Параметры, начинающиеся на Browsing требуют отдельного разговора, они задают настройки "просмотра". В данном случае, под термином просмотр необходимо понимать возможность CUPS обнаруживать принтеры в сети. Данная возможность поддерживается на уровне протокола IPP. Обнаружение происходит посредством широковещательных рассылок, что при большом количестве серверов CUPS или при частом отключении/подключении принтеров может порождать дополнительную нагрузку на сеть. Так же, включение просмотра влечет за собой определенное бремя безопасности. Например, систему настроенную на автоматический поиск легко обмануть, предоставив поддельную информацию о принтерах, а при наличии недочетов в коде CUPS это может привести к негативным последствиям. Давайте разберем указанные параметры:

BrowseAllow и BrowseDeny

Указывают CUPS на стороне клиента адреса, от которых может приниматься или отвергаться, соответственно, информация о принтерах. Формат директив соответствует директивам Allow и Deny. В качестве аргумента для данной директивы может быть как отдельный IP, так и подсеть в формате 10.0.0.0/24 или 10.0.0.0/255.255.255.0 или 10.0.0.0-10.0.0.255, так и значение @LOCAL - обозначающее локальную сеть, а так же имена хостов. Возможно использование нескольких данных директив.

Browsing

Указывает CUPS предоставлять свои серверы в общий доступ, либо нет. Значения может принимать On или Off соответственно.

BrowseAddress

Аналогична BrowseAllow. за исключением того, что она задает КОМУ посылать пакеты, а не от кого принимать.

Далее в конфигурационном файле указана директива DefaultAuthTape, которая указывает механизм аутентификации, который будет использоваться для организации доступа по умолчанию. Basic - указывает использовать логины/пароли от локальной системы. None - указывает не использовать аутентификацию. При указании параметра Digest все пароли будут передаваться в зашифрованном виде, но тогда необходимо создать пользователей CUPS с помощью команды lppasswd, пользователи будут добавлены в файл/etc/cups/passwd.md5.

Существует так же директива AuthClass, которая не присутствует в моем конфигурационном файле. Данная директива определяет, какие группы пользователей могут иметь доступ к подсистеме. Может принимать значения: Anonymous, User, System, Group. Параметр Anonymous указывает, что аутентификация производиться не должна. Параметр User говорит, что любой пользователь системы, корректно указавший имя/пароль может иметь доступ. System - говорит, что доступ к подсистеме могут получить только пользователи - члены системной группы cups. Group указывает возможность пользоваться подсистемой только членам группы, которая должна быть указана в последующей директиве AuthGroupName.

Директива Order определяет порядок предоставления доступа к CUPS по умолчанию. Значение Deny,Allow определяет - отвергать попытки доступа, если право на доступ не указано явно. Если директива имеет значение Allow,Deny, то доступ будет предоставлен, если явно не запрещен.

В конфиге можно заметить, что после DefaultAuthType идут параметры, сгруппированные в разделы . Такие директивы определяют доступ к определенным функциям сервера.

Особенности использования Веб интерфейса

Долго о Веб-интерфейсе описывать не буду. Последняя версия CUPS 1.4 практически полностью русифицирована. Управление принтерами через веб-морду не сложнее процесса установки принтера в операционной системе Windows. Единственный нюанс в Linux - это то, что фактически, "принтер" есть очередь печати. То есть фактически мы посылаем документ в определенную очередь печати с определенными настройками. Очередь привязана к конкретному принтеру-устройству. Таким образом, к одному принтеру может быть привязано несколько очередей с разными настройками. Это как в Windows установить несколько "принтеров" с разными версиями драйвера, но привязанными к одному физическому устройству.

Кроме веб-интерфейса, существуют так же консольные команды управления CUPS.

Параметры принтеров CUPS хранит в файле /etc/cups/printers.conf. В данный файл руками лезть не стоит. Он заполняется при настройке в веб интерфейсе. Пример файла:

Описание каждого установленного принтера (соответствующий PPD-файл) находится в каталоге /etc/cups/ppd/<имя_принтера>.ppd.

Управление демоном CUPS ничем не отличается от управления любой другой службой. То есть запуск, остановка, перезапуск можно выполнить командами:

Хочу еще отметить такой нюанс. CUPS разрабатывался как замена системе печати LPD. В LPD источником информации о имеющихся принтерах очередях печати был файл/etc/printcap. CUPS обратно совместим с данной системой печати и если мы посмотрим на файл printcap, то увидим, что:

файл printcap является символьной ссылкой на /var/run/cups/printcap. Т.о. CUPS сама следит за корректностью данного файла и тем самым обеспечивает обратную совместимость с LPD.

Устранение неполадок в системе печати

Не всегда удается настроить принтер с первого раза и иногда настройка становится чрезвычайно сложной, убивающей веры в свои силы. Постараюсь описать некоторые шаги по устранению проблем с печатью:

  • Постарайтесь проверить работоспособность принтера на другой ОС. Естественно, если он не заработает в другой ОС, то проблема скорее всего в аппаратной части.
  • Проверьте все физические соединения. Питание, информационный провод. Проверьте включен ли принтер и имеется ли бумага в лотке, а так же нет ли сигнализации об ошибках на принтере.
  • Если принтер подключается по USB, LPT, COM, то посмотрите выводы команд lsusb, dmesg на наличие записей о принтере. Если принтер с Ethernet-интерфейсом, проверьте связь с ним командой ping.
  • Если все вышеперечисленные проверки завершились успехом - тщательно проверьте настройки CUPS.
  • Проверьте в Веб-интерфейсе, не остановлена ли очередь печати принтера.
  • Если в статусе принтера написано waiting for job copmlete, то что-то мешает CUPS очистить очередь печати принтера (например отсутствие физического соединения с принтером или нехватка прав доступа).
  • Если при печати на бумаге выводится всякий мусор, то скорее всего выбраны неверные параметры/модель принтера.
  • Так же, для поиска неисправности необходимо просмотреть логи принтера в каталоге /var/log/cups/
  • Ну и как всегда, вам в помощь яндэкс и гугл.

Файлы и каталоги CUPS

В статье я уже приводил некоторые каталоги и файлы CUPS. В большинстве случаев, ручное редактирование каких-либо файлов CUPS, кроме /etc/cups/cupsd.conf, требуется довольно редко. Но для общего развития я расскажу о расположении файлов. Итак, как уже говорилось, для хранения настроек CUPS использует каталог /etc/cups/. Основной файл, имеющий для нас интерес - это cupsd.conf, который хранит глобальные настройки, так же существует printers.conf, хранящий настройки принтеров очередей печати. Подкаталог ppdсодержит файлы PPD для локальных принтеров. Файл passwd.md5 хранит зашифрованные пароли пользователей CUPS.

Большой объем данных лежит в /usr/share/cups/, в котором хранятся служебные файлы. Особый интерес представляет каталог /usr/share/cups/model/ (который в последней версии CUPS был перемещен в /usr/share/ppd/), который хранит описания для принтеров. При каждом старте сервер сканирует каталог /usr/share/cups/model на предмет появления новых описаний принтеров (PPD-файлов).

В процессе работы CUPS использует каталог /var/spool/cups/ для хранения описаний заданий печати и самих файлов заданий. Владельцем данного каталога должен быть пользователь root и группа lp. Права доступа определены, как 0710 (rwx--x---).

Так же используется каталог /var/run/cups/ для хранения информации о работе демона, такой как сокет, файл printcap и др.

Драйверы принтеров CUPS состоят из одного или нескольких фильтров, упакованных в формате PPD (PostScript Printer Description). Все принтеры в CUPS (даже не поддерживающие PostScript) должны иметь файл PPD с описанием принтеров, специфических команд и фильтров.

Фильтры, занимающие центральное место в CUPS, преобразуют задания печати в формат, понятный принтеру (PDF, HP-PCL, растровый формат и т. п.), а также передают команды для выполнения таких операций, как выбор страницы и сортировка. Файлы PPD являются текстовыми и хранятся в каталоге /usr/share/cups/model . Файлы PPD установленных принтеров хранятся в каталоге /etc/cups/ppd .

Поиск драйверов

В комплект поставки CUPS входят универсальные файлы PPD для сотен моделей принтеров, но если производитель какой-либо модели принтера не предоставил драйвер для Linux, то существуют следующие ресурсы с драйверами:

Foomatic — бесплатный проект, объединяющий все распространенные системы печати Linux (CUPS, LPRng, LPD, GNUlpr, PPR, PDQ, CPS).

Проект Gimp-Print изначально был задуман в качестве модуля печати для Gimp, но позднее его рамки были расширены до общей поддержки печати в Linux. Драйверы Gimp-Print отличаются высочайшим качеством.

Пакеты Gimp-Print и Foomatic гарантируют полноту набора драйверов и наличие всех обязательных подсистем.

Как правило, установка аппаратных драйверов на Linux не требуется. ОС автоматически обнаруживает аппаратные компоненты в компьютере и настраивает их. Однако с принтерами дела не всегда обстоят так. Печатью в Linux заведует CUPS (Общая система печати Unix).В Apple трудится главный разработчик CUPS, которая также отвечает за печать в Mac OS X.

Использование базы данных Foomatic

Обычно настольная среда Linux предоставляет графический инструмент конфигурирования принтеров, позволяющий с легкостью настраивать CUPS и принтеры. Существует немало способов подключения принтеров, от прямого подключения при помощи кабеля USB до сетевого. В случае ряда типов соединений принтер автоматически обнаруживается и конфигурируется. В остальных случаях придется делать это вручную.

Ubuntu и большинство других дистрибутивов Linux используют конфигурацию принтера, разработанную Red Hat. Остальные средства конфигурирования принтера работают аналогично, так как внутренне используют CUPS. Запустите средство конфигурирования принтера с рабочего стола Linux и приступите к добавлению принтера. В Ubuntu откройте окно Настройки системы и кликните по Принтеры, или же запустите приложение Принтеры из Dash.

В зависимости от выбранного типа протокола принтера, могут понадобиться драйверы принтера. Программа представит вам перечень драйверов принтера, присутствующих в базе данных foomatic. Выберите производителя принтера и приступайте к поиску номера модели в списке.

Если идентичный номер модели отсутствует, отыщите ближайший номер и попробуйте его.

Завершив настройку принтера, распечатайте пробную страницу, чтобы убедиться в работоспособности выбранного драйвера.

Кроме того, можно использовать веб-интерфейс CUPS для настройки принтера. Он менее удобен, но присутствует во всех до единого дистрибутивах Linux. Запустите браузер, введите в адресную строку localhost:631 и нажмите Enter. Нажмите “Администрирование” и перейдите по ссылке “Добавить принтер”, чтобы добавить принтер через веб-интерфейс. У вас спросят пароль. Введите логин и пароль от вашей учетной записи Linux. В некоторых дистрибутивах Linux придется использовать логин “root” и пароль суперпользователя.

Получение файла PPD от производителя

Средство конфигурирования принтера позволяет непосредственно предоставить ему файл PPD. Часть производителей дает такие файлы для принтеров. Они находятся на диске с драйверами принтера, на сайте производителя принтера, или включаются в драйвер Windows для принтера типа PostScript.

Поищите файл PPD на сайте производителя или диске с драйверами. Также попробуйте скачать драйвер Windows и открыть его программой для извлечения файлов. Даже файл .exe может получиться вскрыть с целью отыскания в нем файла PPD. Для этого, вероятно, пригодится утилита cabextract. Файл PPD устанавливается посредством интерфейса конфигурирования принтера.

База данных расскажет о качестве работы принтера, посоветует драйвер и предоставит файл PPD. Скачайте файл PPD и установите его вручную, в случае если он есть в базе.

Для некоторых принтеров может потребоваться установка специальных драйверов, предоставляемых производителем.

Если принтер все равно не работает

Все же часть принтеров не поддерживается, а потому не станет работать. Некоторые принтеры работают со сбоями. Ряд принтеров требует проприетарных драйверов от производителя, которые с трудом устанавливаются или вообще не устанавливаются на новые версии дистрибутивов Linux, поскольку драйверы не обновлялись годами.
Если вам необходимо использовать принтер в Linux, постарайтесь найти тот, который поддерживает Linux.

Также можно обходным путем решить проблему с принтером — например, если он поддерживает стандарт Google Cloud Print, то печатайте на нем из Linux при помощи Google Cloud Print, и тем самым избежите трудностей с драйверами. Существует драйвер Google Cloud Print для CUPS, дающий возможность любому приложению, поддерживающему стандартную систему CUPS (таковы большинство настольных приложений Linux), печатать на принтере Google Cloud Print.

В Linux устанавливать драйвера для принтера практически не нужно, так как все это в большинстве случаев происходит автоматически, система определяет аппаратные средства на вашем компьютере и сама предлагает установить драйвер. Но не всегда все так гладко происходит и принтеры бывают разные и подход к установке драйверов так же имеет разные способы.

Печать на Linux осуществляется через CUPS («Common Unix Printing System — Сервер печати»), компания Apple является основателем и разработчиком CUPS, но как можно увидеть большинство дистрибутивов Linux, а так же Mac OS X используют CUPS.

В Linux устанавливать драйвера для принтера практически не нужно, так как все это в большинстве случаев происходит автоматически, система определяет аппаратные средства на вашем компьютере и сама предлагает установить драйвер. Но не всегда все так гладко происходит и принтеры бывают разные и подход к установке драйверов так же имеет разные способы.

Печать на Linux осуществляется через CUPS ("Common Unix Printing System — Сервер печати"), компания Apple является основателем и разработчиком CUPS, но как можно увидеть большинство дистрибутивов Linux, а так же Mac OS X используют CUPS.

Установка драйверов для принтера используя базу данных Foomatic

Как правило, ваше окружение рабочего стола в Linux предоставляет графический инструмент для настройки(конфигурации принтера), который позволяет вам легко настроить и установить драйвера для вашего принтера с помощью CUPS. Есть много способов для подключения принтеров, от прямого подключения с помощью кабеля USB как это в большинстве случаем и происходит в наше время или же по сети. Для некоторых типов соединений, принтер может быть автоматически обнаружен и настроен. Для других, возможно, потребуется сделать дополнительную настройку как говорится с бубном побегать(шутка), обычно это работа в терминале.

Ubuntu и многие другие дистрибутивы Linux используют конфигурацию принтера, разработанного Red Hat. Другие инструменты конфигурации принтера работают очень схоже, почти аналогично, так как все они используют CUPS. Например в Ubuntu это делается примерно так, переходим в Параметры системы(System settings) далее запустите инструмент конфигурирования принтера вы должны увидеть ярлык Принтеры(Printers), запускаем одним кликом, не двойным как это в Windows происходит и начинаем процедуру добавления принтера.


  • Откроется новое окно где появится кнопка добавить, подобный похожий интерфейс при добавлении принтера мы можем наблюдать и в Windows, все очень похоже и практически никаких отличий.





  • В следующем окне нам будет предложено задать имя для нашего принтера то есть то имя устройства которое будет отображаться при печати, вы можете изменить на свое любое удобное для вас или же оставить без изменений и оставить стандартное нажав кнопку Применить.


  • После принтер будет успешно добавлен и нам будет предложено попробовать напечатать нашу первую пробную страницу.


Как получить PPD файл драйвера для принтера от производителя


Не всегда получается так легко установить драйвера как описано выше, иногда для некоторых старых версий принтеров или слишком новых когда разработчики операционных систем еще не успели выпустить обновления и добавить новые поддерживаемые устройства могут возникать сложности установки драйверов. В данном случае инструмент конфигурации(настройки) принтера, также позволяет установить драйвера с помощью файла PPD напрямую. Некоторые производители предоставляют эти файлы для принтеров которые они производят. Обычно вы их можете найти на диске с драйверами принтера который предоставляется при покупке, так же можно скачать на сайте производителя, где производитель предоставляет все доступные драйвера для моделей которые он производит.

Если у вас именно такая модель, слишком старая или слишком новая и у вас не получилось установить драйвер или система автоматически его не обнаружила, попробуйте поискать на сайте производителя или на диске с драйверами файл PPD для вашей модели. Часто как вариант выхода с ситуации также можете проверить директорию с установленными драйверами в операционной системе Windows если она у вас совместно установлена, обычно нужный PDD файл обнаруживается в установленной папке и мы его можем использовать для своих целей в Linux.


Если поиски PDD файла на сайте производителя или же на диске с драйверами не увенчались успехом, можете воспользоваться третим способом, это веб поиск драйвера.


В том случае если все поиски будут слишком плохи, не отчаивайтесь, на крайний случай мы можем воспользоваться сервисом Google Cloud Print конечно если гугл принт имеет ваш принтер в списке поддерживаемых, тогда все очень легко реализуется и вы добавляете свой принтер в облако гугла и печатает ваши документы благодаря этому облаку. Драйвер для работы с Google Cloud можете установить используя инструкцию, где в вкладке Install найдете репозиторий.

Если у вас возникнут сложности или ошибки при подключении и настройке принтера, спрашивайте в комментариях к материалу ниже.

Руководство по настройке системы печати Linux.

Всеобъемлющее руководство по настройке печати в Gentoo Linux. Это руководство охватывает локальную и сетевую печать.

18 February 2003

Печать на локальной машине, с использованием CUPS

Установка CUPS и foomaticInstalling CUPS and foomatic

Настройка печати в Gentoo Linux сравнительно безболезненная задача, Благодаря нескольким замечательным программам, таким как CUPS (Common Unix Printing System) и foomatic. Обе эти программы легко доступны из дерева Портэджей, и очень легки в установке для конечных пользователей.

Знайте, что cups кросс-десктопная система, т.е. следуя этим инструкциям Вы можете настроить печать и в GNOME и в KDE. Существуют и другие настройки, такие как KDE's print setup, но я уверен, что CUPS проще в настройке, и более масштабируемая.

Перед установкой CUPS, будет правильно добавить необходимые флаги для USE в файл /etc/make.conf

Редактирование /etc/make.conf

Добавьте cups и usb (если ваш принтер подключён к USB) к вашему листу переменных USE.

Для получения более полной информации о переменной USE, читайте USE HOWTO.

Установка необходимых пакетов

Установка модулей ядра

В зависимости от типа подключения принтера, необходимо активировать соответствующий параллельный или USB порт в ядре.

Для включения поддержки USB принтера, зайдите в USB support и включите Support for USB и USB Printer support. Оба этих модуля будут установлены как usbcore.o и printer.o в директории, где хранятся модули. Я советую использовать модули, т.к. при этом нет необходимости перезагружать компьютер.

Если Вы не уверенны как компилировать ядро, официальный Linux Kernel-HOWTO находится здесь. Убедитесь, что вы разобрались, как компилировать и устанавливать новые модули без пересборки ядра и перезагрузки компьютера. Это действительно экономит время.

После того как ядро построено, и Ваш компьютер перезапущен, время загрузить требуемые модули:

Загрузка USB модулей

После того, как модули нормально загрузились, подключите принтер, и проверьте /var/log/messages. что бы убедиться, что он обнаружен системой.

Если Вы используете что либо отличное от sysklogd, Ваш файл логов ядра может быть другим.

Вы должны увидеть что то вроде этого:

Вывод /var/log/messages

Если Вы используете принтер с параллельным портом, убедитесь что, он подключен перед перезагрузкой. Когда система подымится, запустите dmesg и убедитесь, что ядро обнаружило Ваш принтер.

Перед тем как настраивать принтер с CUPS, проверим его простой низкоуровневой командой.

Тест принтера с помощью cat

Для принтеров с параллельным портом:

Специализированные драйвера принтеров

Перед тем как вы будете использовать foomatic для генерации PPD файлов, может возникнуть необходимость в нахождении драйверов для Вашего принтера от третьей стороны. Например, Epson обеспечивает драйверами принтеров для некоторых open source операционных систем. Однако, как в случае с Epson, многие из этих драйверов не open source.

Если Вы используете, притер HP Inkjet, необходимо установить драйвера для принтера hpijs. Этот драйвер управляет всеми необходимыми для работы принтера интерпретациями Postscript. hpijs предназначены только для принтеров HP Inkjet, но доступны из Портэджей для Вашего удобства. Документация от HP для драйверов hpijs расположена в /usr/share/doc/hpijs--<version>. Автор настоятельно рекомендует прочесть её.

Установка hpijs

Если Вы используете HP Laserjet, поддержка уже доступна через GNOME printing system. Если Вы используете не HP Inkjet printer, Вам не надо устанавливать эти специализированные драйвера.

Настройка файлов PPD

Теперь время приступить к настройке принтера и CUPS. Для корректной интерпретации Вашим принтером языка Postscipt, CUPS необходим PPD (Printer Postscript Definition) файл. Самый простой способ для создания PPD, это использовать foomatic.

Три составляющие информации нужны для корректной работы нижеследующей команды; Вам нужен Ваш printer ID, тип порта к которому подключен принтер, и драйвер для Вашего принтера (это был бы hpijs если бы Вам была необходима установка специальных драйверов как описано выше). printer ID и драйвера могут быть grep'нуты из базы данных foomatic (тип порта например /dev/lp0 или /dev/usb/lp0).

Перед использованием foomatic-configure, не забудьте запустить cupsdc .

Запуск cupsd

Общее использование foomatic

Теперь, более конкретный пример. Следующий код предполагает у Вас наличия принтера Epson Stylus Color 980. Конечно, Вы должны заменить его на свой для вашей модели принтера.

Использование foomatic с Stylus Color 980

Запомните, Вы должны использовать /dev/usb/lp0. если у Вас USB принтер.

Настройка CUPS

После того как принтер настроен, CUPS должен установить управление очередью печати. CUPS доступен через web броузер на порту 631 принт сервера.

CUPS имеет встроенный файл конфигурации для демона, который может, но не обязательно, быть модифицирован. Возможно вы захотите взглянуть на него, он называется /etc/cups/cupsd.conf.

Добавление CUPS в default runlevel, и запуск CUPS

CUPS daemon запущен, откройте Ваш броузер и зайдите сюда.

Надеюсь, что Вы увидите приветствие главной странице настройки. Нажмите на administration вверху страницы, и введите Ваш пароль root, или любого пользователя принадлежащего к группе lp . После аутентификации, нажмите на Add Printer в разделе printers . Введите требуемое имя, описание и расположение Вашего принтера. Вы должны выбрать имя принтера точно такое же как имя очереди которое Вы указали для foomatic. Теперь Вы должны выбрать устройство, к которому подключен Ваш принтер. Выберете тип принтера. На следующей странице выберите Ваш принтер из списка.

Конфигурация закончена! Нажмите на имя своего принтера, и попробуйте напечатать тестовую страницу. Вуаля, настройка Вашего принтера завершена!

Если принтер не работает по каким либо причинам, зайдите в директорию где хранятся логи CUPS, и посмотрите в файл error_log .

Перед началом, необходимо установить расширения для печати CUPS в Gimp's CUPS.

Установка gimp-print-cups

Теперь, откройте GIMP, и откройте картинку, или просто пустой лист, это не имеет значения, т.к. нам необходим только пункт меню File . Кликнете правой клавишей на изображении и выберете File/Print . Должен появиться диалог для printing, когда он появится, кликнете на new printer. Если Вашего принтера нет в списке, введите имя своего принтера, после чего выберете тип своего принтера. Ok, теперь, Вы установили печать из GIMP. Поиграйтесь с настройками и получите удовольствие.

Abiword

Abiword вызывает "segfaults" и "crashes" с CUPS-1.1.15-r2. Рекомендуется вернуться к версии .14 как к возможному решению проблемы.

TODO: добавить поддержку Abiword.

Ну все, локальная настройка печати завершена, теперь перейдем к сетевой.

Сетевая печать с использованием CUPS и SAMBA

Печать на Windows принтере, с Linux машины

Первое, SAMBA должна быть установлена, для работы следующих двух опций сетевой печати.

Установка SAMBA

Для получения большей информации о SAMBA, читайте официальный SAMBA HOWTO, находящийся здесь.

Использование foomatic с Samba

Найдите модель принтера и название драйвера, используя вышеупомянутый способ.

Теперь, направьте свой броузера сюда и вызовете конфигурационный GUI CUPS. Проделайте шаги по добавлению принтера, но на этот раз, на вопрос о порте принтера, введите smb://user:password@server/share . Это укажет CUPS путь к принтеру на Windows машине.

Использование Linux как Windows совместимый сервер печати

На Linux можно построить замечательный сервер печати, вообще то, на нём можно отлично построить любой сервер. Первый шаг, это редактирование файла /etc/samba/smb.conf для подгона ваших установок. Файл smb.conf содержит все установки, для того, что бы Ваша Linux машина выглядела как Windows NT server для любых Windows машин. Я включил очень полезный пример smb.conf ниже. Отредактируйте, если надо, для подгонки под ваше сетевое окружение.

Пример smb.conf

Теперь SAMBA настроена, перезапустите samba, идите к Windows машине и установите сетевой принтер. Проще простого, а?

Читайте также: