Настройка принтеров CANON LBP в OpenSuse Linux

Подарился мне как-то принтер CANON LBP-1120. Состояние его определить было сложно, так как он выглядел, как-будто его только что подняли «нагора» шахтеры шахты «Кэнон». Черный и внутри и снаружи. По словам подарившего, последний раз он его видел когда-то работавшим. Ну чтож, значит есть надежда. В подобных случаях не расстраивайтесь, возможно, не все так плохо. Далее коротко, может кому пригодится.

Что я сделал — разобрал его «в пыль». Раскрутил все, что можно было. Не выпаивал только деталюшки с платы электроники.
На термопленке был нагар, который отваливался кусками сантиметров по пять. Но сама пленка в порядке.
Все, кроме блока электроники и нагревателя с термопленкой, погрузил в ванну с моющим средством для посуды и холодной (да, да, именно так рекомендует инструкция от CANON) водой с помощью щетки вдумчиво все помыл. Кстати, отмывается очень хорошо.
Предварительную сушку деталей сделал промокашкой из бумажного полотенца, а окончательную феном с не очень горячим воздухом. Потом вся эта куча ночь лежала на диване, досыхала. На всякий случай.
На выходе получилась неслабая кучка всяких деталей и винтиков, даже сомнения пришли, смогу ли собрать это. Но смог. Тут не удержусь похвалить инженеров CANON — все так сделано, что неправильно собрать нельзя, хотя порой приходилось и извилину напрягать. В общем собралось без проблем и без лишних деталей.
Результат превзошел все ожидания — прибор имеет вид абсолютно нового и при этом еще и работает.

Теперь появилась задача заставить его печатать от компьютера. Ниже об этом.
У меня нет дома и на работе компьютеров под Windows, а известно, что поколение принтеров, к которому относится LBP-1120, не просто так называют «win-принтерами».
Поиск в сети дал много информации по использованию этих принтеров в Линукс  и даже «родные» драйверы на сайте производителя имеются. Поэтому я не буду писать очередную инструкцию, просто отошлю к хорошему материалу по этой ссылке, которым я частично пользовался. Но для большего понимания, как все работает, поясню некоторые моменты.
1. Драйверы. Лучше взять с сайта CANON. Это два пакета cndrvcups-common и cndrvcups-capt с расширениями deb или rpm. Они находятся в соответствующих каталогах архива драйверов (32 или 64 бит).
Что делает cndrvcups-common. Он устанавливает кучу исполняемых модулей (библиотек) и выполняет команду /sbin/ldconfig, чтобы система их сразу увидела. Поэтому важно установить пакет cndrvcups-common в первую очередь.
Что делает cndrvcups-capt. Он также устанавливает много исполняемых модулей, кроме того, устанавливаются демоны ccpd, captmon и служебная программа ccpdadmin со всеми настроечными файлами. И именно этот пакет устанавливает «принтерозависимые» файлы PPD. Они попадают в /usr/share/cups/model/. Если заглянуть в этот каталог, то по названию файла можно узнать, поддерживается ли наш принтер данным драйвером. Работу моего принтера обеспечивает CNCUPSLBP1120CAPTK.PPD.
Важно: captmon работает от пользователя lp, поэтому надо включить всех пользователей компьютера в группу lp иначе они не смогут печатать даже если все настроено правильно.
2. Несмотря на то, что установочные скрипты драйвера выполняют команды ldconfig и chkconfig, надо перезагрузить компьютер.
3. Далее для OpenSuse. После перезагрузки демон ccpd все равно не активирован. Заходим в YAST-Управление службами-ccpd-Запустить-Режим запуска-При загрузке-OK.
Поясню, что это мы делали: мы без консоли (можно было бы и через консоль, но зачем, если есть YAST?) запустили демон ccpd и заставили его запускаться всегда при загрузке.
Поясню, для чего мы это делали: помним, что LBP — это «win-принтер»? Иногда еще стыдливо называют GDI-принтером, это чтобы тень win не падала на доброе имя техники Кэнон. Но от перемены трех букв суть не меняется — все электронные «мозги» принтера находятся не в его корпусе, а в драйвере. Соответственно, даже простейшие события, вроде «конец бумаги» или «принтер включен» должен кто-то отслеживать. Роль такого бдительного стража играет демон ccpd, который отслеживает события и организует работу всех компонентов драйвера для нормальной работы принтера. Поэтому ccpd и должен быть постоянно запущен.
Важно: Если принтер нормально печатал, а потом вдруг перестал реагировать на попытки печатать, в первую очередь проверьте командой ps fax | grep ccpd, запущен ли ccpd.
На заметку: если компьютер долго выключается (замечено в KDE Plasma), нажмите ESCAPE после команды на выключение/перезагрузку. Вы увидите, что демон ccpd ждет аж целых 5 минут для своего завершения. Это явление не исследовано, так как проявляется не всегда. Как врЕменная мера (до выяснения) — я просто выключаю компьютер кнопкой. Или, если не собираемся в ближайшее время печатать (дома это бывает нечасто), можно через YAST перевести службу ccpd в неактивный режим и запускать только при надобности. Тогда с выключением никаких особенностей нет.

В качестве шпаргалки:

/etc/init.d/cups restart
lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59687 -E
ccpdadmin -p LBP1120 -o /dev/usb/lp0

На заметку: если у вас к компьютеру ранее подключен другой принтер (как у меня — еще струйная МФУшка Epson), то в приведенных выше командах используем следующий номер порта lp — /dev/usb/lp1

Виталий