О настройке принтера Canon LBP2900 в Debian 9 х64 :)

Автор Leo, 25 ноября 2017, 15:39:07

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Leo

Собственно, как обычно сабж не заводится по-человечески после апгрейда системы до 64-битной Debian 9 ;D
Давайте решим.
Для выполнения вы должны состоять в списке sudoers или просто откройте зайдите в терминал/консоль с правами root (команда su)

Итак, вот моя Инструкция по подключению Canon LBP2900 к Debian 9 (64 bit)

1. Удаляем system-config-printer-udev, после чего все принтеры подключаемые к системе будет возможно установить только вручную, не автоматически. (Это необходимо для того чтобы при подключении автоматически не появлялся новый дублирующий принтер с постфиксом 2 (3,4 и т.д.))
sudo apt purge system-config-printer-udev

2. Качаем драйвер Canon LBP2900 с азиатского оф.сайта Canon (на текущий момент это кривая поделка с версией 2.71, ну хоть на этом спасибо, не выкидывать же принтер в самом деле)
http://support-asia.canon-asia.com/contents/ASIA/EN/0100459601.html

3. Распаковываем полученный архив в отдельную директорию, открываем её в терминале и выполняем команду
sudo dpkg -i *.deb

4. Добавляем возможность установки пакетов другой архитектуры (т.к. драйвер кривой, не работает с x64 библиотеками и программами - нужны их 32-битные аналоги)
sudo dpkg --add-architecture i386

5. Устанавливаем необходимые 32-битные зависимости
sudo apt update
sudo apt install libc6:i386 libpopt0:i386 libatk1.0-0:i386 libcairo2:i386 libgtk2.0-0:i386 libpango1.0-0:i386 libstdc++6:i386 libxml2:i386


6. Создаём именованный канал для общения с принтером
sudo mkdir /var/ccpd
sudo mkfifo /var/ccpd/fifo0
sudo chown -R lp:lp /var/ccpd


7. Регистрируем принтер в системе печати
sudo lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

8. После подключения принтера смотрим как он определился в системе:
ls /dev/usb
* Команда выдаст что-то вроде lp0, lp1 или lp2 (цифра зависит от конфигурации железа), запомните вывод этой команды. Если устройств несколько - можете использовать команды dmesg или udevadm info --name=/dev/usb/lp0 --attribute-walk для того чтобы понять какое именно устройство вам необходимо.

9. Настраиваем драйвер на использование с конкретным принтером (значение lp - подставьте исходя из предыдущего пункта)
sudo ccpdadmin -p LBP2900 -o /dev/usb/lp0

10. Перезагружаем сервисы(демонов) системы печати и драйвера принтера
sudo service cupsd restart
sudo service ccpd start

* Можно глянуть что всё в порядке используя в командах параметр status вместо restart

11. Открываем монитор принтера, чтобы посмотреть что с ним - если в поле Message видим Ready to print значит всё ок.
captstatusui -P LBP2900
* Эту команду можно и нужно выполнять от обычного пользователя, монитор позволяет отменять задания, запускать принтер после того как закончилась бумага, удобно кинуть эту команду на кнопку в трей

12. Для того чтобы драйвер принтера запускался при старте системы нам нужен юнит systemd - для этого создаём файл /etc/systemd/system/ccpd.service
sudo nano /etc/systemd/system/ccpd.service
и сохраняем в нём
вот это (спасибо ferum =)

[Unit]
Description=CCPD Printing Daemon
Requires=cups.service
After=cups.service

[Service]
Type=forking
ExecStart=/usr/sbin/ccpd

TimeoutSec=30

[Install]
WantedBy=default.target
[свернуть]

13. Осталось только активировать юнит
sudo systemctl enable ccpd.service

На этом всё! Мучайтесь Пользуйтесь с удовольствием! Пишите ваши комменты :)
P.S.: Материалов как обычно перерыл кучу, поэтому все источники перечислять не буду - спасибо ferum'у, ребятам с убунтовского форума, ну и вот этому чуваку;D

