Печать

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Printing and the translation is 76% complete.
Outdated translations are marked like this.
Other languages:

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

Печать и Gentoo Linux

Используйте правильные инструменты

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

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

Установка

Ядро

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

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

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

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

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

Локально подключенный принтер (LPT)

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

ЯДРО Конфигурация принтера с параллельным интерфейсом
Device Drivers --->
  <*> Parallel port support  --->
    <*> PC-style hardware
    [*] IEEE 1284 transfer modes
  Character devices  --->
    <*> Parallel printer support
Заметка
Некоторым пользователям может потребоваться включение других параметров в разделе конфигурации Parallel port support. Проверьте функцию конфигурации ядра Help для получения подробностей.

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

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

Локально подключенный принтер (USB)

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

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

ЯДРО Поддержка USB принтера
Symbol: USB_PRINTER [=n]
Type  :tristate
Prompt: USB Printer support
  Location:
    -> Device Drivers
      -> USB support (USB_SUPPORT [=y])
(1)     -> Support for Host-side USB (USB [=y])
  Defined at drivers/usb/class/Kconfig:21
  Depends on: USB_SUPPORT [=y] && USB [=y]

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

Заметка
When using a USB to parallel port adapter, CUPS will not be able to detect the printer. As a workaround, add the printer using a different connection type and then change the DeviceURI directive in printers.conf and restart the cupsd service:
ФАЙЛ /etc/cups/printers.confModify DeviceURI
# DeviceURI usb:/dev/usb/lp0  replace this line with
DeviceURI parallel:/dev/usb/lp0

Удаленно подключенный принтер (IPP и LDP)

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

Удаленно подключенный принтер (CIFS)

Ядро должно поддерживать CIFS:

ЯДРО Конфигурация принтера CIFS
File systems -->
  Network File Systems -->
    <*> SMB3 and CIFS support (advanced network filesystem)

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

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

USE-флаги

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

USE flags for net-print/cups The Common Unix Printing System

X Add support for X11
acl Add support for Access Control Lists
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
kerberos Add kerberos support
openssl Use dev-libs/openssl instead of net-libs/gnutls for TLS support
pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
static-libs Build static versions of dynamic libraries as well
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
usb Add USB support to applications that have optional USB support (e.g. cups)
xinetd Add support for the xinetd super-server
zeroconf Support for DNS Service Discovery (DNS-SD)

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

user $emerge -pv net-print/cups
[ebuild N     ] net-print/cups-1.7.3  USE="X acl dbus pam ssl threads usb -debug -gnutls -java -kerberos -lprng-compat -python (-selinux) -static-libs -systemd -xinetd -zeroconf" ABI_X86="(64) (-32) (-x32)" LINGUAS="ca es fr it ja pt_BR ru" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" 0 kB

Emerge

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

root #emerge --ask net-print/cups

Дополнительное программное обеспечение

Samba

Чтобы включить поддержку SAMBA, пакет net-fs/samba должен быть установлен с поддержкой CUPS. Отредактируйте файл или каталог /etc/portage/package.use, чтобы задействовать USE-флаг cups:

ФАЙЛ /etc/portage/package.useВключение USE-флага cups для samba
net-fs/samba cups

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

root #emerge --ask --changed-use net-fs/samba

Avahi

CUPS uses Avahi internally when built with the zeroconf 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 zeroconf USE flag as well. Use the driverless command for listing available printers.

user $driverless list

Конфигурация

Группа печати

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

root #gpasswd -a username lp

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

root #gpasswd -a username lpadmin

Сервис

OpenRC

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

root #rc-service cupsd start
root #rc-update add cupsd default

systemd

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

root #systemctl start cups.service
root #systemctl enable cups.service

Интерфейс HTTP

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

http://localhost:631/

Файлы

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

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

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

Удаленный доступ к принтеру

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

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

ФАЙЛ /etc/cups/cupsd.confРазрешение удаленного доступа к принтеру
<Location />
  Order allow,deny
  Allow localhost
  Allow from 192.168.0.*
</Location>

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

ФАЙЛ /etc/cups/cupsd.confШироковещательная рассылка информации
BrowseAddress 192.168.0.*:631

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

ФАЙЛ /etc/cups/cupsd.confКонфигурация порта
Listen *:631
#Listen localhost:631

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:

ФАЙЛ /etc/cups/cupsd.confServer alias configuration
ServerAlias *

Удаленное администрирование CUPS

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

ФАЙЛ /etc/cups/cupsd.confРазрешение удаленного доступа
<Location /admin>
(...)
  Encryption Required
  Order allow,deny
  Allow localhost
  Allow 192.168.0.3
</Location>

