Это старая версия документа.


Установка принтеров 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
LBP9100CCNCUPSLBP9100CCAPTK.ppd
LBP7200C seriesCNCUPSLBP7200CCAPTK.ppd
LBP7200Cdn (network mode)CNCUPSLBP7200CCAPTK.ppd
LBP6300CNCUPSLBP6300CAPTK.ppd
LBP6200CNCUPSLBP6200CAPTK.ppd
LBP6000 LBP6018CNCUPSLBP6018CAPTK.ppd
LBP5300CNCUPSLBP5300CAPTK.ppd
LBP5100CNCUPSLBP5100CAPTK.ppd
LBP5050 seriesCNCUPSLBP5050CAPTK.ppd
LBP5000CNCUPSLBP5000CAPTK.ppd
LBP3500CNCUPSLBP3500CAPTK.ppd
LBP3310CNCUPSLBP3310CAPTK.ppd
LBP3300CNCUPSLBP3300CAPTK.ppd
LBP3250CNCUPSLBP3250CAPTK.ppd
LBP3210CNCUPSLBP3210CAPTK.ppd
LBP3200CNCUPSLBP3200CAPTK.ppd
LBP3150 / LBP3108 / LBP3100CNCUPSLBP3150CAPTK.ppd
LBP3100 / LBP3108 / LBP3150CNCUPSLBP3150CAPTK.ppd
LBP3010 / LBP3018 / LBP3050CNCUPSLBP3050CAPTK.ppd
LBP3000CNCUPSLBP3000CAPTK.ppd
LBP2900CNCUPSLBP2900CAPTK.ppd
LBP-1210CNCUPSLBP1210CAPTK.ppd
LBP-1120CNCUPSLBP1120CAPTK.ppd
LBP-810CNCUPSLBP1120CAPTK.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 бит

  • Включаем принтер, затем устанавливаем необходимые библиотеки:
    sudo apt-get install ia32-libs

  • Установка драйвера. Добавим 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
sudo /etc/init.d/ccpd restart
  • Регистрируем принтер:

Имя PPD1) для своего принтера берём отсюда2):

Имя принтера Имя файла PPD
LBP9100CCNCUPSLBP9100CCAPTK.ppd
LBP7200C seriesCNCUPSLBP7200CCAPTK.ppd
LBP7200Cdn (network mode)CNCUPSLBP7200CCAPTK.ppd
LBP6300CNCUPSLBP6300CAPTK.ppd
LBP6200CNCUPSLBP6200CAPTK.ppd
LBP6000 LBP6018CNCUPSLBP6018CAPTK.ppd
LBP5300CNCUPSLBP5300CAPTK.ppd
LBP5100CNCUPSLBP5100CAPTK.ppd
LBP5050 seriesCNCUPSLBP5050CAPTK.ppd
LBP5000CNCUPSLBP5000CAPTK.ppd
LBP3500CNCUPSLBP3500CAPTK.ppd
LBP3310CNCUPSLBP3310CAPTK.ppd
———————————————— ————————————————
Имя принтера Имя файла PPD
LBP3300CNCUPSLBP3300CAPTK.ppd
LBP3250CNCUPSLBP3250CAPTK.ppd
LBP3210CNCUPSLBP3210CAPTK.ppd
LBP3200CNCUPSLBP3200CAPTK.ppd
LBP3150 / LBP3108 / LBP3100CNCUPSLBP3150CAPTK.ppd
LBP3100 / LBP3108 / LBP3150CNCUPSLBP3150CAPTK.ppd
LBP3010 / LBP3018 / LBP3050CNCUPSLBP3050CAPTK.ppd
LBP3000CNCUPSLBP3000CAPTK.ppd
LBP2900CNCUPSLBP2900CAPTK.ppd
LBP-1210CNCUPSLBP1210CAPTK.ppd
LBP-1120CNCUPSLBP1120CAPTK.ppd
LBP-810CNCUPSLBP1120CAPTK.ppd
———————————————— ————————————————

Выполним команду

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.

Примечание для Ubuntu 11.10 (Oneiric Ocelot)
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 '#')

Ссылки

1)
PostScript Printer Description — список расширений/P
2)
Если в строке перечислено несколько значений, достаточно выбрать лишь одно из них, все сразу использовать не нужно ;-)
3)
Щёлкните правой кнопкой мыши