ferum

По поводу юнита  он найден на лоре и слегка исправлен, по ходу не совсем корректно ( я не ас в  этом деле ) Конкретно секция install отвечает за то куда будет сделан линк ccpd.service. Мой принтер уехал учиться в институт вместе с debian 8 64 бит и дочкой....
При # systemctl enable ccpd.service
вылезала ошибка типа /etc/init.d/ccpd нельзя сделать по дефолту в rc.d и принтер после перезагрузки компьютера больше печатать не хотел.
По колхозному в восьмёрке пользовательские юниты кидались в /etc/systemd/system/ и линковались в /lib/systemd/system/
что я и сделал тупо ln -s после чего всё работает.
Есть драйвер прямой из личных запасов https://yadi.sk/d/FNkATA89meMfa
Русские дебианщики против цифрового слабоумия !

Leo

В секции Install WantedBy должно быть описано вот так:
WantedBy=default.target
Ну и там ещё /etc/init.d/ccpd пришлось добавить шапку - как-нибудь скину.
У меня всё работает и при перезагрузке и на systemctl enable ccpd.service не матюкается.

ferum

С вашего позволения исправил юнит в той теме. хотя бы для того что бы люди попавшие туда через поисковик не повторяли мою ошибку.
По ссылке на яндекс диск выше лежит 260 драйвер в нём добавлять шапку в /etc/init.d/ccpd мне не пришлось.
Русские дебианщики против цифрового слабоумия !

Leo

Вот шапка для /etc/init.d/ccpd

### BEGIN INIT INFO
# Provides:          Canon Printer Daemon for CUPS (ccpd)
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Starts Printer deamon ...
### END INIT INFO

Это если драйвер брать версии 2.71, в нём в ccpd нет этих строк, в результате на команду systemctl enable ccpd.service вываливаются матюки.
Добавьте это в начало файла после строки #!/bin/sh.

ferum

Уважаемый  Leo !
Не далее чем вчера воспользовался вашим мануалом для настройки своего древнего но ещё не убитого canon i-sensys LBP 3000 ( с новым китайским картриджем на борту, очень даже не плохо работает ) на свеже установленном  debian 9 x64. Наверное это лучший мануал на сегодняшний день, он вполне кащерный для опытного пользователя, но если им воспользуется новичёк, бездумно пользующийся копипастом, то его может постичь неудача.
Конкретно:
в пункт 3 хорошо бы добавить информацию о редактировании /etc/init.d/ccpd сразу же после установки пакетов драйвера,
в пункте 10 мы можем и должны перезагрузить только один сервис cups, правильно команда выглядит так:
sudo systemctl restart cups.service
Как вы справедливо заметили данная линейка принтеров всю дорогу работает очень криво с debian и дочерними дистрибутивами ( на удивление с mandriva и pclinuxos всё заводилось с пол оборота ) и порой неожиданно в статусе принтера возникает странная ошибка что то вроде " data error exist "
Самым простым способом является восстановление печати через веб интерфейс http://localhost:631/printers/
там же можно отменить ошибочно посланные задания и всё прочее. Взято кстати из вашего давнишнего мануала.
Для себя "на память" я сделал хоутушку на основе вашего поста и этих замечаний и вместе с архивом драйвера закину себе в облако.... пусть будет, а вы если есть желание можете поправить.
Русские дебианщики против цифрового слабоумия !

qwertKI

Я знаю только то, что ничего не знаю ...

laohu

Вроде, всё то же самое: https://underr.space/notes/it/it-0012

Печалит, что после перезагрузки не печатает.

Приходится переустанавливать:

su -

и вставить:

ccpdadmin -x LBP2900 && lpadmin -x LBP2900
lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:localhost:59687 -E
ccpdadmin -p LBP2900 -o /dev/usb/$(ls /dev/usb | grep lp)
ccpdadmin
systemctl restart cups.service & systemctl restart ccpd.service
lpadmin -d LBP2900



debian 10.1