- Linux cups print driver
- Contents
- Installation
- Socket activation
- Print steps
- Connection interfaces
- Parallel port
- Network
- Printer drivers
- OpenPrinting CUPS filters
- Foomatic
- Gutenprint
- Manufacturer-specific drivers
- Printer URI
- Parallel port
- Network
- Usage
- CLI tools
- Web interface
- GUI applications
- Configuration
- Permissions
- Default paper size
- Log files
- cups-browsed
- Print servers and remote administration
- Allowing admin authentication through PolicyKit
- Without a local CUPS server
- Драйверы принтеров CUPS
- Поиск драйверов
- CUPS (Русский)
- Contents
- Установка
- Сокет-активация
- Интерфейсы подключения
- Параллельный порт
- Драйверы принтеров
- Фильтры OpenPrinting CUPS
- Foomatic
- Gutenprint
- Специфические для производителя драйвера
- URI принтера
- Параллельный порт
- Использование
- Инструменты CLI
- Веб интерфейс
- Приложения с GUI
- Настройка
- cups-browsed
- Серверы печати и удаленное администрирование
- Разрешение аутентификации администратора через PolicyKit
- Без локального сервера CUPS
- Решение проблем
Linux cups print driver
This article or section is out of date.
CUPS is the standards-based, open source printing system currently developed by Apple Inc. for macOS® and other UNIX®-like operating systems.
Contents
Installation
Optionally, install the cups-pdf package if you intend to «print» into a PDF document. By default, PDF files are stored in /var/spool/cups-pdf/username/ . The location can be changed in /etc/cups/cups-pdf.conf .
Then enable and start cups.service or alternatively use socket activation to only start CUPS when a program wants to use the service.
Socket activation
cups provides a cups.socket unit. If cups.socket is enabled (and cups.service is disabled), systemd will not start CUPS immediately; it will just listen to the appropriate sockets. Then, whenever a program attempts to connect to one of these CUPS sockets, systemd will start cups.service and transparently hand over control of these ports to the CUPS process.
Print steps
It is important to know how CUPS works if wanting to solve related issues:
- An application sends a PDF file to CUPS when ‘print’ has been selected (in case the application sends another format, it is converted to PDF first).
- CUPS then looks at the printer’s PPD file (printer description file) and figures out what filters it needs to use to convert the PDF file to a language that the printer understands (like PJL, PCL, bitmap or native PDF).
- The filter converts the PDF file to a format understood by the printer.
- Then it is sent to the back-end. For example, if the printer is connected to a USB port, it uses the USB back-end.
Connection interfaces
Additional steps for printer detection are listed below for various connection interfaces.
To see if your USB printer is detected, make sure you have the usbutils package installed, then:
Parallel port
To use a parallel port printer, the lp , parport and parport_pc kernel modules are required.
Network
To discover, make use of discovered or share printers using DNS-SD/mDNS, setup .local hostname resolution with Avahi and restart cups.service .
To share printers with Samba, e.g. if the system is to be a print server for Windows clients, the samba package will be required.
Printer drivers
This article or section needs expansion.
The drivers for a printer may come from any of the sources shown below. See CUPS/Printer-specific problems for an incomplete list of drivers that others have managed to get working.
To drive a printer, CUPS needs a PPD file and, for most printers, some filters. For details on how CUPS uses PPDs and filters, see [1].
The OpenPrinting Printer List provides driver recommendations for many printers. It also supplies PPD files for each printer, but most are available through foomatic or the recommended driver package.
When a PPD file is provided to CUPS, the CUPS server will regenerate the PPD files and save them in /etc/cups/ppd/ .
CUPS includes support for AirPrint and IPP Everywhere printers.
OpenPrinting CUPS filters
The Linux Foundation’s OpenPrinting workgroup provides cups-filters. Those are backends, filters, and other binaries that were once part of CUPS but are no longer maintained by Apple. They are available in the cups-filters package that is a dependency of cups .
Non-PDF printers require ghostscript to be installed. For PostScript printers, gsfonts may also be required.
Foomatic
The Linux Foundation’s OpenPrinting workgroup’s foomatic provides PPDs for many printer drivers, both free and non-free. For more information about what foomatic does, see Foomatic from the Developer’s View.
To use foomatic, install foomatic-db-engine and at least one of:
- foomatic-db — a collection of XML files used by foomatic-db-engine to generate PPD files.
- foomatic-db-ppds — prebuilt PPD files.
- foomatic-db-nonfree — a collection of XML files from printer manufacturers under non-free licenses used by foomatic-db-engine to generate PPD files.
- foomatic-db-nonfree-ppds — prebuilt PPD files under non-free licenses.
The foomatic PPDs may require additional filters, such as min12xxw AUR .
Gutenprint
The Gutenprint project provides drivers for Canon, Epson, Lexmark, Sony, Olympus, and PCL printers for use with CUPS and GIMP.
Manufacturer-specific drivers
Many printer manufacturers supply their own Linux drivers. These are often available in the official Arch repositories or in the AUR.
Some of those drivers are described in more detail in CUPS/Printer-specific problems.
Printer URI
Listed below are additional steps to manually generate the URI if required. Some printers or drivers may need a special URI as described in CUPS/Printer-specific problems.
CUPS should be able to automatically generate a URI for USB printers, for example usb://HP/DESKJET%20940C?serial=CN16E6C364BH .
If it does not, see CUPS/Troubleshooting#USB printers for troubleshooting steps.
Parallel port
The URI should be of the form parallel:device . For instance, if the printer is connected on /dev/lp0 , use parallel:/dev/lp0 . If you are using a USB to parallel port adapter, use parallel:/dev/usb/lp0 as the printer URI.
Network
If you have set up Avahi as in #Network, CUPS should detect the printer URI. You can also use avahi-discover to find the name of your printer and its address (for instance, BRN30055C6B4C7A.local/10.10.0.155:631 ).
The URI can also be generated manually, without using Avahi. A list of the available URI schemes for networked printers is available in the CUPS documentation. As exact details of the URIs differ between printers, check either the manual of the printer or CUPS/Printer-specific problems.
The URI for printers on SMB shares is described in the smbspool(8) man page.
For example, smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6 becomes smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6 .
This result string can be obtained by running the following command:
Remote CUPS print servers can be accessed through a URI of the form ipp://hostname:631/printers/queue_name . See CUPS/Printer sharing#Printer sharing for details on setting up the remote print server.
See CUPS/Troubleshooting#Networking issues for additional issues and solutions.
Usage
CUPS can be fully controlled using the lp* and cups* CLI tools. Alternatively, the #Web interface or one of several #GUI applications can be used.
- The queue name is a short but descriptive name used on the system to identify the queue. This name should not contain spaces or any special characters. For instance, a print queue corresponding to a HP LaserJet 5P could be named «hpljet5p». More than one queue can be associated with each physical printer.
- The location is a description of the printer’s physical location (for instance «bedroom», or «kitchen»). This is to aid in maintaining several printers.
- The description is a full description of the print queue. A common use is a full printer name (like «HP LaserJet 5P»).
CLI tools
See CUPS local documentation for more tips on the command-line tools.
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
The queue_name is up to you. Examples:
Check the status Deactivate a printer Activate a printer Set the printer to accept jobs Remove a printer.
First set it to reject all incoming entries:
Then disable it:
Finally remove it:
Print a test page Print a file Check the queue Clear the queue View ink levels
Add your user to the lp user group:
Log out and log in again.
For usage information, use:
Web interface
The CUPS server can be fully administered through the web interface, available on http://localhost:631/.
To perform administrative tasks from the web interface, authentication is required; see #Permissions.
Go to the Administration page.
Modify existing queues
Go to the Printers page, and select a queue to modify.
Go to the Printers page, and select a queue.
GUI applications
If your user does not have sufficient privileges to administer CUPS, the applications will request the root password when they start. To give users administrative privileges without needing root access, see #Configuration.
Configuration
The CUPS server configuration is located in /etc/cups/cupsd.conf and /etc/cups/cups-files.conf (see cupsd.conf(5) and cups-files.conf(5) ). After editing either file, restart cups.service to apply any changes. The default configuration is sufficient for most users.
Permissions
User groups with printer administration privileges are defined in SystemGroup in the /etc/cups/cups-files.conf . The sys and root and wheel groups are used by default.
CUPS helper programs are run as the cups user and group. This allows the helper programs to access printer devices and read configuration files in /etc/cups/ , which are owned by the cups group.
Default paper size
cups is built with libpaper support and libpaper defaults to the Letter paper size (called PageSize in lpoptions ). To avoid having to change the paper size for each print queue you add, edit /etc/papersize and set your system default paper size. See papersize(5) .
Log files
By default, all logs are sent to files in /var/log/cups/ . By changing the values of the AccessLog , ErrorLog , and PageLog directives in /etc/cups/cups-files.conf to syslog , CUPS can be made to log to the systemd journal instead. See Fedora:Changes/CupsJournalLogging for information on the original proposed change.
cups-browsed
This article or section is out of date.
CUPS can use Avahi browsing to discover unknown shared printers in your network. This can be useful in large setups where the server is unknown. To use this feature, set up .local hostname resolution, and start both avahi-daemon.service and cups-browsed.service . Jobs are sent directly to the printer without any processing so the created queues may not work, however driverless printers such as those supporting IPP Everywhere or AirPrint should work out of the box.
Print servers and remote administration
Allowing admin authentication through PolicyKit
PolicyKit can be configured to allow users to configure printers using a GUI without the admin password.
Here is an example that allows members of the wheel user group to administer printers without a password:
Without a local CUPS server
CUPS can be configured to directly connect to remote printer servers instead of running a local print server. This requires installation of the libcups package. Some applications will still require the cups package for printing.
Источник
Драйверы принтеров CUPS
Драйверы принтеров 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 или с базой данных принтеров Open Printing.
Источник
CUPS (Русский)
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 запускается только тогда, когда программа хочет его использовать.
Интерфейсы подключения
Дополнительные шаги для обнаружения принтера приведены ниже для различных интерфейсов подключения.
Чтобы узнать, обнаружен ли ваш USB-принтер:
Параллельный порт
Чтобы использовать принтер с параллельным портом, требуются модули ядра lp , parport и parport_pc .
Чтобы обнаружить или предоставить общий доступ к принтерам с помощью DNS-SD/mDNS, настройте разрешение имени узла .local через Avahi и перезапустите службу cups.service .
Для предоставления общего доступа к принтерам с помощью 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.
Специфические для производителя драйвера
Многие производители принтеров поставляют свои собственные драйверы Linux. Они часто доступны в официальных хранилищах Arch или в AUR.
Некоторые из этих драйверов описаны более подробно в CUPS/Принтероспецифичные проблемы.
URI принтера
Ниже перечислены дополнительные шаги для ручного создания URI, если это необходимо. Для некоторых принтеров или драйверов нужны особые URI, описанные в CUPS/Принтероспецифичные проблемы.
CUPS должен иметь возможность автоматически генерировать URI для USB-принтеров, например usb://HP/DESKJET%20940C?serial=CN16E6C364BH .
Если этого не происходит, смотрите CUPS/Решение проблем#USB-принтеры для получения информации об устранении неполадок.
Параллельный порт
URI должен иметь вид parallel:device . Например, если принтер подключен к /dev/lp0 , используйте parallel:/dev/lp0 . Если вы используете адаптер USB для параллельного порта, используйте parallel:/dev/usb/lp0 в качестве URI принтера.
Если вы настроили Avahi, как в #Сеть, CUPS должен определить URI принтера. Вы также можете использовать avahi-discover , чтобы найти имя вашего принтера и его адрес (например, BRN30055C6B4C7A.local/10.10.0.155:631 ).
URI также можно создать вручную, не используя Avahi. Список доступных схем URI для сетевых принтеров доступен в документации CUPS. Поскольку точные данные URI отличаются между принтерами, проверьте руководство принтера или CUPS/Принтероспецифичные проблемы.
URI для сетевых принтеров SMB описаны на справочной странице smbspool(8) .
К удаленным серверам печати CUPS можно получить доступ через URI формы ipp://hostname:631/printers/queue_name . Подробнее о настройке удаленного сервера печати смотрите CUPS/Printer sharing#Between GNU/Linux systems [ссылка недействительна: раздел не найден] .
Смотрите CUPS/Решение проблем#Проблемы с сетью для получения дополнительной информации о проблемах и их решений.
Использование
CUPS можно полностью контролировать с помощью инструментов командной строки (CLI) из пакетов lp* и cups*. В качестве альтернативы можно использовать #Веб интерфейс или одно из нескольких #Приложения с GUI.
- Имя принтера — короткое, но описательное имя, используемое в системе для идентификации принтера. Это имя не должно содержать пробелов или специальных символов. Например, принтер, соответствующий 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.
Имя принтера зависит от тебя. Например:
Проверка cостояния принтера Отключение принтера Включение принтера Настройка принтера для приема заданий Удаление принтера
Сначала настройте принтер для отклонения всех входящих записей:
Затем отключите его.
Наконец, удалите его.
Печать файла Проверка очереди Очистка очереди
Веб интерфейс
Сервером CUPS можно полностью управлять через веб-интерфейс, доступный по адресу http://localhost:631/.
Для выполнения административных задач требуется аутентификация веб-интерфейса. Аутентифицируйте себя либо как root , либо убедитесь, что ваш пользователь входит в группу с полномочиями управления принтерами, для получения дополнительной информации смотрите #Настройка.
Перейдите на вкладку Администрирование.
Изменение существующих принтеров
Перейдите на вкладку Принтеры и выберите принтер для изменения.
Перейдите на вкладку Принтеры и выберите принтер.
Приложения с GUI
Если у вашего пользователя нет достаточных привилегий для администрирования CUPS, приложения будут запрашивать пароль root при запуске. Чтобы предоставить пользователям права администратора без необходимости доступа root, смотрите #Настройка.
Настройка
Настройки сервера 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.
CUPS может использовать Avahi для обнаружения неизвестных общих принтеров в вашей сети. Это может быть полезно в крупных сетях, где сервер неизвестен. Чтобы использовать эту функцию, настройте разрешение .local hostname и запустите службы avahi-daemon.service и cups-browsed.service . Задания отправляются непосредственно на принтер без какой-либо обработки, поэтому созданные очереди могут не работать, однако для принтеров, не требущих драйверов, такие как те, которые поддерживают IPP Everywhere или AirPrint все должно работать из коробки.
Серверы печати и удаленное администрирование
Разрешение аутентификации администратора через PolicyKit
PolicyKit можно настроить так, чтобы пользователи могли настраивать принтеры с помощью графического интерфейса без пароля администратора.
Вот пример, который позволяет членам группы wheel управлять принтерами без пароля:
Без локального сервера CUPS
CUPS можно настроить для прямого подключения к удаленным серверам принтеров вместо запуска локального сервера печати. Для этого потребуется установить пакет libcups . Некоторым приложениям по-прежнему потребуется пакет cups для печати.
Чтобы использовать удаленный сервер CUPS, установите переменную окружения CUPS_SERVER в printerserver.mydomain:port . Например, если вы хотите использовать другой сервер печати для одного экземпляра Firefox (замените printserver.mydomain:port на имя/порт своего сервера печати):
Решение проблем
Для получения дополнительной информации смотрите CUPS/Решение проблем.
Источник