Ошибка печати cups windows

Чтобы иметь возможность сетевой печати на компьютере с виндой на принтер, подключенный к linux-машинке с CUPS-ом (Common Unix Printing System), нужно проделать следующее:

  1. Проверить, что в CUPS-е разрешён общий доступ к принтеру. Для этого идём по ссылке http://10.1.1.49:631/printers/scx4200 (IP-адрес и имя принтера заменить в соответствии с Вашим случаем). Должна быть надпись «разрешен совместный доступ».
  2. В windows запускаем «Мастер установки принтеров» — через панель управления или командой
    rundll32 SHELL32, SHHelpShortcuts_RunDLL AddPrinter

    жмём «Далее…», выбираем опцию «Сетевой принтер или принтер подключенный к другому компьютеру», далее выбираем опцию «Подключиться к принтеру в Интернете, домашней сети или в интрасети»

  3. В поле URL вводим адрес принтера, например: http://10.1.1.49:631/printers/scx4200
    настройка принтера для печати через CUPS
    Если спросит про драйвер, выбрать изготовителя «Generic» и модель «MS Publisher Imagesetter». Жмём «Далее…» и принтер готов к использованию.

Если что-то не работает, в проверить следующее:

  1. что в firewall-е на linux-машинке открыт TCP-порт 631 для windows-клиента.
  2. что в винде в Internet Explorer-е ОТКЛЮЧЕН прокси-сервер (пол-часа голову ломал в своё время, пока не допёр посмотреть туда)

Вам необходимо печать буклетов дешево спб? Срочная печать в СПб звоните нам: +7 (812) 380 03 99!

Бесплатный антивирус 360 Total Security скачать для защиты компьютера в реальном времени.

Posted in *nix, Howto, Windows.

Tagged with CUPS, linux, Windows, принтер.

17.06.2011

Состояние перевода: На этой странице представлен перевод статьи CUPS/Troubleshooting. Дата последней синхронизации: 8 января 2019. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Введение

Наилучший способ борьбы с неисправностями — это выставить ‘LogLevel’ в файле /etc/cups/cupsd.conf на:

LogLevel debug

А потом посмотреть вывод из файла /var/log/cups/error_log например так:

# tail -n 100 -f /var/log/cups/error_log

Символы слева от вывода означают следующее:

  • D=Debug(отладка)
  • E=Error(ошибка)
  • I=Information(информация)
  • И так далее

Следующие файлы также могут быть полезны:

  • /var/log/cups/page_log — каждый раз при успешной печати, пишет новую запись
  • /var/log/cups/access_log — записывает всю активность на cupsd http1.1 сервере

Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:

  1. Когда вы жмёте ‘печать’ приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).
  2. CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.
  3. GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.
  4. Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд

Распечатайте документ и посмотрите error_log, чтобы получить более подробное и правильное представление об процессе печати.

Проблемы, возникающие в результате обновлений

Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ

CUPS останавливается

Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения «404 — page not found» при попытке входа в панель управления CUPS через localhost:631.

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

Для всех заданий — «остановлено»

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Если для всех отправленных на печать заданий установился статус «остановлено» («stopped»), — удалите принтер и установите его заново. Для этого войдите в веб-интерфейс CUPS, перейдите Принтеры > Удалить Принтер.

Для проверки настроек принтера перейдите во вкладку Принтеры, затем скопируйте отображаемую информацию. Далее нажмите на Администрирование. В выпадающем списке кликните Изменить принтер, перейдите к следующей странице(ам), и так далее.

Для всех заданий — «Принтер не отвечает»

Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:

lpd://BRN_020554/BINARY_P1

то имя хоста ‘BRN_020554’ должно соответствовать IP принтера, управляемого сервером CUPS. Если используется Avahi, убедитесь, что разрешение имени хоста Avahi работает.

Альтернативно, замените имя хоста, используемое в URI, IP-адресом принтера.

Версия PPD не совместима с gutenprint

Запустите:

# /usr/bin/cups-genppdupdate

И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).

Проблемы с сетью

Не удается найти принтер

Даже если CUPS обнаруживает сетевые принтеры, вы все равно можете получить ошибку «Не удается найти принтер» («Unable to locate printer») при попытке распечатать что-либо. Чтобы решить эту проблему, включите .разрешение локального имени хоста Avahi. Для получения дополнительной информации смотрите CUPS (Русский)#Сеть.

Эта проблема может возникать и при использовании файрвола (межсетевой экран, брандмауэр). Возможно, вам придется отключить его или установить корректные правила. Если вы используете system-config-printer для обнаружения сетевых принтеров, тогда он сделает все это автоматически.

Старый сервер CUPS

Начиная с версии CUPS 1.6, клиент по умолчанию использует IPP 2.0. Если сервер использует CUPS <= 1.5 / IPP <= 1.1, клиент не будет автоматически понижать версию протокола и, следовательно, не может связаться с сервером. Обходным путем является добавление опции version=1.1, описанной в Таблице 2. Опции URI IPP.

Общий принтер работает локально, но удаленный компьютер не печатает

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

Не удается найти файл PPD

/var/log/cups/error_log
Cannot connect to remote printer ipp://HP079676.local
copy_model: empty PPD file

Убедитесь, что Avahi настроен правильно. В частности, проверьте, что nss-mdns установлен и настроен в /etc/nsswitch.conf.

USB-принтеры

Конфликт с SANE

Если у вас также запущен SANE, возможно, что он конфликтует с CUPS. Чтобы исправить это, создайте правило Udev, обозначающее устройство как совпадающее с libsane:

/etc/udev/rules.d/99-printer.rules
ATTRS{idVendor}=="vendor id(код производителя)", ATTRS{idProduct}=="product id(код продукта)", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

Конфликт с usblp

Доступ к USB-принтерам можно получить двумя способами: модулем ядра usblp и libusb. Первый — это классический способ. Это просто: данные отправляются на принтер, записывая их в файл устройства в виде простого последовательного потока данных. Чтение одного и того же файла устройства позволяет использовать двунаправленный доступ, по крайней мере, для таких вещей, как считывание уровней чернил, статуса или информации о возможностях принтера (PJL). Он работает очень хорошо для простых принтеров, но для многофункциональных устройств (принтер/сканер) он не подходит, и производители, такие как HP, поставляют свои собственные бэкенды. Источник: здесь.

