Printing/ru

Этот документ Article description::описывает установку и поддержку принтеров, использующих CUPS и Samba. Он охватывает локальную и сетевую установку, также содержит инструкции по использованию общих принтеров из других операционных систем. Информация о использовании команд и  для печати документов доступна в отличной документации от CUPS.

Используйте правильные инструменты
Linux отлично поддерживает принтеры; правильным инструментом для работы это CUPS (Common Unix Printing System). С самого начала проекта, в 1999, установка и поддержка CUPS существенно улучшилась.

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

Ядро
Когда пользователь хочет установить принтер в системе, сперва нужно узнать как принтер будет к ней подключен. Будет ли подключение осуществляться через локальный порт, например LPT или USB, или он будет подключен по сети? Если принтер сетевой, будет ли он использовать протокол межсетевой печати (Internet Printing Protocol (IPP)) или протокол Microsoft Windows CIFS (Microsoft Windows Sharing)?

Следующие несколько разделов объясняют какая минимальная конфигурация ядра необходима для подключения принтера к Gentoo. Конечно же, это зависит от того, как принтер будет подключен к системе, поэтому для удобства инструкции разделены.

Перейдем в и запустим, чтобы войти в меню конфигурации ядра. Если ранее использовался для конфигурации ядра, нужно все равно выполнить эти шаги, чтобы убедиться, что ничего не пропущено. Не полагайтесь на genkernel, чтобы настроить все в системе автоматически; печать — это та область, где сложно автоматически определить верные настройки.

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

Теперь перейдите к соответствующему разделу для конфигурации (или проверки) ядра.

Локально подключенный принтер (LPT)
LPT порт обычно используется для идентификации параллельного порта принтера. Вам потребуется сначала включить поддержку параллельного порта, затем поддержку параллельного порта "PC-style" (если только не используется система SPARC), после чего включить поддержку принтера с параллельным интерфейсом.

Вот и все! Выйдите из конфигурации ядра и пересоберите ядро.

Теперь перейдем к CUPS.

Локально подключенный принтер (USB)
CUPS может поддерживать печать через USB, если включен USB USE-флаг. Это использует библиотека libusb для поддержки USB в пользовательском пространстве.

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

Тем не менее использование поддержки USB-принтера со стороны ядра считается устаревшим. Используйте это только тогда, когда действительно необходимо.

Удаленно подключенный принтер (IPP и LDP)
Чтобы иметь возможность подсоединиться к удаленно подключенному принтеру через протокол межсетевой печати (IPP) или Line Printer Daemon protocol, ядро должно иметь поддержку сети. Предполагая, что ядро уже имеет эту поддержку, перейдем к CUPS.

Удаленно подключенный принтер (CIFS)
Ядро должно поддерживать CIFS:

После завершения конфигурации CIFS выйдите из конфигурации ядра и пересоберите ядро. Не забудьте скопировать новый образ ядра в (и не забудьте смонтировать  при необходимости) и обновить конфигурацию загрузчика перед перезагрузкой системы. Если не уверены, как выполнить эти шаги, посмотрите команды в разделе Локально подключенный принтер (LPT).

Теперь продолжим далее процесс установки CUPS.

USE-флаги
В CUPS есть несколько дополнительных функций, которые могут быть интересными. Чтобы включить или отключить эти функции, используйте USE-флаги, связанные с ними.

Проверьте текущие настройки USE-флагов. Чтобы отклониться от текущих настроек USE-флагов только для CUPS, добавьте подходящие USE-флаги в файл.

Emerge
Если результат устраивает, установим CUPS:

Samba
Чтобы включить поддержку SAMBA, пакет должен быть установлен с поддержкой CUPS. Отредактируйте файл или каталог, чтобы задействовать USE-флаг :

Затем (пере)установим Samba:

Avahi
CUPS uses Avahi internally when built with the  USE flag to scan for printers on the local network. To use Avahi hostnames to connect to networked printers, set up .local hostname resolution and restart the CUPS service. CUPS and cups-filters need to be built with the  USE flag as well. Use the command for listing available printers.

