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

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


faq:linux:printer

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
Последняя версияСледующая версия справа и слева
faq:linux:printer [2020-03-22 19:49] – создано nikolayfaq:linux:printer [2020-06-28 13:13] – Canon LBP-810 nikolay
Строка 1: Строка 1:
 ====== Принтеры ====== ====== Принтеры ======
 +Некоторые мультифункциональные устройства, принтеры и сканеры не работают "из коробки" в Linux, но поставляются с драйвером. Естественно, по инструкции идущей в комплекте их установить невозможно, поэтому и появился этот раздел в [[[[:faq|ЧаВо]]. Рассматриваемый дистрибутив - Ubuntu 10.04.
 +
 +===== Установка МФУ Xerox 5016 =====
 +
 +====  Установка принтера ====
 +  * качаем драйвер для принтера с [[http://www.support.xerox.com/go/results.asp?Xlang=en_ZA&XCntry=ZAF&prodID=WC5020&ripId=&Xtype=download|офсайта]];
 +  * распаковываем .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: ((https://bugs.launchpad.net/ubuntu/+source/cups/+bug/420015))
 +    * добавить модуль usblp в "чёрный список" <file bash /etc/modprobe.d/blacklist-usblp.conf>blacklist usblp</file>
 +    * перезагрузиться или выгрузить модуль вручную: <code bash>modprobe -r usblp</code>
 +  * при печати по сети из Windows в настройках принтера указать вручную лоток и ориентацию бумаги в лотке, иначе принтер будет выдавать ошибку //C0// и не печатать;
 +  * настройки лотка хранятся в реестре в ветке HKCU;
 +
 +==== Установка сканера: ====
 +  * качаем драйвер для сканера с [[http://www.support.xerox.com/go/results.asp?Xlang=en_ZA&XCntry=ZAF&prodID=WC5020&ripId=&Xtype=download|офсайта]];
 +  * устанавливаем .deb-файл для сканера: ''sudo dpkg -i scan_xrwc5020_1.0.0.12_i386.deb'';
 +  * создаём файл /etc/udev/rules.d/98-xerox-wc5016.rules:
 +<file bash /etc/udev/rules.d/98-xerox-wc5016.rules>
 +# Detect Sane scanner
 +# Xerox WorkCentre 5016
 +ATTRS{idVendor}=="0924", ATTRS{idProduct}=="4271", ENV{libsane_matched}="yes"
 +</file>
 +  * создаём файл /etc/udev/rules.d/99-sane-group.rules:
 +<file bash /etc/udev/rules.d/99-sane-group.rules>
 +# Change group to scanner for sane devices
 +ENV{libsane_matched}=="yes", GROUP="scanner"
 +</file>
 +  * добавляем группу ''scanner'':
 +<code bash>
 +addgroup --system scanner
 +</code>
 +  * добавляем пользователя в группу:
 +<code bash>
 +usermod -a -G scanner ubuntu_user
 +</code>
 +  * отсоединяем USB-шнур от сканера или перезагружаемся или выполняем: ''sudo udevadm trigger'' ((http://blog.crox.net/archives/64-Scanner-permissions-in-Ubuntu-Karmic-udev-libusb-saned-problem-with-udev-acl.html));
 +  * устанавливаем 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) ((http://www.openprinting.org/printer/Xerox/Xerox-Phaser_3150))
 +
 +Для подключения в Windows этого принтера можно использовать драйвер "Универсальный - Generic Mono XPS Class Driver".
 +
 +===== Принтер Xerox Phaser 3210 =====
 +Во время установки принтера необходимо выбрать драйвер generic PCL 6/PCL XL ((http://unixforum.org/index.php?showtopic=79906))
 +
 +===== Принтер HP LaserJet 1020 =====
 +  * aptitude install foo2zjs
 +  * wget http://oleg.wl500g.info/hplj/sihp1020.dl
 +  * 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  =====
 +  * найти [[http://www.samsung.com/uk/support/download/supportDownloadMain.do|здесь]] и скачать Unified Linux Driver;
 +  * распаковать его;
 +  * установить принтер, указав ему PPD из распакованного архива;
 +  * задать параметры принтера по-умолчанию
 +
 +===== Philips LaserMFD 6020 =====
 +Он же Sagem какой-то...
 +
 +Для запуска сканера необходимо скачать драйвер с офф. сайта, распаковать и запустить ту часть, которая относится к сканеру для установки драйвера spll2 в sane.
 +
 +Чтобы заработало сканирование от обычного пользователя, надо этого пользователя **добавить в группу lp**.
 +
 +===== Hewlett-Packard Smart Install =====
 +Функция "Smart Install" - это когда принтер при подключении к компу распознаётся как USB Mass Storage device. ((http://www.hp.com/sbso/productivity/printing/smart-install.html))
 +Принтер находится в этом режиме, если значение параметра ''bNumInterfaces'' = 1:
 +<code bash>
 +lsusb -d 03f0:042a -v | grep bNumInterfaces
 +</code>
 +
 +Чтобы перевести принтер в обычный режим: ((https://bugs.launchpad.net/hplip/+bug/672134/comments/2))
 +<code bash>
 +sudo usb_modeswitch -v 03f0 -p 042a -M 505554202F6465762F666561747572655374617475732E786D6C20485454502F312E310D0A434F4E54454E542D4C454E4754483A203232320D0A555345522D4147454E543A68702050726F78792F332E300D0A484F53543A6C6F63616C686F73743A333931300D0A0D0A3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E0D0A3C6665617475726553746174757320786D6C6E733A7873693D22687474703A2F2F7777772E77332E6F72672F323030312F584D4C536368656D612D696E7374616E636522207873693A6E6F4E616D657370616365536368656D614C6F636174696F6E3D22666561747572655374617475732E787364223E0D0A20203C736D617274496E7374616C6C3E64697361626C65643C2F736D617274496E7374616C6C3E0D0A3C2F666561747572655374617475733E0D0A0D0A -n -2 474554202F6465762F666561747572655374617475732E786D6C20485454502F312E310D0A434F4E54454E542D4C454E4754483A20300D0A555345522D4147454E543A68702050726F78792F332E300D0A484F53543A6C6F63616C686F73743A333931300D0A0D0A -n -R
 +</code>
 +
 +Затем выключить/включить электропитание принтера.
 +
 +ИЛИ
 +
 +Перезагрузить комп два раза? FIXME
 +
 +===== Brother HL-5440D =====
 +Дано: установлен принтер Brother HL-5440D и установлен cupswrapper драйвер с оффсайта
 +
 +Диагноз: не печатает
 +
 +Лечение: для того, чтобы принтер начал печатать необходимо помимо установки cupswrapper-драйвера по инструкции установить ещё и LPD-драйвер.
 +
 +===== AppArmor =====
 +Если печать внезапно прекращается, принтер ставится в паузу, и в логах есть сообщения от **apparmor**, то можно отключить apparmor для cups следующим образом:
 +<code bash>
 +aa-complain /usr/sbin/cupsd
 +</code>
 +
 ===== Debugging ===== ===== Debugging =====
 <code> <code>
Строка 31: Строка 146:
 lpr /usr/share/cups/data/testprint lpr /usr/share/cups/data/testprint
 </code> </code>
 +
 +===== Canon LBP-810 =====
 +Старый принтер с программным интерфейсом GDI. Драйвер был получен реверс-инжинирингом((http://www.boichat.ch/nicolas/capt)) протокола и, хоть и датируется 2004 годом, но успешно собирается под современные дистрибутивы из исходников. Качаем сорцы с официального [[http://www.boichat.ch/nicolas/capt/capt-0.1.tar.gz|сайта]], {{ :faq:linux:capt-0.1.tar.gz |отсюда}} или берём из [[https://github.com/caxapyk/capt_lbp810-1120|зеркала]]. Распаковываем:
 +<file bash>
 +tar xzf capt-0.1.tar.gz
 +</file>
 +
 +Чтобы собрать код современным компилятором, в опции gcc нужно добавить ''-std=gnu89'' - иначе будет ругаться на INLINE функции. Для этого редактируем Makefile и добавляем опцию к CFLAGS((https://www.fedora.md/2018/05/09/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC-c%D0%B0non-lbp-810-%D0%B2-cups)).
 +
 +Компилируем((Возможно, нужно будет установить ''gcc'' и ''glibc-dev'')) и устанавливаем: ((Для справки, этим шагом мы установили два бинарника и PPD файл. Первый бинарник называется capt и занимается непосредственно отправкой stdin на принтер через устройство ///dev/usb/lp0//. Второй бинарник называется capt-print и служит для отладки. Это простой shell-скрипт для преобразования postscript файлов в формат PBM, который понимает первый бинарник. PPD файл - это по сути конфигурация-обёртка для CUPS, точно так-же генерирующая PBM и отправляющая её программе capt))
 +
 +<file bash>
 +make
 +make install
 +service cups restart
 +</file>
 +
 +После перезапуска 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 файл:
 +
 +<file bash>
 +cat a_image.ps | capt-print
 +</file>
 +
 +Если это работает, а CUPS всё равно не печатает - проверяем политики безопасности и право CUPS запускать бинарник capt. Также можно изучить подробнее PPD файл, его можно будет найти в ///etc/cups/ppd/// и строка ''FoomaticRIPCommandLine'' отвечает за запуск конвертации и печати.
faq/linux/printer.txt · Последнее изменение: 2022-02-19 18:16 — 127.0.0.1