Важно: Начиная с cups версии 1.6.0, больше не нужно заносить в запрет загрузки модуль ядра usblp.
Если вы узнаете, что это единственный способ исправить оставшуюся проблему, сообщите об этом в баг-трекер CUPS, а также можно связаться с Till Kamppeter (сопровождающий CUPS в Debian). Для получения дополнительной информации смотрите в upstream bug.

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

/etc/modprobe.d/blacklistusblp.conf
blacklist usblp

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

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

# journalctl -e

или

# dmesg

Если вы используете usblp, вывод должен указывать на то, что принтер был обнаружен следующим образом:

Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver

Если вы запретили загрузку usblp, вы увидите что-то вроде:

usb 3-2: new full speed USB device using uhci_hcd and address 3
usb 3-2: configuration #1 chosen from 1 choice

USB autosuspend

Ядро Linux автоматически приостанавливает USB-устройства, когда есть поддержка драйверов и устройства не используются. Это может сэкономить электроэнергию, но некоторые USB-принтеры считают, что они не подключены, когда ядро приостанавливает USB-порт, предотвращая печать. Это можно устранить, отключив autosuspend для конкретного устройства, для получения дополнительной информации смотрите Power management#USB autosuspend.

Плохие разрешения

Проверьте разрешения USB-порта принтера. Получите номер шины (BUSID) и устройства (DEVID) от lsusb:

 lsusb 
 Bus <BUSID> Device <DEVID>: ID <PRINTERID>:<VENDOR> Hewlett-Packard DeskJet D1360

Проверьте владельца, просмотрев devfs:

 # ls -l /dev/bus/usb/<BUSID>/<DEVID>

Демон cups запускается от пользователя «cups» и относится к группе «lp», поэтому либо этому пользователю, либо группе требуется доступ на чтение и запись в USB-устройство. Если вы считаете, что разрешения выглядят неправильно, вы можете временно изменить группу и разрешение:

# chgrp lp /dev/bus/usb/<BUSID>/<DEVID>
# chmod 664 /dev/bus/usb/<BUSID>/<DEVID>

Затем проверьте, может ли cups теперь видеть устройство USB правильно.

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

/etc/udev/rules.d/10-local.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="<VENDOR>", ATTRS{idProduct}=="<PRINTERID>", GROUP:="lp", MODE:="0664"

После редактирования перезагрузите правила udev этой командой:

# udevadm control --reload-rules

Каждая система может отличаться, поэтому обратитесь к вики-странице udev (Русский)#Список атрибутов устройства.

Проблемы с HP

Смотрите также CUPS/Принтероспецифичные проблемы#HP.

CUPS: «/usr/lib/cups/backend/hp failed»

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Убедитесь, что dbus установлен и запущен. Если ошибка повторяется, попробуйте запустить avahi-daemon.

Попробуйте добавить принтер в качестве сетевого принтера, используя протокол http:// .

Примечание: Там, возможно, потребуется установить права доступа.

CUPS: «Печать завершена», но принтер не печатает.

Это происходит на принтерах HP, когда вы выбираете (старый) драйвер hpijs (например, для Deskjet D1600 series). Вместо этого используйте драйвер hpcups.

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

hp-firmware -n

CUPS: ‘»foomatic-rip» not available/stopped with status 3’

Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом ‘остановлен’ (‘stopped’), а в /var/log/cups/error_log возникает одно из следующих сообщений об ошибках:

Filter "foomatic-rip" for printer printer_name not available: No such file or director

или:

PID pid (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!

убедитесь, что hplip установлен.

CUPS: «Filter failed»

Ошибка «filter failed» может быть вызвана некоторым количеством причин. Журнал ошибок CUPS (по умолчанию /var/log/cups/error_log) должен записывать, какой фильтр не удалось загрузить и почему.

Отсутствует ghostscript

Установите ghostscript (/usr/lib/cups/filter/gstoraster нуждается в его запуске).

Отсутствует foomatic-db

Установите foomatic-db и foomatic-db-ppds. Это помогает в некоторых случаях.

Avahi не включен

Запустите и включите службу avahi-daemon.

Устаревший плагин

Эта ошибка может указывать на то, что плагин устарел (версия несовместима) и может произойти после обновления системы, возможно, появится сообщение Plugin error в журнале (логе).
Если вы установили hplip-pluginAUR, вам нужно обновить пакет, иначе перезапустите hp-setup -i, чтобы установить последнюю версию плагина.

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

Начиная с hplip-pluginAUR версии 3.17.11 hpijs больше не доступен. Если у вас есть принтеры, использующие hpijs, они не будут печатать. Необходимо перенастроить их и выбрать вместо этого новый драйвер hpcups.

Вы можете проверить, если это ваш случай, посмотрев в error_log cups`а:

 $ grep hpijs /var/log/cups/error_log 
 ...
 D [09/Jan/2018:14:32:58 +0000] [Job 97] sh: hpijs: command not found
 ...

CUPS: печатает только пустую страницу и страницу с сообщением об ошибке на HP LaserJet

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Существует ошибка, которая приводит к сбою CUPS при печати изображений на HP LaserJet (в моем случае 3380). Ошибки были зафиксированы и исправлены в Ubuntu.
Первая страница пуста, вторая страница содержит следующее сообщение об ошибке:

 ERROR:
 invalidaccess
 OFFENDING COMMAND:
 filter
 STACK:
 /SubFileDecode
 endstream
 ...

Чтобы устранить проблему, выполните следующую команду как суперпользователь (root):

# lpadmin -p printer -o pdftops-renderer-default=pdftops

HPLIP 3.13: Плагин установлен, но HP Device Manager жалуется на его отсутствие

Возможно, проблема связана с изменением прав доступа файла, которое было внесено в /var/lib/hp/hplip.state. Чтобы исправить проблему, достаточно простых команд chmod 644 /var/lib/hp/hplip.state и chmod 755 /var/lib/hp. Для получения дополнительной информации, пожалуйста, прочитайте эту ссылку.

hp-toolbox: «Unable to communicate with device»

# hp-toolbox
# error: Unable to communicate with device (code=12): hp:/usb/printer id

Разрешение проблемы

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Предположительно, hp-toolbox пытается получить доступ к /dev/usb/* или /dev/lp, поэтому он должен находиться в группе lp. Но почему sys? И я не могу воспроизвести это… (Discuss in Talk:CUPS (Русский)/Troubleshooting (Русский))

Может потребоваться добавить пользователя в группы lp и sys.

Виртуальный CDROM у принтеров

Это также может быть вызвано принтерами, такими как P1102, которые предоставляют виртуальный привод CD-ROM для драйверов MS Windows. Появляется lp dev, а затем исчезает. В этом случае попробуйте пакеты usb-modeswitch и usb-modeswitch-data, что позволяет отключить «Smart Drive» (правила udev, включенные в указанные пакеты).

Сетевые принтеры

Это также может происходить с сетевыми принтерами, использующими динамические имена хостов, если avahi-daemon не запущен. Другая причина заключается в том, что hp-setup не удалось найти принтер, потому что IP-адрес принтера изменился из-за DHCP. Если это так, подумайте о добавлении резервирования DHCP для принтера в конфигурации сервера DHCP.

hp-setup просит указать PPD-файл для обнаруженного принтера

Кроме того, при выборе файла PPD в графическом режиме hp-setup поле не обновляется и сообщение об ошибке не отображается.

Или, если вы используете интерактивный (консольный) режим, можно столкнуться с чем-то похожим на это даже при введении правильного пути к файлу ppd:

 Please enter the full filesystem path to the PPD file to use (q=quit) :/usr/share/ppd/HP/hp-deskjet_2050_j510_series.ppd.gz
 Traceback (most recent call last):
   File "/usr/bin/hp-setup", line 536, in <module>
     desc = nickname_pat.search(nickname).group(1)
 TypeError: cannot use a string pattern on a bytes-like object

Решение заключается в установке и запуске cups перед запуском hp-setup.

hp-setup: «Qt/PyQt 4 initialization failed»

Установите пакет python-pyqt4AUR, который дополнительно требуется (optdepend) для hplip. Альтернативно вы можете запустить hp-setup с интерфейсом командной строки с помощью флага -i.

hp-setup: находит принтер автоматически, но сразу после этого сообщает «Unable to communicate with device» при печати тестовой страницы

Это, по крайней мере, происходит с hplip 3.13.5-2 у принтера HP Officejet 6500A через локальное сетевое соединение. Чтобы решить проблему, укажите IP-адрес принтера HP для hp-setup, чтобы обнаружить принтер.

hp-setup: «KeyError: ‘family-class'»

Если при добавлении принтера в пользовательском интерфейсе он не работает, или вы получили KeyError: 'family-class' от hp-setup, возможно потребуется обновить вручную /usr/share/hplip/data/models/models.dat.

Проверьте определен ли раздел family-class=Undefined для вашего принтера. Если нет, добавьте это:

/usr/share/hplip/data/models/models.dat
[hp_laserjet_pro_mfp_m225dw]	
...
family-class=Undefined

Другие

Принтер «приостановлен — «Paused»» или «Остановлен» cо статусом «Рендеринг завершен»

Низкий уровень чернил

При низком уровне чернил некоторые принтеры зависают со статусом «Рендеринг завершен» («Rendering completed»), и, если это сетевой принтер, принтер может даже стать недоступным для CUPS, несмотря на то, что он правильно подключен к сети. Замена картриджа (картриджей) с низким уровнем чернил в этом случае вернет принтер в статус «Готов» («Ready») и, если он — сетевой принтер, то он станет снова доступным для CUPS.

Примечание: Если вы используете сторонние чернильные картриджи, то принтер может сообщать неточную информацию о уровне чернил. Если вы используете сторонние картриджи, и ваш принтер работал нормально, но теперь завис со статусом «Рендеринг завершен» («Rendering completed»), замените чернильные картриджи, независимо от уровня отображаемых чернил, перед тем, как пробовать другие решения проблемы.

Завершение печати из-за ошибок авторизации

Если удаленный принтер запрашивает аутентификацию, CUPS автоматически добавит директиву AuthInfoRequired для принтера в /etc/cups/printers.conf. Однако некоторые графические приложения (например, некоторые версии LibreOffice [1]) не имеют возможности запрашивать учетные данные, поэтому печать завершилась с ошибкой.
Чтобы исправить это, укажите требуемое имя пользователя и пароль в URI.
Для получения дополнительной информации смотрите [2], [3].

Unknown supported format: application/postscript

(Не найдена поддержка формата: application/postscript)

Закомментируйте строки:

application/octet-stream        application/vnd.cups-raw        0      -

в /etc/cups/mime.convs и:

application/octet-stream

в /etc/cups/mime.types.

Ошибка задания для печати (Print-Job) client-error-document-format-not-supported

Попробуйте установить пакет foomatic и используйте драйвер foomatic.

Не удается получить список драйверов принтера

(Также применимо к ошибке «-1 не поддерживается!»)

Попробуйте удалить драйверы Foomatic или обратитесь к CUPS/Принтероспецифичные проблемы#HPLIP для обходного пути.

lp: Error — Scheduler Not Responding

Если вы получите эту ошибку, убедитесь, что CUPS запущен, переменная окружения CUPS_SERVER не установлена и /etc/cups/client.conf корректный.

Сообщение об ошибке: «Using invalid Host»

Попробуйте добавить ServerAlias * в /etc/cups/cupsd.conf.

Не удается отправить на печать из LibreOffice

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

Вывод принтера сдвинут

По-видимому, это связано с неправильным размером страницы, установленным в CUPS.

Принтер не работает (приостановлен — «Paused») после ошибки

Когда во время печати возникает ошибка, принтер в CUPS может перестать отвечать на запросы. lpq сообщает, что принтер is not ready (не готов), его можно активировать с помощью cupsenable. В веб-интерфейсе CUPS принтер отображается как приостановлен — «Paused», его можно возобновить с помощью Восстановить печать.

Чтобы CUPS автоматически активировал принтер, измените политику ошибок с стандартной настройки Останавливать принтер (stop-printer) на Повторить задание (retry-this-job).

Samsung: URF ERROR — Incomplete Session by time out

Эта ошибка обычно возникает при печати файлов по сети через IPP на принтерах Samsung и решается с помощью пакета samsung-unified-driverAUR.

Примечание: Соответствующий код ошибки 11-1112 соответствует внутренней проблеме с принтером, поэтому обращение к технической поддержке Samsung бесполезно.

Brother: Принтер печатает несколько копий

Иногда принтер печатает несколько копий документа (например, MFC-9330CDW напечатал 10 копий). Решение заключается в обновлении прошивки принтера.

Обычный пользователь не может изменять настройки принтера или удалять определенные задания

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

Hello, recently I upgrade my Win10 laptop from Win10 1809 to 1903 and suddenly find that I cannot connect to my CUPS printer anymore. When I try to add the printer manually in Control Panel, it always says «Windows couldn’t connect to the printer». If I revert back to Win10 1809, it will work again. If I remove the Basic Authentication inside Get-Printer-Attributes, I can still add the printer in Win10 1903. Anyone has the same issue?

cups v2.3rc1
PS: cupsd.conf

LogLevel debug
MaxLogSize 1m
Port 631
Listen /run/cups/cups.sock
Browsing On
BrowseLocalProtocols dnssd
DefaultAuthType Basic
WebInterface Yes
ServerAlias cups-test
<Location />
  Order allow,deny
  Allow all
</Location>
<Location /admin>
  Order allow,deny
  Allow all
</Location>
<Location /admin/conf>
  Order allow,deny
  Allow all
</Location>
<Policy default>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Get-Printer-Attributes>
    AuthType Basic
    Order allow,deny
    Allow from 10.*.*.*
  </Limit>
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Basic
    Order allow,deny
    Allow from 10.*.*.*
  </Limit>
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Basic
    Order allow,deny
    Allow from 10.*.*.*
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Basic
    Order allow,deny
    Allow from all
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Basic
    Order allow,deny
    Allow from all
  </Limit>
  <Limit CUPS-Authenticate-Job>
    Order allow,deny
    Allow from all
  </Limit>
  <Limit All>
    Order allow,deny
    Allow from 10.*.*.*
  </Limit>
</Policy>

PS: error_log

[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Active clients", busy="Not busy"
[19/Jun/2019:15:40:34 +0800] [Client 71] Server address is "10.92.5.15".
[19/Jun/2019:15:40:34 +0800] [Client 71] Accepted from 10.1.0.170:60428 (IPv4)
[19/Jun/2019:15:40:34 +0800] [Client 71] Waiting for request.
[19/Jun/2019:15:40:34 +0800] [Client 71] Connection now encrypted.
[19/Jun/2019:15:40:34 +0800] [Client 71] POST /printers/cups-test HTTP/1.1
[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Active clients", busy="Active clients"
[19/Jun/2019:15:40:34 +0800] [Client 71] Read: status=200, state=6
[19/Jun/2019:15:40:34 +0800] [Client 71] No authentication data provided.
[19/Jun/2019:15:40:34 +0800] [Client 71] 1.0 Get-Printer-Attributes 11
[19/Jun/2019:15:40:34 +0800] Get-Printer-Attributes https://cups-test:631/printers/cups-test
[19/Jun/2019:15:40:34 +0800] cupsdIsAuthorized: username=""
[19/Jun/2019:15:40:34 +0800] [Client 71] Returning HTTP Unauthorized for Get-Printer-Attributes (https://cups-test:631/printers/cups-test) from 10.1.0.170
[19/Jun/2019:15:40:34 +0800] [Client 71] cupsdSendHeader: code=401, type="text/html", auth_type=1
[19/Jun/2019:15:40:34 +0800] [Client 71] WWW-Authenticate: Basic realm=\"CUPS\"
[19/Jun/2019:15:40:34 +0800] [Client 71] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
[19/Jun/2019:15:40:34 +0800] [Client 71] Closing connection.
[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
[19/Jun/2019:15:40:34 +0800] [Client 71] Waiting for socket close.
[19/Jun/2019:15:40:34 +0800] [Client 71] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
[19/Jun/2019:15:40:34 +0800] [Client 71] Closing connection.
[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Not busy", busy="Not busy"
[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Active clients", busy="Not busy"
[19/Jun/2019:15:40:34 +0800] [Client 72] Server address is "10.92.5.15".
[19/Jun/2019:15:40:34 +0800] [Client 72] Accepted from 10.1.0.170:60429 (IPv4)
[19/Jun/2019:15:40:34 +0800] [Client 72] Waiting for request.
[19/Jun/2019:15:40:34 +0800] [Client 72] Connection now encrypted.
[19/Jun/2019:15:40:34 +0800] [Client 72] POST /printers/cups-test HTTP/1.1
[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Active clients", busy="Active clients"
[19/Jun/2019:15:40:34 +0800] [Client 72] Read: status=200, state=6
[19/Jun/2019:15:40:34 +0800] [Client 72] No authentication data provided.
[19/Jun/2019:15:40:34 +0800] [Client 72] Read: status=100, state=6
[19/Jun/2019:15:40:34 +0800] [Client 72] 1.0 Get-Printer-Attributes 11
[19/Jun/2019:15:40:34 +0800] Get-Printer-Attributes https://cups-test:631/printers/cups-test
[19/Jun/2019:15:40:34 +0800] cupsdIsAuthorized: username=""
[19/Jun/2019:15:40:34 +0800] [Client 72] Returning HTTP Unauthorized for Get-Printer-Attributes (https://cups-test:631/printers/cups-test) from 10.1.0.170
[19/Jun/2019:15:40:34 +0800] [Client 72] cupsdSendHeader: code=401, type="text/html", auth_type=1
[19/Jun/2019:15:40:34 +0800] [Client 72] WWW-Authenticate: Basic realm=\"CUPS\"
[19/Jun/2019:15:40:34 +0800] [Client 72] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
[19/Jun/2019:15:40:34 +0800] [Client 72] Closing connection.
[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
[19/Jun/2019:15:40:34 +0800] [Client 72] Waiting for socket close.
[19/Jun/2019:15:40:34 +0800] [Client 72] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
[19/Jun/2019:15:40:34 +0800] [Client 72] Closing connection.
[19/Jun/2019:15:40:34 +0800] cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

Содержание

  1. Печать из Windows 7 на принтер в Mac OS (Linux)
  2. Получаем адрес очереди печати на сервере CUPS
  3. Поддержка IPP/CUPS печати в Windows
  4. Установка и настройка сетевого CUPS принтера в Windows
  5. Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС
  6. Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС
  7. Вступление
  8. Настройка принтсервера
  9. Исправление ошибки обращения к CUPS через loopback по имени хоста
  10. Настройка адресов прослушивания подключений к CUPS у клиентских машин Linux
  11. Настройка адресов прослушивания подключений к CUPS
  12. Настройка раздачи и получения широковещательной рассылки сетевых принтеров
  13. Настройка административного доступа
  14. Настройка использования доменных групп пользователей для администрирования CUPS
  15. Установка принтера в Linux
  16. Группы принтеров (Classes)
  17. Заключение
  18. BSDPORTAL.RU
  19. cups видит принтер, но не печатает.
  20. Кто сейчас на конференции

Печать из Windows 7 на принтер в Mac OS (Linux)

Попробуем разобраться, как можно организовать печать из Windows на принтер, установленный на системе с UNIX / Linux / Mac OS X. Стандартная подсистема печати для UNIX называется CUPS (Common UNIX Printing System). Одни из способов организовать сетевую печать на CUPS принтере – открыть к нему общий доступ (расшарить) с помощью Samba. Однако в этой статье мы не будем рассматривать этот способ, т.к. несмотря на то, что этот способ является «родным» для Windows-клиентов, не всегда целесообразно разворачивать и настраивать самбу, если помимо организации сервера печати, другой необходимости в ней нет (скорее всего придется решить целый ряд проблем, в основном, конечно, связанных с авторизацией).

Предпочтительным методом подключения клиента Windows к серверу печати CUPS на UNIX-подобной операционной системе — является протокол IPP (Internet Printing Protocol), используемый в CUPS в качестве основы для управления заданиями и очередями. IPP это стандартный протокол, основанный на HTTP, позволяющий управлять печатью, поддерживает аутентификацию и шифрование (SSL), контроль доступа, а также позволяющий использовать переадресацию портов и туннелированние. По сравнению с Samba конфигурация сервера печати CUPS через IPP является более простой, и менее подвержена ошибкам.

В Windows встроенная поддержка IPP появилась только начиная с версии Windows 2000.

Итак, предположим, у нас имеется компьютер с OS X Lion, на котором развернут сервер CUPS с принтером Canon, сетевой доступ к которому открыт (в данном примере доступ открыт для всех без авторизации по логину/паролю).

Получаем адрес очереди печати на сервере CUPS

Таким образом мы узнаем (и сразу копируем его в буфер обмена), что адрес очереди интересующего нас принтера в системе CUPS это
http:// 192.168.11.211:631/printers/Canon_iP4000_series

Поддержка IPP/CUPS печати в Windows

Установка и настройка сетевого CUPS принтера в Windows

Установку и настройку IPP принтера мы будем осуществлять в Windows 7 (процедура в других версиях Windows аналогична, отметим, что в данном случае мы настраиваем именно сетевой принтер, а не локальный как описано в статье Печать из Windows 7 на сетевой принтер XP). Перейдите в панель управления принтерами (Control Panel\Hardware and Sound\Devices and Printers) и создайте новый сетевой принтер (Add a network, wireless or Bluetooth printer). Запустится автоматический поиск принтеров, но скорее всего, нужный принтер найден не будет, поэтому нажмите на кнопку The printer what I wont isn’t listed.

В поле Select a shared printer by name вставьте скопированный ранее адрес очереди печати принтера и нажмите Next.

Windows попытается соединится с принтером, причем не факт что удачно, это зависит от многих факторов и разобрать их все вряд ли получится. Из практики, отметим, что если процесс подключения к принтеру затянется (более 3-5 минут), попробуйте проверить доступность сервера CUPS, перейдя на тот же адрес с помощью любого браузера, и попробуйте подключить принтер опять.

В случае успешного подключения система предложит вам установить драйвер принтера. На этом моменте немного остановимся. Система CUPS принимает от клиентов файлы печати, являющиеся обычными PostScript документами. Язык печати PostScript поддерживается системой Windows прямо «из коробки», главная проблема в том, что имя стандартного драйвера PS звучит Microsoft Publisher Color Printer (забавная маскировка, не правда ли), но на некоторых системах может использоваться именование MS Publisher Imagesetter.

Итак, выбираем драйвер, для чего переходим в секцию Generic, выбираем MS Publisher Color Printer и жмем ОК (если в системе имеется «родной» драйвер принтера, все равно выбираем MS Publisher!).


Если все прошло успешно (а обычно проблем на этом этапе не возникает), то далее следует типовая процедура настройки принтера (имя, описание, нужно ли давать общий доступ). Нажав, Next попытайтесь распечатать тестовую страницу печати. Как правило, тестовая страница печати без каких либо затруднений выводится на печать на принтере, подключенном к Unix-like клиенту.
В некоторых случаях стоит попробовать установить родной драйвер принтера, хотя все же предпочтительно сначала убедится, что с простым драйвером PS задания печати выводятся корректно. Но следует понимать, что реально для печати используется драйвер, установленный в системе CUPS, а установленный в Windows драйвер PostScript всего лишь формирует PS файл и передает его на сервер.

Примечание. Не забудьте проверить, что между машиной с OS X и Windows порт 631 не блокируется сетевым экраном.

Итак, мы разобрались, как в Windows 7 настроить печать на принтер, установленный в Mac OS X (в UNIX/Linux процедура аналогична).

Источник

Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС

Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС

Вступление

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

В статье будет описана установка принтсервера CUPS на Ubuntu Server в сети с работающим доменом Active Directory, хотя его наличие совершенно не обязательно и инструкции по настройке взаимодействию с ним можно будет смело пропустить, его настройка, а также настройка клиентских машин Linux и Windows для взаимодействия с данным принт-сервером.

В инструкции домен будет именоваться example.com, сам принтсервер — cupsserver (cupsserver.example.com) с IP адресом 10.10.100.50, а клиентские машины linux1, linux2, linux3 и т.д для клиентских машин Linux и windows1, windows2, windows3 и т.д. для клиентских машин Windows соответственно.

Настройка принтсервера

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

Заходим на принтсервер любым удобным способом и обновим на нем пакеты:

Далее проверим, установлен ли CUPS на сервере:

Если вывод выглядит как то так:

то CUPS установлен, если вывода нет — устанавливаем CUPS:

Теперь настроим административный доступ к веб-интерфейсу CUPS. Все файлы конфигурации находятся по пути /etc/cups/. Для начала, на всякий случай сделаем резервные копии основных файлов конфигурации CUPS:

Впрочем, если вы этого не сделали — не беда, образцы данных файлов по умолчанию лежат по пути /usr/share/cups. Также нужно упомянуть, что вы можете проверить любые добавленные опции в файлы конфигурации CUPS с помощью команды:

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

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

А если вы отредактировали файл /etc/cups/cups-browsed.conf, то за него отвечает отдельный сервис cups-browsed, который тоже нужно перезапустить:

Первой незакомментированной опцией является

Она определяет минимальную информативность логов CUPS. Лог-файлы CUPS находятся по пути /var/log/cups/. На время установки, настройки и отладки принтсервера будет разумным перевести логгирование в debug-режим. Для этого изменим warn на debug2:

По умолчанию CUPS слушает входящие подключения только от localhost, то бишь на loopback интерфейсе. Чтобы убедится в этом, можете выполнить команду

Одна из строк будет выглядеть приблизительно так:

Дальнейшие действия зависят от степени вашей паранойи. Вы можете добавить в блоке, который условно начинается с комментария #Only listen for connections from the local machine несколько строк с указанием IP адресов или подсетей, откуда CUPS’у будет позволено слушать подключения.

Либо же вы можете разрешить CUPS’у слушать подключения со всех адресов

Следующий момент настройки — это обнаружение сетевых и расшаренных принтеров.

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

Далее идут настройки аутентификации:

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

Вообще, группы, которым позволен административный доступ к CUPS, определяются в файле конфигурации cups-files.conf в блоке

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

Теперь перейдем к блоку :

Order allow,deny означает, что запрещены подключения отовсюду, если специально не указано разрешение. То есть нужно добавлять IP-адреса, подсети, хосты или хосты по маске (.example.com) в виде «Allow from [разрешенный адрес]*»:

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

Приступим к настройке административного доступа к CUPS на принтсервере. Определитесь, с какого/каких IP и/или подсетей вы собираетесь подключаться к CUPS, и добавить их по аналогии с блоком :

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

Если нужная вам локализация, например ru, есть, то добавьте строчку в /etc/cups/cupsd.conf:

Чтобы к вашему принтсерверу cupsserver.example.com можно было обращатся по его хосту (hostname), необходимо создать в папке /etc/cups/ файл client.conf с таким содержимым:

Самым простым способом это можно сделать так:

Поскольку мы предполагаем, что в сети есть DNS сервер, то будет предпочтительным, чтобы можно было обращатся к принтсерверу по его доменному имени (cupsserver.example.com). Также серверу может быть присвоен CNAME псевдоним на DNS сервере, например print или cups. Чтобы принтсервер принимал подключения по таким обращениям, необходимо добавить такую строчку в файл /etc/cups/cupsd.conf:

Если вы хотите, чтобы принтсервер примимал любые обращения, или не хотите заморачиваться, то можно добавить это:

Еще нужно взглянуть внутрь файла /etc/cups/cups-browsed.conf. Этот файл управляет тем, как принтсервер будет искать принтеры в сети и проводить широковещательную рассылку своих принтеров. Я предлагаю совершенно отключить опцию рассылки. Принтсервер будет искать принтера в сети, но с него принтеры на клиентские машины будут подключатся вручную. Ниже будет описано, почему. Пока же мы находим строку BrowseRemoteProtocols dnssd cups:

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

На этом настройку принтсервера приостанавливаем и переходим к настройке клиентких машин Windows и Linux. Требования к ним такие — позволять посылать на себя задания печати принтсерверу, и посылать задания на печать именно (и только) на принтсервер в случае необходимости печати на сетевой принтер.

Теперь выполним аналогичную операцию на клиентской машине Linux c именем хоста linux1. Вообще, данная часть будет куда объемнее, так как у клиентской машины есть свой сервис CUPS и его тоже нужно настроить во многом так же, как и принтсервер, за исключением его подчиненной роли в организации печати.

Исправление ошибки обращения к CUPS через loopback по имени хоста

Есть неприятный момент. Если вы введете linux1 в домен, настроите на нем CUPS по этим инструкциям, то можете заметить абсурдную ситуацию, когда на WEB-интерфейс linux1 можно зайти снаружи, но на самом хосте этого сделать нельзя! И графические приложения для локальной настройки принтеров, вроде приложения system-config-printer в Linux Mint, отказываются работать. При попытке подключения на свой же CUPS по по адресу http://linux1:631/ будет сообщение «Запрещено» или «Bad Request». Это известная и толком не решенная на множестве форумов интернета проблема.

В большинстве инструкций по введению Linux в домен одним из пунктов является приведение файла /etc/hosts приблизительно к такому виду:

Почему то CUPS не в силах ассоциировать обращение через 127.0.1.1, то есть через Loopback интерфейс, с именем хоста.

Исправляется эта ошибка двумя способами. Если в вашей сети IP адреса статичные, то в файле /etc/hosts исправьте 127.0.1.1 на IP адрес внешнего сетевого интерфейса клиентской машины, например:

Либо же, раз уж вы вводите Linux в домен, то это предполагает, что в вашей сети работает DHCP и DNS сервер Active Directory. В таком случае просто закомментируйте данную строчку:

Разницы в работоспособности или проблем от данного действия пока обнаружено не было.

Настройка адресов прослушивания подключений к CUPS у клиентских машин Linux

Заходим на linux1 любым удобным способом. Редактируем файл /etc/cups/cupsd.conf:

Находим, добавляем или изменяем в нем строки:

Настройка адресов прослушивания подключений к CUPS

Настройка раздачи и получения широковещательной рассылки сетевых принтеров

Еще у клиетской машины Linux, в данном случае linux1, необходимо отредактировать файл /etc/cups/cups-browsed.conf:

Настройка административного доступа

Еще пару слов по поводу административного доступа, как на WEB-интерфейс CUPS на принтсервере, так и на любой клиентской машине Linux. Даже при условии наличия 30-50 компьютеров нужно унифицировать авторизацию на CUPS, а не держать в голове или еще где пароли каждой машины. И это важно на всех Linux машинах, ведь чтобы добавить принтер на сервер, его сперва нужно установить локально. Я вижу несколько путей.

Первый — на каждой системе Linux создать пользователя printeradmin (например) и добавить в группу lpadmin:

и авторизовываться на http://имя_хоста:631/admin c помощью его учетных данных.

Второй вариант практически идентичен и предлагает создать группу в системе, например, printersadmins, добавить туда требуемого администратора CUPS (printeradmin, user):

Затем нужно найти в файле /etc/cups/cups-files.conf строку

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

И наконец, третий вариант. Сделать администраторами принтсервера и CUPS’ов клиентских машин доменную группу пользователей. Для этого принтсервер и клиентские машины Linux должны быть присоединены к домену AD. Есть несколько методов подключения Linux к домену Windows, но, насколько я знаю, основные это подключение с помощью winbind и с помощью SSSD(realmd). Описание данных методов не входит в статью, поэтому остановлюсь только на моментах которые касаются конкретно CUPS’а.

Настройка использования доменных групп пользователей для администрирования CUPS

Каждый метод присоединения к системе централизованной авторизации в Linux создает специальный файл-«трубу» (pipe), сквозь который приложения могут посмотреть список пользователей домена. Чтобы так мог сделать CUPS, нужно разрешить ему использовать pipe в AppArmor’е для аутентификации пользователей. AppArmor — модуль безопасности Linux по управлению доступом. Ограничивает определенные программы набором перечисленных в его политиках файлов. Чтобы добавить CUPS’у право использовать пользователей и группы домена через winbindd, нужно добавить в файл /etc/apparmod.d/local/usr.sbin.cupsd такую строку:

Если Linux введен в домен через SSSD, то необходимо указать расположение его pipe в /etc/apparmod.d/local/usr.sbin.cupsd, добавив туда строку:

К тому же, в случае с SSSD это позволяет пройти аутентификацию (узнать кто заходит), но чтобы пройти авторизацию (узнать есть ли право у пользователя управлять CUPS) необходимо также добавить в файл конфигурации SSSD /etc/sssd/sssd.conf строку:

Это, условно выражаюсь, дает CUPS’у право «заглядывать» в SSSD.

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

Добавим CUPS’у указание грузиться после SSSD. Отредактируем файл сервиса cups.service по пути /lib/systemd/system/, добавив инструкцию After в секцию [Unit]:

Таким образом CUPS настроен на Basic авторизацию через домен, то есть авторизацию с помощью ввода логина и пароля доменного пользователя с правом администрирования CUPS.

Авторизация может быть настроена и иначе, но принцип (pipe-файл) в целом универсален и есть шанс настроить и для LDAP, FreeIPA и прочих служб каталогов по аналогии.

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

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

Группы принтеров (Classes)

Главная прелесть данного метода в том, что если на любом из ПК заменяется принтер, заменяется сам компьютер, или то и другое сразу, то это никак не влияет на тех, кто был к ним подключен через группу на принтсервере. Единственная настройка производится на принтсервере — к принтсерверу подключается новый принтер, затем из группы, в которой состоял старый принтер, он удаляется, и добавляется новый принтер на замену старому. И никаких дополнительных настроек на любом количестве ПК, только на принтсервере и собственно ПК на котором меняли принтер. Драйвера «IPP Everywhere» и «MS Publisher Imagesetter» содержат большое количество настроек бумаги, печати и т.д., так что нет проблем настроить нужный вид печати через них.

Заключение

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

Источник

BSDPORTAL.RU

Часовой пояс: UTC + 4 часа

cups видит принтер, но не печатает.

Автор Сообщение
Серый_Ветер

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

имеем слитый с опенпринта
Samsung-ML-1210-gdi.ppd
лежачий в каталогах:

правила под принтер:

в cupsd.conf изменено только это:
# for troubleshooting.
ServerAlias freebsd

# Only listen for connections from the local machine.
Listen 192.168.7.1:631
Listen /var/run/cups.sock

на странице ip:631
принтер отображается.
если в настройках вывести пробную страницу принтера на печать даже шуршит шестернями. но не печатает.

в /etc/printcap ничего нет.

установил по новой принтер взяв на этот раз дрова от cups
в итоге:

в очереди висит, но не печатает.

как тут быть?
подскажите.

Модератор

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5478
Откуда: СССР, Харьков

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

Виноват.
все заработало.
удалил foomatic-filters установил cups-filters все заработало.
хотя дрова пишет что они foomatic
и пришлось перезагрузится. так как ни ресет cups\lpd не помогли.

фух, настроил.. пошел теперь его по сети шарить. надеюсь тут без глюков.

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

Модератор

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5478
Откуда: СССР, Харьков

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

если добавить притер как http://ip:631/printers/print
то печатает.
я хотел прикрутить принтер к samba с папкой для установки дров автоматом.

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

Модератор

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5478
Откуда: СССР, Харьков

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

[global]
workgroup = LOCALNET
netbios name = FreeBSD
server string = Samba Server
security = user
map to guest = Bad User
guest account = nobody
os level = 35
local master = YES
preferred master = YES
bind interfaces only = YES
interfaces = 192.168.7.1/24
domain master = no
domain logons = no
wins support = yes
dos charset = CP866
unix charset = UTF-8
log file = /var/log/samba4/log.%m
kernel oplocks = no
fake oplocks = no
oplocks = no
level2 oplocks = no
max log size = 100
dns proxy = NO
smb passwd file = /usr/local/etc/samba/smbpasswd
acl check permissions = no
load printers = yes
printing = cups
printcap name = cups
disable spoolss = no
use client driver = no
cups server = 192.168.7.1:631

принтер и папка для настроек

[printers]
comment = «All printers»
path = /var/spool/samba
public = yes
guest ok = yes
writable = yes
printable = yes
browseable = yes
read only = no
printer admin = nobody

[print$]
comment = «Printer Drivers»
path = /usr/local/share/cups/drivers
browseable = yes
guest ok = yes
read only = no
writable = yes
write list = nobody
Read list = «@TEST\Domain Users»

на время установки дров:

Модератор

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5478
Откуда: СССР, Харьков

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

права на /usr/local/share/cups/drivers я и показывал выше постом.

сделал:
add path ‘unlpt*’ mode 0666

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

Модератор

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5478
Откуда: СССР, Харьков

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

в логах samba пусто, только отчет о перезапуске

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

на спуллер тоже стоит:

и все толку все равно нет.

Модератор

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5478
Откуда: СССР, Харьков

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

в общем закончил работать, теперь домой пришел.

1. не печатает на win 7(хотя если напрямую подключить, то печатает(настроил более-менее с бубном)), на хр и планшете все печатает.
дрова на компьютере(для локального и сетевого принтеров) абсолютно идентичные, кроме порта.

2. samba все также отфутболивает.
вот конфиги:
/usr/local/etc/cups/cupsd.conf

/usr/local/etc/smb4.conf

[global]
workgroup = LOCALNET
netbios name = FreeBSD
server string = Samba Server
security = user
map to guest = Bad User
guest account = nobody
os level = 255
local master = no
preferred master = YES
bind interfaces only = YES
interfaces = 192.168.7.1/24
domain master = no
domain logons = no
wins support = yes
#name resolve order = wins bcast hosts
#wins server = 192.168.7.1
dos charset = CP866
unix charset = UTF-8
log file = /var/log/samba4/log.%m
kernel oplocks = no
fake oplocks = no
oplocks = no
level2 oplocks = no
max log size = 100
dns proxy = NO
smb passwd file = /usr/local/etc/samba/smbpasswd
acl check permissions = no
load printers = yes
printing = cups
printcap name = cups
disable spoolss = no
use client driver = no
show add printer wizard = yes
#cups server = 192.168.7.1:631

[printers]
comment = «All printers»
path = /var/spool/samba
public = yes
guest ok = yes
writable = yes
printable = yes
browseable = yes
read only = no
create mask = 0664
directory mask = 0775
force user = nobody

[print$]
comment = «Printer Drivers»
path = /usr/local/share/cups/drivers
#browseable = yes
#guest ok = yes
#read only = no
#writable = yes
#write list = nobody
#Read list = nobody
public = yes
guest ok = yes
writable = yes
printable = yes
browseable = yes
read only = no
create mask = 0664
directory mask = 0775
force user = nobody

/usr/local/etc/printcap

cat /etc/devfs.conf | grep lp

cat /etc/devfs.rules

cat /etc/rc.conf | grep devf

cat /usr/local/etc/cups/printers.conf

UUID urn:uuid:eebaaf92-d32a-3e72-66cf-b8b6a9f4ce5c
Info printer
Location printer
MakeModel Samsung ML-1210 Foomatic/gdi (recommended)
DeviceURI usb:/dev/unlpt0
State Idle
StateTime 1459096590
Type 8392708
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy abort-job

UUID urn:uuid:9eec7627-293c-31e8-604b-0e4b241e74b8
Info Virtual PDF Printer
Location PDF Printer
MakeModel Generic CUPS-PDF Printer
DeviceURI cups-pdf:/
State Idle
StateTime 1459092002
Type 8450124
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy abort-job

если заходить на http://ip:631/printers/ и выбрать тестовую страницу с win 7 то печатает.

отчет о печати(то что жирным выделено, было распечатано):

printer-33 Неизвестное Приостановлено пользователем 36k Неизвестно Завершено
Sun Apr 17 21:08:47 2016

printer-32 Test Page anonymous 1k Неизвестно Завершено
Sun Apr 17 21:05:45 2016

printer-31 Неизвестное Приостановлено пользователем 1100k 1 Завершено
Sun Apr 17 21:03:20 2016

printer-30 Неизвестное Приостановлено пользователем 1100k 1 Завершено
Sun Apr 17 20:44:08 2016

printer-29 Неизвестное Приостановлено пользователем 113k 1 Завершено
Sun Apr 17 20:38:26 2016

printer-28 Test Page anonymous 1k Неизвестно Завершено
Sun Apr 17 20:33:30 201
6

Зарегистрирован: Пн 15 окт, 2012 11:08 pm
Сообщения: 55

такс. в логах самбы и цупса было пусто, включил all.log
вот там нашел, пишет когда пытаюсь дрова добавить на принтер:

Страница 1 из 1 [ Сообщений: 20 ]
Версия для печати Пред. тема | След. тема

Часовой пояс: UTC + 4 часа

Кто сейчас на конференции

Источник

Добрый день.

Дело было так. Поставил Samba (раньше на ней даже домен висел). На CUPS развернул сетевые принтеры (так как в конторе Linux’ов больше, чем винды). Попытался из-под винды подключиться к принтеру под Линуксом. Тамошний мастер подключения запросил выдать ему драйверы, так как на сервере их не обнаружил. Я их ему давал. Все было нормально.

Потом, я обновил сервер (OpenSuSE) и изменил настройки Samba. Это привело к тому, что из-под винды принтеры печатали только с некоторых программ (FireFox, OpenOffice). Еще некоторые программы не печатали вообще (задание на печать уходило, но не печаталось): 1С, Opera, Клиент-банк.

Мне это надоело и я решил установить на сервере драйверы принтеров, как положено — через cupsaddsmb. После этого, принтеры стали устанавливаться замечательно, но печатать перестали вовсе. Что тольяо я уже не делал с ними! (хотя, очевидно, чего-то важного так и не сделал).

Сейчас, если я посылаю задание на печать на принтер из-под винды, я получаю в журнале cups/error_log:

I [20/Aug/2008:21:15:52 +0400] [Job 295] Adding start banner page «none».

I [20/Aug/2008:21:15:52 +0400] [Job 295] Adding job file of type application/vnd.cups-raw.

I [20/Aug/2008:21:15:52 +0400] [Job 295] Adding end banner page «none».

I [20/Aug/2008:21:15:52 +0400] [Job 295] Queued on «laserjetm1005» by «emma».

I [20/Aug/2008:21:15:52 +0400] [Job 295] Started backend /usr/lib64/cups/backend/usb (PID 10279)

I [20/Aug/2008:21:15:53 +0400] [Job 295] Completed successfully.

Для примера, привожу журнал успешной печати прямо из-под Линукса (но через сеть):

I [20/Aug/2008:21:14:06 +0400] [Job 294] Adding start banner page «none».

I [20/Aug/2008:21:14:06 +0400] [Job 294] Adding job file of type application/octet-stream.

I [20/Aug/2008:21:14:06 +0400] [Job 294] Adding end banner page «none».

I [20/Aug/2008:21:14:06 +0400] [Job 294] Queued on «laserjetm1005» by «polina».

I [20/Aug/2008:21:14:06 +0400] [Job 294] Started backend /usr/lib64/cups/backend/usb (PID 10254)

I [20/Aug/2008:21:14:06 +0400] [Job 294] Completed successfully.

В журнале напечатанных страниц, это все выглядит одинаково (cups/page.log):

laserjetm1005 polina 294 [20/Aug/2008:21:14:06 +0400] 1 1 — 192.168.0.2

laserjetm1005 emma 295 [20/Aug/2008:21:15:52 +0400] 1 1 — 192.168.0.2

Технические данные:

ОС: openSuSE 1.0

Samba — 3.2.0rc1-22.1-1795-SUSE-SL11.0

cups — 1.3.7

Windows — 2000

Printer — HP LaserJet M1005 (МФУ)

Конечный вопрос: как сделать так, чтобы принтер снова стал печатать из-под винды?

Понравилась статья? Поделить с друзьями:
  • Ошибка подключения приложения kompasvdm rtw
  • Ошибка подключения 80431075 на psp
  • Ошибка печати ddst
  • Ошибка повторите попытку позже идентификатор воспроизведения андроид
  • Ошибка повторите попытку дота 2 команды