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

Инструменты сайта


faq:linux:printer

Принтеры

Некоторые мультифункциональные устройства, принтеры и сканеры не работают «из коробки» в Linux, но поставляются с драйвером. Естественно, по инструкции идущей в комплекте их установить невозможно, поэтому и появился этот раздел в ЧаВо. Рассматриваемый дистрибутив - Ubuntu 10.04.

Установка МФУ Xerox 5016

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

  • качаем драйвер для принтера с офсайта;
  • распаковываем .deb-файл для принтера xrworkcentre5020b_1.0.0_5_i386.deb;
  • копируем файлы mimexrrb1.convs mimexrrb1.types в /etc/cups/;
  • копируем файлы pstoxrpre1 pstoxrraster rastertoxrrb1 в /usr/lib/cups/filter;
  • копируем файл wc5020b.ppd в /etc/cups/ppd/;
  • перезапускаем CUPS;
  • добавляем принтер в CUPS
    • если через Web-интерфейс, то указываем путь к файлу wc5020b.ppd;
    • если через GUI, то выбираем производителя Xerox, модель WorkCentre-5020;
  • чтобы заработала сетевая печать в Ubuntu 12.04: 1)
    • добавить модуль usblp в «чёрный список»
      /etc/modprobe.d/blacklist-usblp.conf
      blacklist usblp
    • перезагрузиться или выгрузить модуль вручную:
      modprobe -r usblp
  • при печати по сети из Windows в настройках принтера указать вручную лоток и ориентацию бумаги в лотке, иначе принтер будет выдавать ошибку C0 и не печатать;
  • настройки лотка хранятся в реестре в ветке HKCU;

Установка сканера:

  • качаем драйвер для сканера с офсайта;
  • устанавливаем .deb-файл для сканера: sudo dpkg -i scan_xrwc5020_1.0.0.12_i386.deb;
  • создаём файл /etc/udev/rules.d/98-xerox-wc5016.rules:
/etc/udev/rules.d/98-xerox-wc5016.rules
# Detect Sane scanner
# Xerox WorkCentre 5016
ATTRS{idVendor}=="0924", ATTRS{idProduct}=="4271", ENV{libsane_matched}="yes"
  • создаём файл /etc/udev/rules.d/99-sane-group.rules:
/etc/udev/rules.d/99-sane-group.rules
# Change group to scanner for sane devices
ENV{libsane_matched}=="yes", GROUP="scanner"
  • добавляем группу scanner:
addgroup --system scanner
  • добавляем пользователя в группу:
usermod -a -G scanner ubuntu_user
  • отсоединяем USB-шнур от сканера или перезагружаемся или выполняем: sudo udevadm trigger 2);
  • устанавливаем xsane (simple-scan умирает в самом конце сканирования).

Примечания

При печати из-под Linux эта модель Xerox не умеет брать бумагу из обходного лотка в положении A4L (только А4, короткой стороной к принтеру). Техподдержка сообщила, что это «конструктивная особенность».

При печати по сети на стороне клиента нельзя сменить формат бумаги для печати.

МФУ Samsung SCX-4100 (Xerox WorkCentre PE 114)

Для корректной работы этих МФУ достаточно установить Samsung Unified Linux Driver и добавить пользователя в группу lp.

Если не хочется использовать убогий GUI от Samsung, то можно установить файлы вручную… FIXME

Принтер Xerox Phaser 3155

Во время добавления принтера в CUPS необходимо выбрать драйвер pxlmono (Generic PCL 6/PCL XL Printer Foomatic/pxlmono) 3)

Для подключения в Windows этого принтера можно использовать драйвер «Универсальный - Generic Mono XPS Class Driver».

Принтер Xerox Phaser 3210

Во время установки принтера необходимо выбрать драйвер generic PCL 6/PCL XL 4)

