[Из песочницы] Установка принтеров Canon серии LBP в Ubuntu

Здравствуйте. После выхода в свет Ubuntu 12.04 в состав ее сборки вошли пакеты драйверов для принтеров Canon серии LBP. Но, все же при установке принтера в системе, драйвер отказывается работать корректно.

Всем заинтересованным данной проблемой прошу ознакомиться с инструкцией, в ходе выполнения которой все же удалось заставить фунционировать принтер модели Canon LBP 3010.

Инструкция так же будет справедлива и для других принтеров Canon следующих моделей:

LBP-1120, LBP-1210, LBP2900, LBP3000, LBP3050/LBP3018/LBP3010, LBP3150/LBP3108/LBP3100, LBP3200, LBP3210, LBP3250, LBP3300, LBP3310, LBP3500, LBP5000, LBP5050, LBP5100, LBP5300, LBP6018/LBP6000, LBP6300dn, LBP7200C, LBP9100Cdn.

Шаг 1. Прежде всего нужно скачать драйвер со страницы загрузки Canon.

Шаг 2. Распакуйте скачанный архив. Установите содержащиеся в нем пакеты в указанной последовательности:

sudo dpkg -i cndrvcups-common_2.40-1_i386.deb

udo dpkg -i cndrvcups-capt_2.40-1_i386.deb

Шаг 3. Перезапуск CUPS
sudo service cups restart

Шаг 4. Регистрация принтера в спулере печати:
sudo /usr/sbin/lpadmin -p [название принтера] -m [название файла PPD] -v ccp://localhost:59687 -E

Например, для принтера LBP-1120 строка будет выглядеть так:
sudo /usr/sbin/lpadmin -p LBP3010 -m CNCUPSLBP3050CAPTK.ppd -v ccp://localhost:59687 -E

Названия соответствующих файлов PPD:
LBP-1120: CNCUPSLBP1120CAPTK.ppd
LBP-1210: CNCUPSLBP1210CAPTK.ppd
LBP2900: CNCUPSLBP2900CAPTK.ppd
LBP3000: CNCUPSLBP3000CAPTK.ppd
LBP3050/LBP3018/LBP3010: CNCUPSLBP3050CAPTK.ppd
LBP3150/LBP3108/LBP3100: CNCUPSLBP3150CAPTK.ppd
LBP3200: CNCUPSLBP3200CAPTK.ppd
LBP3210: CNCUPSLBP3210CAPTK.ppd
LBP3250: CNCUPSLBP3250CAPTK.ppd
LBP3300: CNCUPSLBP3300CAPTK.ppd
LBP3310: CNCUPSLBP3310CAPTK.ppd
LBP3500: CNCUPSLBP3500CAPTK.ppd
LBP5000: CNCUPSLBP5000CAPTK.ppd
LBP5050 series: CNCUPSLBP5050CAPTK.ppd
LBP5100: CNCUPSLBP5100CAPTK.ppd
LBP5300: CNCUPSLBP5300CAPTK.ppd
LBP6018/LBP6000: CNCUPSLBP6018CAPTK.ppd
LBP6300dn: CNCUPSLBP6300CAPTK.ppd
LBP7200C series: CNCUPSLBP7200CCAPTK.ppd
LBP9100Cdn: CNCUPSLBP9100CCAPTK.ppd

Шаг 5. Регистрация принтера в демоне ccpd
sudo /usr/sbin/ccpdadmin -p [название принтера] -o [путь к печатающему устройству]

Например, для принтера LBP3010 строка будет выглядеть так:
sudo /usr/sbin/ccpdadmin -p LBP3010 -o /dev/usb/lp0

Если подключаем сетевой принтер, то нужно указать IP-адрес, например:
sudo /usr/sbin/ccpdadmin -p LBP3010 -o net:172.168.0.1

Шаг 6. Разрешение загрузки модуля usblp, установка пакета
kdesudo

sudo apt-get install kdesudo

kdesudo kate /etc/modprobe.d/blacklist-cups-usblp.conf

Комментирование строки blacklist usblp:
sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf

Устанавливаем в начале строки #, после этого выполняем:
modprobe usblp

Шаг 7. После этого следует запустить демон ccpd
sudo service ccpd start

После этого принтер должен заработать.

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

sudo update-rc.d ccpd defaults 20

Затем прописываем в /etc/rc.local:
kdesudo kate /etc/rc.local

Перед exit 0 добавляем строку /etc/init.d/ccpd restart
Если все команды выполнены успешно, принтер должен работать.

Комментарии (5)

  • 11 октября 2016 в 01:46

    0

    Вы в инструкции используете явно KDE, это видно по редактору) Не лишним тогда уже будет упомянуть, если уж указываете команды, что всё то же самое делается и из консоли (sudo vim/emacs/nano/editor…), и из GTK+ (тот же gksudo gedit). А то ещё начитаются и пойдут кеды ставить)

  • 11 октября 2016 в 01:46

    +2

    Пройдусь небольшой критикой:


    Шаг 3. Перезапуск CUPS
    sudo service cups restart

    Wrong! Правильно использовать в зависимости от системы инициализации вашей системы, соответственно:
    systemd: sudo systemctl restart cups.service
    upstart: sudo initctl start cups или sudo start cups
    SysV: sudo /etc/init.d/cups restart


    sudo apt-get install kdesudo
    kdesudo kate /etc/modprobe.d/blacklist-cups-usblp.conf
    комментирование строки blacklist usblp
    sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf

    Тут какая-то злобная копипаста, лучше бы прямо указали, что в kde используйте kdesudo вместо sudo. А то кто-нибудь слепо поведется и затянет себе метров на 200 пакетов в не-kde DE устанавливая kdsudo.


    Конечно на вкус и цвет все фломастеры разные, но если от консоли кровь не идет из глаз, то для комментирования 1 строки всяко лучше использовать:
    sudoedit /etc/modprobe.d/blacklist-cups-usblp.conf или sudo -e /etc/modprobe.d/blacklist-cups-usblp.conf


    Шаг 7. После этого следует запустить демон ccpd
    sudo service ccpd start

    см.выше


    sudo update-rc.d ccpd defaults 20
    Затем прописываем в /etc/rc.local
    kdesudo kate /etc/rc.local
    перед exit 0 добавляем строку /etc/init.d/ccpd restart

    Wrong! Мы и так добавили в автозапуск update-rc.d. Зачем еще прописывать в /etc/rc.local? Ну и как вариант, может стоит посмотреть в сторону upstart или systemd?


    Если не секрет какая у вас версия Ubuntu?

    • 11 октября 2016 в 04:24

      +1

      > sudo service cups restart
      Случайно это не является ли универсальным способом, не зависимым от системы инициализации?

      А если и нет, то уж по крайней мере в Ubuntu «sudo service» является предпочтительным способом по сравнению с »/etc/init.d/…» (по крайней мере, в определённых версиях Ubuntu оно ругалось при попытке манипулировать некоторыми скриптами вторым способом и прямым текстом советовало первый — к сожалению, не знаю, с чем это связано).

  • 11 октября 2016 в 08:29

    +1

    Случайно это не является ли универсальным способом, не зависимым от системы инициализации?

    Короткий ответ нет. Более длинный кроется в man service


    man service
    service(8)                System Managers Manual                 service(8)
    NAME
           service - run a System V init script
    DESCRIPTION
           service runs a System V init script or upstart job in as predictable an
           environment as possible, removing most environment variables  and  with
           the current working directory set to /.

    Правильно будет использовать ту систему инициализации, которая является основной в Вашей системе. Если говорим про Ubuntu, то для 15.04+ то это systemd, если ранние версии то upstart. Конечно отдельное спасибо надо сказать мейнтейнерам Debian, которые так и не осилили переписать скрипты на соответствующие системы инициализации.

    • 11 октября 2016 в 08:34

      0

      По версиям с upstart — рекомендую к прочтению.
      https://help.ubuntu.com/community/UbuntuBootupHowto

© Habrahabr.ru