Не забудьте перезапустить демон CUPS после внесения изменений в /etc/cups/cupsd.conf посредством /etc/init.d/cupsd restart.

Включение поддержки Windows PCL драйверов

Драйвера PCL отправляют данные на сервер печати "в сыром виде". Чтобы включить печать без обработки данных (raw printing) на CUPS, отредактируйте /usr/share/cups/mime/mime.types и раскомментируйте строчку application/octet-stream, если она еще не раскомментирована. Затем отредактируйте /usr/share/cups/mime/mime.convs и сделайте то же самое, если строчка еще не раскомментирована.

ФАЙЛ /usr/share/cups/mime/mime.typesВключение печати без обработки данных
application/octet-stream
ФАЙЛ /usr/share/cups/mime/mime.convs
application/octet-stream     application/vnd.cups-raw    0    -

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

Установка удаленного принтера

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

Предполагая, что принтер подключен к системе, называемой printserver.mydomain, откройте /etc/cups/client.conf в любимом текстовом редакторе и установите директиву ServerName:

ФАЙЛ /etc/cups/client.conf
# (Замените printserver.mydomain на имя вашего сервера печати)
ServerName printserver.mydomain

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

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

root #lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00

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

root #lpoptions -d hpljet5p

Конфигурация принтера

Введение

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

Обнаружение принтера

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

user $dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series

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

user $lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse


The lpinfo command can be used in order to list all connected printers:

root #lpinfo -v
network ipp
network http
network socket
network https
network ipps
network lpd
network lpd://BRW67890ABCDEF/BINARY_P1

Running lpinfo -l -v will give a more verbose output.


Listing available drivers

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

user $lpinfo -m

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

Установка принтера

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

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

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

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

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

Устройство Описание
AppSocket/HP JetDirect Это специальное устройство делает возможным доступ к сетевым принтерам через сокет HP JetDirect. Поддержка этой опции есть только у определенных принтеров.
Internet Printing Protocol (IPP или HTTP) Используйте это для того, чтобы получить доступ к удаленному принтеру через IPP протокол, либо напрямую (IPP) или через HTTP.
LPD/LPR Host или Printer Выберите эту опцию, если принтер является удаленным и подключен к серверу LPD/LPR.
Parallel Port #1 Выберите, если принтер подключен локально к параллельному порту (LPT). Когда принтер обнаружен автоматически, его имя будет добавлено к устройству.
USB Printer #1 Выберите в том случае, когда принтер подключен локально к USB порту. Имя принтера должно быть автоматически добавлено к имени устройства.

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

  • Сервер принтера LPD требует синтаксис lpd://hostname/queue.
  • Принтер HP JetDirect требует синтаксис socket://hostname.
  • Принтер IPP требует синтаксис ipp://hostname/printers/printername или http://hostname:631/printers/printername.

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

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

Тестирование и повторная конфигурация принтера

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

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

Если принтер не работает, то можно найти подсказки, посмотрев в журнал ошибок CUPS, который расположен /var/log/cups/error_log. В следующем примере обнаружена ошибка разрешений, возможно вследствие ошибочных настроек Allow в файле /etc/cups/cupsd.conf.

root #tail /var/log/cups/error_log
(...)
E [11/Jun/2005:10:23:28 +0200] [Job 102] Unable to get printer status (client-error-forbidden)!

Установка наилучшего драйвера

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

Загрузите файл PPD с сайта и поместите его в /usr/share/cups/model, затем запустите /etc/init.d/cupsd restart от 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:

КОД XPIF code for inserting a user id
*JCLBegin:"<1B>%-12345X@PJL JOB<0A>"

*% Base JCL key code option
*JCLOpenUI JCLPasscode/Key Code: PickOne
*OrderDependency: 10 JCLSetup *JCLPasscode
*JCLPasscode None/No Code: ""
*JCLCloseUI: *JCLPasscode

*% Custom JCL key code option
*CustomJCLPasscode True: "@PJL XCPT <?xml version=<22>1.0<22> encoding=<22>UTF-8<22>?>
  @PJL XCPT <!DOCTYPE xpif SYSTEM <22>xpif-v02074.dtd<22><3E>
  @PJL XCPT <xpif version=<22>1.0<22> cpss-version=<22>2.07<22> xml:lang=<22>en-US<22><3E>
  @PJL XCPT          <job-template-attributes>
  @PJL XCPT <09><09><3C>job-accounting-user-id syntax=<22>name<22> xml:space=<22>preserve<22><3E>\1<3C>/job-accounting-user-id>
  @PJL XCPT          </job-template-attributes>
  @PJL XCPT </xpif>"
*ParamCustomJCLPasscode Code/Key Code: 1 password 0 16

