На сайте производителя имеется версия 2.70 для 32-битных и 64-битных версий Debian GNU/Linux.
Скачиваем оттуда файл Linux_CAPT_PrinterDriver_V270_uk_EN.tar.gz, распаковываем его, переходим в каталог Linux_CAPT_PrinterDriver_V270_uk_EN/64-bit_Driver/Debian
(в случае 64-битной операционной системы), и выполняем установку драйвера:
sudo dpkg -i cndrvcups-capt_2.70-1_amd64.deb cndrvcups-common_3.20-1_amd64.deb
Скачиваем архив с драйверами с сайта Canon:
Распаковываем архив:
tar xvf Linux_CAPT_PrinterDriver_V240_uk_EN/Src/cndrvcups-common-2.40-1.tar.gz cd cndrvcups-common-2.40
Заменяем в файле debian/control строку
Architecture: i386
на
Architecture: amd64
Затем запускаем создание пакета:
dpkg-buildpackage -B
Переходим в каталог уровнем выше (по умолчанию пакет создаётся там) и устанавливаем пакет:
cd .. dpkg -i cndrvcups-common_2.40-1_amd64.deb
Собираем пакет cndrvcups-capt:
tar xvf Linux_CAPT_PrinterDriver_V240_uk_EN/Src/cndrvcups-capt-2.40-1.tar.gz cd cndrvcups-capt-2.40
Редактируем файлы в соответствии со следующим diff-файлом:
diff -Nuar cndrvcups-capt-2.40.orig/cngplp/configure.in cndrvcups-capt-2.40/cngplp/configure.in --- cndrvcups-capt-2.40.orig/cngplp/configure.in 2011-05-26 05:21:44.000000000 +0300 +++ cndrvcups-capt-2.40/cngplp/configure.in 2012-11-05 01:59:00.000000000 +0200 @@ -35,7 +35,7 @@ AM_GLIB_GNU_GETTEXT AM_DISABLE_STATIC -AC_PROG_LIBTOOL +AM_PROG_LIBTOOL AC_OUTPUT([Makefile cngplpmod/Makefile diff -Nuar cndrvcups-capt-2.40.orig/debian/control cndrvcups-capt-2.40/debian/control --- cndrvcups-capt-2.40.orig/debian/control 2011-07-05 10:37:16.000000000 +0300 +++ cndrvcups-capt-2.40/debian/control 2012-11-05 01:59:00.000000000 +0200 @@ -6,7 +6,7 @@ Standards-Version: 3.6.1 Package: cndrvcups-capt -Architecture: i386 +Architecture: i386 amd64 Depends: ${shlibs:Depends}, ${misc:Depends}, cndrvcups-common (>= 2.40) Replaces: cndrvcups-lipslx, cndrvcups-ufr2-uk, cndrvcups-ufr2-us Description: Canon CAPT Printer Driver for Linux diff -Nuar cndrvcups-capt-2.40.orig/debian/rules cndrvcups-capt-2.40/debian/rules --- cndrvcups-capt-2.40.orig/debian/rules 2011-08-02 11:04:27.000000000 +0300 +++ cndrvcups-capt-2.40/debian/rules 2012-11-05 01:59:00.000000000 +0200 @@ -169,7 +169,7 @@ # dh_python # dh_makeshlibs dh_installdeb - dh_shlibdeps + dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info dh_gencontrol dh_md5sums dh_builddeb diff -Nuar cndrvcups-capt-2.40.orig/statusui/src/ppapdata.c cndrvcups-capt-2.40/statusui/src/ppapdata.c --- cndrvcups-capt-2.40.orig/statusui/src/ppapdata.c 2011-10-27 05:03:50.000000000 +0300 +++ cndrvcups-capt-2.40/statusui/src/ppapdata.c 2012-11-05 01:59:00.000000000 +0200 @@ -24,6 +24,7 @@ #include <string.h> #include <cups/cups.h> +#include <cups/ppd.h> #include "uimain.h" #include "cnsktmodule.h" diff -Nuar cndrvcups-capt-2.40.orig/statusui/src/uimain.c cndrvcups-capt-2.40/statusui/src/uimain.c --- cndrvcups-capt-2.40.orig/statusui/src/uimain.c 2011-10-27 04:57:32.000000000 +0300 +++ cndrvcups-capt-2.40/statusui/src/uimain.c 2012-11-05 01:59:00.000000000 +0200 @@ -29,6 +29,7 @@ #include "interface.h" #include "data_process.h" #include <cups/cups.h> +#include <cups/ppd.h> #define MAX_WORD_SIZE 512 #define LOCALE_STRING_JA "ja_JP.UTF-8"
Выходим из каталога и устанавливаем собранный пакет:
cd .. dpkg -i cndrvcups-capt_2.40-1_amd64.deb
ccpdadmin -p LBP3010 -o /dev/usb/lp0 mkdir /var/ccpd mkfifo /var/ccpd/fifo0 chown -R lp:lp /var/ccpd
или
/usr/sbin/lpadmin -p LBP3010 -m CNCUPSLBP3050CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
modprobe usblp ls -l /dev/usb/lp0 /etc/init.d/ccpd restart
Для автоматической загрузки модуля usblp
при запуске системы в Debian можно добавить этот модуль в список в файле
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. usblp
Чтобы CUPS запускался автоматически при загрузке системы, нужно включить для него автозапуск. В системах с systemd это можно сделать так:
sudo systemctl enable cups
В системах без systemd так:
sudo update-rc.d cups enable
Для того, чтобы обеспечить правильный запуск службы CCPD, нужно, чтобы она запускалась после CUPS и после загрузки модуля usblp
. Поэтому сценарий запуска, поставляемый производителем (до версии 2.70 – точно), нужно модифицировать следующим образом:
#!/bin/sh # startup script for Canon Printer Daemon for CUPS (ccpd) ### BEGIN INIT INFO # Provides: ccpd # Required-Start: kmod cups # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 1 # Short-Description: Canon Printer Daemon for CUPS (ccpd) # Description: Canon Printer Daemon for CUPS (ccpd) ### END INIT INFO #if [ `ps awx | grep cupsd | grep -v grep | wc -l` -eq 0 ]; then # while [ `ps awx | grep cupsd | grep -v grep | wc -l` -eq 0 ] # do # sleep 3 # done # sleep 5 #fi
Т.е. добавить в него заголовок, принятый в Debian для сценариев запуска служб, заключённый между строками
### BEGIN INIT INFO ... ### END INIT INFO
и закомментировать блок ожидания запуска службы CUPS, написанный разработчиками драйвера. Если его не закомментировать, на ряде систем это приведёт к очень долгому (если не бесконечному) ожиданию при загрузке системы. Возможно даже приведёт к тому, что система перестанет загружаться совсем.
После редактирования файла /etc/init.d/ccp
нужно обновить ссылки для автоматического запуска.
sudo update-rc.d ccpd remove sudo update-rc.d ccpd defaults