Это старая версия документа.
Содержание
Установка принтеров Canon семейства CAPT
Тестировалось на LBP3010.
Теоретически должны работать все принтеры серии LBP начиная с LBP810 и заканчивая LBP9100.
Архитектура x86 (32-бит)
1.Включаем принтер
2.Устанавливаем драйвер: Linux CAPT Printer Driver v2.40
Устанавливаем недостающую библиотеку:
sudo apt-get install libglade2-0
Распаковываем архив с драйвером и переходим в директорию 32-bit_Driver/Debian
Устанавливаем пакеты в соответствующем порядке:
cndrvcups-common_2.40-1_i386.deb
cndrvcups-capt_2.40-1_i386.deb
3.Регистрируем принтер:
Название ppd для своего принтера берем отсюда:
Printer Name | PPD File Name |
---|---|
LBP9100C | CNCUPSLBP9100CCAPTK.ppd |
LBP7200C series | CNCUPSLBP7200CCAPTK.ppd |
LBP7200Cdn (network mode) | CNCUPSLBP7200CCAPTK.ppd |
LBP6300 | CNCUPSLBP6300CAPTK.ppd |
LBP6200 | CNCUPSLBP6200CAPTK.ppd |
LBP6000 LBP6018 | CNCUPSLBP6018CAPTK.ppd |
LBP5300 | CNCUPSLBP5300CAPTK.ppd |
LBP5100 | CNCUPSLBP5100CAPTK.ppd |
LBP5050 series | CNCUPSLBP5050CAPTK.ppd |
LBP5000 | CNCUPSLBP5000CAPTK.ppd |
LBP3500 | CNCUPSLBP3500CAPTK.ppd |
LBP3310 | CNCUPSLBP3310CAPTK.ppd |
LBP3300 | CNCUPSLBP3300CAPTK.ppd |
LBP3250 | CNCUPSLBP3250CAPTK.ppd |
LBP3210 | CNCUPSLBP3210CAPTK.ppd |
LBP3200 | CNCUPSLBP3200CAPTK.ppd |
LBP3150 / LBP3108 / LBP3100 | CNCUPSLBP3150CAPTK.ppd |
LBP3100 / LBP3108 / LBP3150 | CNCUPSLBP3150CAPTK.ppd |
LBP3010 / LBP3018 / LBP3050 | CNCUPSLBP3050CAPTK.ppd |
LBP3000 | CNCUPSLBP3000CAPTK.ppd |
LBP2900 | CNCUPSLBP2900CAPTK.ppd |
LBP-1210 | CNCUPSLBP1210CAPTK.ppd |
LBP-1120 | CNCUPSLBP1120CAPTK.ppd |
LBP-810 | CNCUPSLBP1120CAPTK.ppd |
================================= | ================================= |
sudo /usr/sbin/lpadmin -p LBP**** -m CNCUPSLBP****CAPTK.ppd -v ccp://localhost:59787 -E
sudo /usr/sbin/ccpdadmin -p LBP**** -o /dev/usb/lp0
Только для 11.10:
sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf
Закомментировать строку blacklist usblp, поставив в начале строки #
modprobe usblp
4.Перезагружаем ccpd:
sudo /etc/init.d/ccpd restart
5.Завершаем настройку:
Переподключаем USB принтера;
Заходим в «Параметры системы» → «Печать»;
Жмем правой кнопкой мыши на принтере (на котором стоит зеленая галочка) и снимаем галочку «Включен»;
Жмем правой кнопкой мыши на принтере (на котором нет зеленой галочки) и выбираем «Использовать по умолчанию»;
Принтер должен работать. Пробуем.
6.Добавляем принтер в автозагрузку:
sudo update-rc.d ccpd defaults 20
sudo gedit /etc/rc.local
перед «exit 0» добавляем строки:
/etc/init.d/ccpd start /etc/init.d/ccpd restart
Перезагружаем пк и пробуем печать.
64 бит
- Установка драйвера. Добавим PPA:
sudo add-apt-repository ppa:michael-gruz/canon
Подмена кодового имени дистрибутива
Для Ubuntu 12.04 LTS (Precise Pangolin): | Для Ubuntu 12.10 (Quantal Quetzal): |
Откройте для редактирования файл: | |
---|---|
sudo gedit /etc/apt/sources.list.d/michael-gruz-canon-precise.list | sudo gedit /etc/apt/sources.list.d/michael-gruz-canon-quantal.list |
Замените в содержании этого файла: | |
precise на natty | quantal на natty |
Сохраните файл и закройте редактор.
- Редактируем скрипт демона
ccpd
sudo gedit /etc/init.d/ccpd
Заменяем все содержимое скрипта следующим:
### BEGIN INIT INFO # Provides: ccpd # Required-Start: $local_fs $remote_fs $syslog $network $named # Should-Start: $ALL # Required-Stop: $syslog $remote_fs # Default-Start: 2 3 # Default-Stop: 0 1 4 5 6 # Description: Start Canon Printer Daemon for CUPS ### END INIT INFO DAEMON=/usr/sbin/ccpd LOCKFILE=/var/lock/subsys/ccpd PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=ccpd DESC="Canon Printer Daemon for CUPS" test -f $DAEMON || exit 0 . /lib/lsb/init-functions case $1 in start) log_begin_msg "Starting $DESC: $NAME" start-stop-daemon --start --quiet --exec $DAEMON log_end_msg $? ;; stop) log_begin_msg "Stopping $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo --exec $DAEMON log_end_msg $? ;; status) echo "$DESC: $NAME:" `pidof $NAME` ;; restart) log_begin_msg "Restarting $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo --exec $DAEMON sleep 1 start-stop-daemon --start --quiet --exec $DAEMON log_end_msg $? ;; *) echo "Usage: ccpd {start|stop|restart|status}" exit 1 ;; esac exit 0
- Перезапускаем демон
ccpd
:
sudo /etc/init.d/ccpd restart
- Регистрируем принтер:
Имя PPD1) для своего принтера берём отсюда2):
|
|
Выполним команду
sudo /usr/sbin/lpadmin -p LBP**** -m CNCUPSLBP****CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
заменив LBP****
и CNCUPSLBP****CAPTK.ppd
на выбранное имя принтера и соответствующее PPD. Затем:
sudo mkdir /var/ccpd
В созданной папке организуем очередь FIFO:
sudo mkfifo /var/ccpd/fifo0
А демона ccpd
предоставим в распоряжение lp
:
sudo chown -R lp:lp /var/ccpd
Здесь не забудьте подставить нужное имя принтера:
sudo /usr/sbin/ccpdadmin -p LBP**** -o /dev/usb/lp0
Таким образом отправляемые на печать документы не будут передаваться через USB напрямую, а будут скапливаться в очереди печати FIFO, откуда их для передачи принтеру будет забирать демон ccpd
.
sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf
Закомментируйте строку blacklist usblp
, поставив в начале строки #
, затем
modprobe usblp
- Перезагружаем
ccpd
:
sudo /etc/init.d/ccpd restart
- Завершаем настройку. Переподключите кабель USB принтера. Чтобы выставить настроенный принтер «принтером по умолчанию» зайдите в «Параметры системы» → «Печать», ПКМ3) на активном принтере с зелёной галочкой и снимите галочку Включен. Затем ПКМ на настроенном принтере (без зелёной галочки) и щёлкните «Использовать по умолчанию».
- Готово! Пробуйте.
- По желанию добавляем принтер в автозагрузку:
sudo update-rc.d ccpd defaults 20
sudo gedit /etc/rc.local
перед exit 0
добавляем строки:
/etc/init.d/ccpd start /etc/init.d/ccpd restart
Перезагружаем компьютер и пробуем печатать.
Решение проблем
- Простаивает —
ccp send_data error, exit
sudo apt-get install libpopt0:i386 libtiff4:i386
cd /lib/i386-linux-gnu
sudo ln -s libpng12.so.0 libpng.so.3
cd /usr/lib/i386-linux-gnu
sudo ln -s libtiff.so.4 libtiff.so.3
Перезагружаем компьютер и пробуем печатать.
Старая инструкция
Модели принтеров
Данное руководство описывает подключение принтера Canon LBP-810, однако по заверениям Canon, он также работает с LBP3010/LBP3018/LBP3050, LBP3100/LBP3108/LBP3150, LBP3250, LBP3310, LBP5100, LBP5300, LBP3500, LBP3300, LBP5000, LBP3210, LBP3000, LBP2900, LBP3200, LBP-1120, LBP-1210.
Краткое описание работы
Суть работы драйвера такова - программа печатает не в порт USB, куда подключен принтер, а в очередь /var/ccpd/fifo0, а оттуда демон ccpd отправляет уже на принтер - в USB. Нам нужно указать серверу печати модель принтера, и что печатать нужно в /var/ccpd/fifo0, а демону принтера - порт принтера /dev/usblp0.
Устанавливаем
Скачиваем
http://support-asia.canon-asia.com/contents/ASIA/EN/0900772407.html
Лицензия не свободная, поэтому в дистрибутив драйвер добавлен быть не может.
Распаковываем
tar xvf Linux_CAPT_PrinterDriver*.tar.gz
Переходим в каталог с деб-файлами
cd Linux_CAPT_PrinterDriver*/32-bit_Driver/Debian
Для обладателей 64-битных машин
cd Linux_CAPT_PrinterDriver*/64-bit_Driver/Debian
Устанавливаем пакеты
sudo dpkg -i cndrvcups-common*.deb sudo dpkg -i cndrvcups-capt*.deb
Перегружаем CUPS(Common Unix Printing Service) - сервер печати
sudo /etc/init.d/cups restart
Регистрируем принтер (если у Вас другая модель - поменяйте цифры)
sudo /usr/sbin/lpadmin -p LBP810 -m CNCUPSLBP1120CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
Перезагружаем демон
sudo /etc/init.d/ccpd stop && sudo /etc/init.d/ccpd start
Регистрируем принтер в демоне ccpd (если у Вас другая модель - поменяйте цифры)
sudo /usr/sbin/ccpdadmin -p LBP810 -o /dev/usblp0
Снова перезагружаем демон
sudo /etc/init.d/ccpd stop && sudo /etc/init.d/ccpd start
Добавляем правило для включения/выключения драйвера при включении/выключении принтера
sudo -i echo 'KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="add", SYSFS{idVendor}=="04a9", \ RUN+="/bin/bash /etc/init.d/ccpd start"' >> /etc/udev/rules.d/85-canon-capt.rules echo 'KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/bash \ /etc/init.d/ccpd stop"' >> /etc/udev/rules.d/85-canon-capt.rules
Если у Вас более одного USB-принтера, не стоит выключать второй пока печатает Canon.
Еще можно увидеть окно статуса принтера, он пишет там, когда бумага закончилась, так
captstatusui -P LBP810
или так
captstatusui -P $(sed -n 's|<Printer\(.*\)>|\1|p' /etc/ccpd.conf | grep -v '#')
Ссылки