*JCLEnd:"<1B>%-12345X@PJL EOJ<0A><1B>%-12345X<0A>"

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. Запустите emerge gutenprint чтобы их установить. Заметьте, что ebuild содержит достаточно большое количества USE-флагов. Как минимум должны быть включены cups и ppds, чтобы драйвера gutenprint работали хорошо.

root #emerge --ask net-print/gutenprint

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

Драйвер HPLIP

Lexmark driver

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

root #emerge --ask net-print/lexmark-upd-ppd

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 является лучшим выбором, то необходимо установить фильтр net-print/pnm2ppa в систему:

root #emerge --ask net-print/pnm2ppa

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

Драйвер SpliX

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

root #emerge --ask net-print/splix

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

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

Смотрите Сетевой принтер Brother.

Драйвера для принтеров Canon

See the specific pages:

Печать на и с Microsoft Windows

Заметка
Прочитайте руководство по Samba/CUPS для более подробной информации по настройке CUPS с Samba.

Конфигурация Windows клиента для использования IPP

Microsoft Windows поддерживает IPP (пользователи Windows 9x и ME должны установить это отдельно). Чтобы установить принтер на Windows, который подключен к машине с Linux, запустите мастер добавления принтераДобавить принтер и выберите Сетевой принтер. Когда запросится URI, используйте синтаксис http://hostname:631/printers/queue.

Конфигурация Windows клиента для общего Samba-принтера

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

Откройте /etc/samba/smb.conf в любимом текстовом редакторе и добавьте в него раздел [printers]:

КОД Добавление раздела [printers]
[printers]
  comment      = All printers
  path         = /var/spool/samba
  browseable   = no
  guest ok     = no
  writable     = no
  printable    = yes
  public       = yes
  printer name = hpljet5p

Направляйтесь вверх файла smb.conf до тех пор, пока не дойдете до раздела [global]. Найдите printcap name и printing и установите каждую из них в cups (смотрите пример ниже):

КОД Изменение раздела [global] в smb.conf
[global]
  (...)
  printcap name = cups
  printing      = cups

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

Конфигурация Linux клиента для сервера печати Windows

Сперва, убедитесь, что в системе Windows открыт общий доступ к принтеру, и что net-fs/samba была собрана с включенным USE-флагом cups (как описано выше).

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

user $smbclient -N '\\server\'

В веб-интерфейсе CUPS настройте принтер, как описано ранее. Заметьте, что CUPS добавил другой драйвер под названием Windows Printer via SAMBA. Выберите его и используйте URI вида smb://username:password@workgroup/server/printername или smb://server/printername.

Важно
Все специальные символы в URI выше должны быть должным образом кодированы. Например:

smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6

кодируется как

smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6


Такую строку можно получить с помощью следующей команды:

user $python2 -c 'import urllib; print "smb://" + urllib.quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6")'

Приложения, связанные с печатью

Введение

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

Gtk-LP — инструмент настройки принтера, основанный на GTK

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

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

root #emerge --ask net-print/gtklp

Утилита для настройки принтеров в KDE Plasma

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

root #emerge --ask kde-apps/print-manager

Удаление

USE-флаги

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

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

Unmerge

root #emerge --ask --depclean --verbose net-print/cups

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

root #emerge --ask --depclean

Устранение проблем

Debugging

See archlinux wiki

Error: Unable to convert file 0 to printable format

Если есть проблемы с печатью и /var/log/cups/error_log показывает это сообщение:

КОД Ошибка в логе
Unable to convert file 0 to printable format

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

root #echo "app-text/ghostscript-gpl cups" >> /etc/portage/package.use

Затем запустите emerge app-text/ghostscript-gpl. После того как компиляция будет завершена, не забудьте перезапустить cupsd после этого.

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

root #service cupsd restart

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

root #systemctl restart cups

USB printer is not detected

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

user $lsusb Bus 002 Device 058: ID 04e8:3297 Samsung Electronics Co., Ltd ML-191x/ML-252x Laser Printer

There should be a character device for this printer at /dev/bus/usb/002/058.

user $ls -l /dev/bus/usb/002/058 crw-rw-r-- 1 root android 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

In this example, /lib64/udev/rules.d/80-android.rules over-zealously modified the permissions. This is bug #644636. Lets try fixing them:

root #chgrp lp /dev/bus/usb/002/058
root #chmod 660 /dev/bus/usb/002/058

Now we should see:

user $ls -l /dev/bus/usb/002/058 crw-rw---- 1 root lp 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

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:

ФАЙЛ /etc/udev/rules.d/99-printer.rulesCustom Udev Rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="3297", MODE="0660", GROUP="lp"

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.

Смотрите также

Ссылки


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT) ,
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.