Принтер HP LaserJet 1020

  • aptitude install foo2zjs
  • sudo mv sihp1020.dl /usr/share/foo2zjs/firmware/
  • sudo chown root. /usr/share/foo2zjs/firmware/*
  • sudo reboot
  • добавить принтер через http://localhost:631 и выбрать драйвер HP LaserJet 1020 Foomatic/foo2zjs (recommended)

Samsung ML-191x

  • найти здесь и скачать Unified Linux Driver;
  • распаковать его;
  • установить принтер, указав ему PPD из распакованного архива;
  • задать параметры принтера по-умолчанию

Philips LaserMFD 6020

Он же Sagem какой-то…

Для запуска сканера необходимо скачать драйвер с офф. сайта, распаковать и запустить ту часть, которая относится к сканеру для установки драйвера spll2 в sane.

Чтобы заработало сканирование от обычного пользователя, надо этого пользователя добавить в группу lp.

Hewlett-Packard Smart Install

Функция «Smart Install» - это когда принтер при подключении к компу распознаётся как USB Mass Storage device. 5) Принтер находится в этом режиме, если значение параметра bNumInterfaces = 1:

lsusb -d 03f0:042a -v | grep bNumInterfaces

Чтобы перевести принтер в обычный режим: 6)

sudo usb_modeswitch -v 03f0 -p 042a -M 505554202F6465762F666561747572655374617475732E786D6C20485454502F312E310D0A434F4E54454E542D4C454E4754483A203232320D0A555345522D4147454E543A68702050726F78792F332E300D0A484F53543A6C6F63616C686F73743A333931300D0A0D0A3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E0D0A3C6665617475726553746174757320786D6C6E733A7873693D22687474703A2F2F7777772E77332E6F72672F323030312F584D4C536368656D612D696E7374616E636522207873693A6E6F4E616D657370616365536368656D614C6F636174696F6E3D22666561747572655374617475732E787364223E0D0A20203C736D617274496E7374616C6C3E64697361626C65643C2F736D617274496E7374616C6C3E0D0A3C2F666561747572655374617475733E0D0A0D0A -n -2 474554202F6465762F666561747572655374617475732E786D6C20485454502F312E310D0A434F4E54454E542D4C454E4754483A20300D0A555345522D4147454E543A68702050726F78792F332E300D0A484F53543A6C6F63616C686F73743A333931300D0A0D0A -n -R

Затем выключить/включить электропитание принтера.

ИЛИ

Перезагрузить комп два раза? FIXME

Brother HL-5440D

Дано: установлен принтер Brother HL-5440D и установлен cupswrapper драйвер с оффсайта

Диагноз: не печатает

Лечение: для того, чтобы принтер начал печатать необходимо помимо установки cupswrapper-драйвера по инструкции установить ещё и LPD-драйвер.

AppArmor

Если печать внезапно прекращается, принтер ставится в паузу, и в логах есть сообщения от apparmor, то можно отключить apparmor для cups следующим образом:

aa-complain /usr/sbin/cupsd

Debugging

Quick debugging of a Linux printer via cups command line tools
Step by step cups debugging ( here with a network printer)

Which printer queue do I have configured ?
lpstat -p
printer epson is idle.  enabled since Sat Dec 24 13:18:09 2017
#here I have a printer called 'epson", doing nothing, that the cups daemon considers as enabled

Which connection am I using to get to this printer ?
lpstat -v
device for epson: lpd://epson34dea0.local:515/PASSTHRU
# here the locally configured 'epson' printer queue is backed by a network device at the adress epson34dea0.local, to which I am sending my print jobs via the lpd protocol

Is my printer ready ?
lpq
epson is ready
no entries
# here my local print queue 'epson' is accepting print jobs ( which does not say anything about the physical device, it might be offline

If here you local print queue 'epson' is not ready, you can try to reenable it in the cups system with:

sudo cupsenable epson

If you notice that the printer is disabled all the time, because for instance of a flaky network, you can edit /etc/cups/printers.conf and change the ErrorPolicy for each printer from stop-printer to retry-job.
It should be also possible to set this parameter in cupsd.conf

Finally you can print a test page with:
lpr /usr/share/cups/data/testprint

Canon LBP-810

Старый принтер с программным интерфейсом GDI. Драйвер был получен реверс-инжинирингом7) протокола и, хоть и датируется 2004 годом, но успешно собирается под современные дистрибутивы из исходников. Качаем сорцы с официального сайта, отсюда или берём из зеркала. Распаковываем:

tar xzf capt-0.1.tar.gz

Чтобы собрать код современным компилятором, в опции gcc нужно добавить -std=gnu89 - иначе будет ругаться на INLINE функции. Для этого редактируем Makefile и добавляем опцию к CFLAGS8).

Компилируем9) и устанавливаем: 10)

make
make install
service cups restart

После перезапуска CUPS добавляем принтер через Web-интерфейс или GUI. Главное, что нужно сделать после добавления - сходить в свойства и поставить URI принтера как file:/dev/null - иначе, CUPS при печати переключит принтер в неправильный режим, устройство /dev/usb/lp0 пропадёт и печать остановится.

Вот примерный путь распечатки: Приложение → CUPS → postscript → PBM → capt → USB

Шагов много, проблемы вероятнее всего таятся на последних трёх. Если они возникли - смотрим в /tmp/capt.log и /var/log/cups/error_log. Ещё можно воспользоваться служебной утилитой, скормив ей тестовый postscript файл:

cat a_image.ps | capt-print

Если это работает, а CUPS всё равно не печатает - проверяем политики безопасности и право CUPS запускать бинарник capt. Также можно изучить подробнее PPD файл, его можно будет найти в /etc/cups/ppd/ и строка FoomaticRIPCommandLine отвечает за запуск конвертации и печати.

9)
Возможно, нужно будет установить gcc и glibc-dev
10)
Для справки, этим шагом мы установили два бинарника и PPD файл. Первый бинарник называется capt и занимается непосредственно отправкой stdin на принтер через устройство /dev/usb/lp0. Второй бинарник называется capt-print и служит для отладки. Это простой shell-скрипт для преобразования postscript файлов в формат PBM, который понимает первый бинарник. PPD файл - это по сути конфигурация-обёртка для CUPS, точно так-же генерирующая PBM и отправляющая её программе capt
faq/linux/printer.txt · Последние изменения: 2020-06-28 13:13 — nikolay