Группа печати
Любой пользователь, которому будет необходима печать, должен быть добавлен в группу :

Для того, чтобы была возможность добавлять принтеры и редактировать их с помощью веб-интерфейса CUPS, любой пользователь, которому разрешено редактировать эти параметры, должен быть добавлен в группу lpadmin:

OpenRC
Если принтер подключен к системе локально, и необходимо, чтобы принтер был доступен сразу же после загрузки, нужно загружать демон CUPS автоматически при запуске системы. Убедитесь, что принтер подключен к компьютеру и включен до запуска демона CUPS.

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

Интерфейс HTTP
После запуска сервиса, принтеры могут быть добавлены авторизованными пользователями. root и любому из группы lpadmin это доступно по умолчанию. Откройте следующий URL в веб-браузере:

http://localhost:631/

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

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


 * Разрешить другим системам использовать принтер, подключенный к этой рабочей станции Linux.
 * Предоставить доступ к администрированию CUPS для удаленных систем.
 * Настроить CUPS, чтобы поддерживать драйверы Windows PCL. Это рекомендуется, чтобы Windows системы могли использовать общий SAMBA принтер, так как большинство драйверов Windows — PCL драйверы.
 * Настроить систему для использование принтера, подключенного к другой системе (не общему ресурсу Windows).

Удаленный доступ к принтеру
Чтобы другие системы использовали принтер через IPP, должен быть предоставлен явный доступ к принтеру в файле. Для предоставления общего доступа к принтеру с помощью SAMBA это изменение не требуется.

Откройте в любимом текстовом редакторе и добавьте строку   для систем(ы), которым необходимо получить доступ к принтеру. В следующем примере доступ предоставлен к принтеру с localhost и с любой другой системы, чей IP-адрес начинается с.

Эта строка передает информацию для просмотра клиентам в сети. Данная информация позволит пользователям в сети узнать, что принтер стал доступен:

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

The CUPS server reject a hostname or server alias in the HTTP request with "Bad request" message. It works with IP-addresses by default. So if you want to print or browse CUPS interface by using a hostname or domain, add the ServerAlias parameter:

Удаленное администрирование CUPS
Если необходимо удаленное администрирование, то нужно предоставить доступ к администрированию CUPS для других систем, а не только с localhost. Отредактируйте и явно предоставьте доступ каждой системе, которой необходим доступ. Например, чтобы предоставить доступ системе с IP-адресом 192.168.0.3:

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

Включение поддержки Windows PCL драйверов
Драйвера PCL отправляют данные на сервер печати "в сыром виде". Чтобы включить печать без обработки данных (raw printing) на CUPS, отредактируйте и раскомментируйте строчку , если она еще не раскомментирована. Затем отредактируйте и сделайте то же самое, если строчка еще не раскомментирована.

Не забудьте перезапустить демон CUPS после внесения этих изменений запустив.

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

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

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

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

Установим HP LaserJet 5P в качестве принтера по умолчанию:

Введение
Если принтер, который будет настраиватся, доступен удаленно через другой сервер печати (с запущенным CUPS), тогда не нужно следовать этим инструкциям. Прочтите вместо этого установка удаленного принтера.

Обнаружение принтера
Если USB-принтер или принтер с параллельным портом был включен когда система Linux еще загружается, есть возможность получить информацию из ядра, подтверждающую, что принтер был успешно обнаружен. Это просто признак того, что принтер обнаружен и не является обязательным требованием.

Для USB-принтера:

Listing available drivers
Чтобы получить список доступных драйверов выполните следующую команду.

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

Установка принтера
Чтобы установить принтер на систему, запустите браузер и направьте его на http://localhost:631. Будет отображен веб-интерфейс CUPS, из которого можно выполнить все задачи администрирования.

