Печать
Этот документ описывает установку и поддержку принтеров, использующих 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:
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:
# DeviceURI usb:/dev/usb/lp0 replace this line with
DeviceURI parallel:/dev/usb/lp0
Удаленно подключенный принтер (IPP и LDP)
Чтобы иметь возможность подсоединиться к удаленно подключенному принтеру через протокол межсетевой печати (IPP) или Line Printer Daemon protocol, ядро должно иметь поддержку сети. Предполагая, что ядро уже имеет эту поддержку, перейдем к CUPS.
Удаленно подключенный принтер (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
+ssl
|
Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security) |
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 |
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
:
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 в веб-браузере:
Файлы
Для большинства пользователей конфигурации сервера 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
.
<Location />
Order allow,deny
Allow localhost
Allow from 192.168.0.*
</Location>
Эта строка передает информацию для просмотра клиентам в сети. Данная информация позволит пользователям в сети узнать, что принтер стал доступен:
BrowseAddress 192.168.0.*:631
Слушающий порт CUPS должен быть настроен так, чтобы он отвечал на запросы печати с других машин в сети:
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:
ServerAlias *
Удаленное администрирование CUPS
Если необходимо удаленное администрирование, то нужно предоставить доступ к администрированию CUPS для других систем, а не только с localhost. Отредактируйте /etc/cups/cupsd.conf и явно предоставьте доступ каждой системе, которой необходим доступ. Например, чтобы предоставить доступ системе с IP-адресом 192.168.0.3:
<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 и сделайте то же самое, если строчка еще не раскомментирована.
application/octet-stream
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
:
# (Замените 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
.
Models other than "everywhere" are deprecated and will not be supported in a future version of CUPS.
Далее, выберите производителя принтера в смежном экране, а также тип и номер модели в последующем экране. Для большинства принтеров будет доступно множество драйверов. Выберите один из них сейчас или поищите в списке принтеров 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)!
Установка наилучшего драйвера
Printer drivers are now deprecated (Issue #5270)
PPD files and printer drivers are deprecated and will not be supported in a future version of CUPS.
Driverless_printing
Существует множество драйверов для принтера; чтобы узнать какой имеет лучшую производительность при работе, посетите список принтеров 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:
*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
См. Драйвер 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]
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]
(...)
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:
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.
Смотрите также
- Samba — a re-implementation of the SMB/CIFS networking protocol, a Microsoft Windows alternative to Network File System (NFS).
- Driverless printing
Ссылки
- Использование сетевых принтеров - документация на CUPS.org.
- Печать из командной строки и возможные опции - документация на CUPS.org.
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.