Перейдите к и введите root логин и пароль в поле ввода. Затем, когда дошли до интерфейса администрирования, нажмите на. Будет отображен новый экран, позволяющий ввести следующую информацию:


 * spooler name, короткое, но информативное имя, используемое в системе для идентификации принтера. Это имя не должно содержать пробелов или любых других специальных символов. Например, для HP LaserJet 5P можно поставить.
 * location, описание того где принтер расположен физически (например, "спальня", или "на кухне прямо рядом с посудомоечной машиной", и т.д.). Это чтобы помочь в поддержке и сопровождении нескольких принтеров.
 * description, полное описание принтера. Часто используется полное имя принтера (например, "HP LaserJet 5P").

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

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


 * Сервер принтера LPD требует синтаксис.
 * Принтер HP JetDirect требует синтаксис.
 * Принтер IPP требует синтаксис  или.

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

Как только драйвер выбран, CUPS проинформирует, что принтер успешно добавлен в систему. Перейти к странице управления принтером в интерфейсе администрирования и выберете чтобы изменить настройки принтера (разрешение, формат страницы, ...).

Тестирование и повторная конфигурация принтера
Чтобы проверить, работает ли принтер правильно, перейдите к странице управления принтером, выберите принтер и нажмите на.

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

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

Установка наилучшего драйвера
Существует множество драйверов для принтера; чтобы узнать какой имеет лучшую производительность при работе, посетите список принтеров OpenPrinting. Выберите марку принтера и тип, чтобы узнать какой драйвер рекомендован этим сайтом. Например, для HP LaserJet 5P, сайт рекомендует драйвер.

Загрузите файл PPD с сайта и поместите его в, затем запустите от root. Это сделает драйвер доступным через веб-интерфейс CUPS. Теперь настройте принтер заново, как описано выше.

Enabling job accounting in for Xerox printers
High-end Xerox printers (often a gray, cabinet sized device) use XCPT PDL, and XML based, and poorly documented XPIF ticketing instruction format.

XCPT filter in Cups never made it to a release grade, and the work on it was eventually dropped and all XPIF must be input into a PPD manually. Luckily, it's largely a direct copy of IPP, using XML syntax. After peeking into docs available online, we can craft an arbitrary XPIF command using corresponding IPP attributes.

To configure XPIF solely for ticketing/accounting, drop the following into any PPD:

It will draw a dropdown box in any printing ui compliant with CUPS PPD extensions to enter the id.

The long term solution would still be for Xerox to fully publish XPIF, and XCPT specifications, to allow for a proper XPIF cups filter to be developed.

Введение
Некоторые принтеры требуют специальные драйвера или предоставляют дополнительные функции, которые не включаются через обычный процесс конфигурации (описанный выше). Эта глава обсудит подборку принтеров и как их заставить работать с Gentoo Linux.

Драйвер Gutenprint
Драйверы gutenprint — это высококачественные драйверы с открытым исходным кодом для различных принтеров Canon, Epson, HP, Lexmark, Sony, Olympus и PCL, поддерживающие CUPS. Они также поддерживают ghostscript, The Gimp и другие приложения.

Дерево Portage в Gentoo содержит ebuild-файл для драйверов gutenprint. Запустите чтобы их установить. Заметьте, что ebuild содержит достаточно большое количества USE-флагов. Как минимум должны быть включены  и , чтобы драйвера gutenprint работали хорошо.

Когда процесс сборки завершится, драйвера gutenprint будут доступны через веб-интерфейс CUPS.

Драйвер HPLIP
См. Драйвер HPLIP.

Lexmark driver
Most Lexmark printers are handled by their "Universal Printer Driver":

Once this is installed, there is a single Lexmark driver available in the CUPS setup wizard that should work with most printers and MFDs.

Драйвер PNM2PPA
PPA — это технология HP, которая фокусируется на отправке низкоуровневой обработки системе вместо принтера, что делает принтер более дешевым, но более требовательным к ресурсам.

Если сайт OpenPrinting информирует, что драйвер pnm2ppa является лучшим выбором, то необходимо установить фильтр в систему:

Как только установка завершена, загрузите PPD файл для принтера с сайта OpenPrinting и поместите его в каталог. Затем, настройте принтер используя шаги, разъясненные выше.

Драйвер SpliX
SpliX — это набор CUPS драйверов для SPL (Samsung Printer Language) принтеров. Splix драйвер доступен на сайте OpenPrinting, а также пакет позволяет быстро установить этот драйвер. Для установки запустите команду:

и перезагрузите.

Драйвера для принтеров Brother
Смотрите Сетевой принтер Brother.

Canon printer drivers
See the specific pages:
 * Canon CAPT drivers
 * Canon Pixma drivers

Конфигурация Windows клиента для использования IPP
Microsoft Windows поддерживает IPP (пользователи Windows 9x и ME должны установить это отдельно). Чтобы установить принтер на Windows, который подключен к машине с Linux, запустите мастер добавления принтера и выберите. Когда запросится URI, используйте синтаксис.

Конфигурация Windows клиента для общего Samba-принтера
Чтобы открыть общий доступ к принтеру в сети CIFS, SAMBA должна быть установлена и правильно сконфигурирована. Как это сделать выходит за рамки данной статьи, тем не менее быстро рассмотрим конфигурацию SAMBA для принтеров с общим доступом.

Откройте в любимом текстовом редакторе и добавьте в него раздел  :

Направляйтесь вверх файла до тех пор, пока не дойдете до раздела. Найдите  и   и установите каждую из них в   (смотрите пример ниже):

Убедитесь, что включили поддержку windows pcl в CUPS. Затем, перезапустите службу smb, чтобы изменения вступили в силу.

Конфигурация Linux клиента для сервера печати Windows
Сперва, убедитесь, что в системе Windows открыт общий доступ к принтеру, и что была собрана с включенным USE-флагом   (как описано выше).

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

В веб-интерфейсе CUPS настройте принтер, как описано ранее. Заметьте, что CUPS добавил другой драйвер под названием. Выберите его и используйте URI вида  или.

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

Gtk-LP — инструмент настройки принтера, основанный на GTK
С установку, изменение и настройку принтера можно сделать из автономного приложения Gtk. Оно использует CUPS и также предоставляет все стандартные возможности CUPS. Это определенно стоит проверить, если не нравится веб-интерфейс CUPS или хочется автономное приложение для повседневных задач печати.

Установите с помощью:

Утилита для настройки принтеров в KDE 4
У KDE 4 также есть утилита для конфигурации принтеров —. Она взаимодействует с CUPS и предоставляет дружелюбный интерфейс для настройки принтеров. Установите его следующим образом:

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

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

Unmerge
Наконец, очистите систему от пакетов, ставших ненужными после удаления CUPS.

Debugging
See archlinux wiki

Error: Unable to convert file 0 to printable format
Если есть проблемы с печатью и показывает это сообщение:

Перекомпелируйте с USE-флагом. Вы также можете добавить  к системным USE-флагам в, или включить его только для ghostscript-gpl, как показано ниже:

Затем запустите. После того как компиляция будет завершена, не забудьте перезапустить после этого.

Если используется OpenRC:

Если используется systemd:

USB Printer is not detected
Assuming that cups is built with the  USE flag, verify that the printer's character device has the correct permissions. For example:

There should be a character device for this printer at.

In this example, over-zealously modified the permissions. This is. Lets try fixing them:

Now we should see:

The printer likely is detected now. You should be able to add it, configure it (provided that you have a working driver) and print a test page. This implies a permissions problem. Assuming that your system uses udev/eudev for managing its /dev directory, you can make this change permanent by making a udev file:

Our device is "ID 04e8:3297" according to the earlier lsusb output. We split that into idVendor and idProduct as demonstrated in the example. Now udev should ensure that the correct permissions are set at every boot and at every hotplug.

Ссылки

 * Использование сетевых принтеров - документация на CUPS.org.
 * Печать из командной строки и возможные опции - документация на CUPS.org.