Canon LBP2900 vs Ubuntu 9.10 Karmic x86-64

Давно уже были планы подключить неработающий у меня принтер Canon LBP2900, да все руки не доходили. Наконец приспичило..

В репозиториях Ubuntu НЕТ драйвера именно для этого принтера. От чужих не подходит. Собственно изучение проблемы стоит начинать с этой странички: https://help.ubuntu.com/community/HardwareSupportComponentsPrinters/CanonPrinters/Canon_LBP_2900
Я, потратив на все действия около 30 минут, хочу выложить подробный мануал, как это сделать быстро, и не перелопачивая десяток сайтов.

Итак:
0. Скачиваем и распаковываем исходники драйвера от Canon.

cd ~
mkdir capt
cd capt
wget http://gdlp01.c-wss.com/gds/5/0900007725/07/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz
tar xfz CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz
cd  CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/src/
tar xfz cndrvcups-common-1.90-1.tar.gz
tar xfz cndrvcups-capt-1.90-1.tar.gz

1. Устанавливаем зависимости

sudo apt-get install build-essential gettext libtool libxml2-dev libcups2-dev
wget http://security.ubuntu.com/ubuntu/pool/universe/c/cups/libcupsys2_1.3.9-17ubuntu3.4_all.deb
sudo dpkg -i libcupsys2_1.3.9-17ubuntu3.4_all.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
sudo dpkg -i libstdc++5_3.3.6-17ubuntu1_amd64.deb

2. Собираем и устанавливаем cndrvcups-common-1.90

cd cndrvcups-common-1.90
nano ./debian/control

Заменяем "Architecture: i386" на "Architecture: amd64"

dpkg-buildpackage
sudo dpkg -i ../cndrvcups-common_1.90-1_amd64.deb
cd ..

3. Собираем и устанавливаем cndrvcups-capt-1.90

cd cndrvcups-capt-1.90
nano ./debian/control

Заменяем "Architecture: i386" на "Architecture: amd64"

nano ./debian/rules

Заменяем (закомментируем)  "    dh_shlibdeps" на "#    dh_shlibdeps"

dpkg-buildpackage
sudo dpkg -i ../cndrvcups-capt_1.90-1_amd64.deb
cd ..

4. Конфигурируем

sudo nano /etc/init.d/ccpd

Вставляем следующее содержимое:

#!/bin/sh
# ccpd startup script for Canon Printer Daemon for CUPS
# Modified for Debian GNU/Linux
# by Raphael Doursenaud <rdoursenaud@free.fr>.
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
case $1 in
start)
echo -n "Starting $DESC: $NAME"
start-stop-daemon --start --quiet --exec $DAEMON
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
echo "."
;;
status)
echo "$DESC: $NAME:" `pidof $NAME`
;;
restart)
echo -n "Restarting $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --exec $DAEMON
echo "."
;;
*)
echo "Usage: ccpd {start|stop|status}"
exit 1
;;
esac
exit 0

Далее:

sudo /etc/init.d/cups restart
/usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
/usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0
sudo /etc/init.d/ccpd restart

! Если у вас другая модель принтера, PPD файлик нужен будет подставить соответствующий (CNCUPSLBPxxxxCAPTK.ppd)

5. Добавим службу в автозагрузку.

sudo nano /etc/rc.local

Добавьте следующую строку:

/etc/init.d/ccpd start

Переподключите принтер, печатайте :)

upd:  lbp 2900 & ubuntu lucid x86 over windows samba howto.

Коментарі

  1. С годом Тигра!
    Извините, я новачек в Linux.
    Не могли бы Вы мне обьяснить более подробно пункт 2-3.
    Вот, что имеем:
    root@janeshen-desktop:~/capt/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src/cndrvcups-common-1.90# dpkg-buildpackage
    dpkg-buildpackage: set CFLAGS to default value: -g -O2
    dpkg-buildpackage: set CPPFLAGS to default value:
    dpkg-buildpackage: set LDFLAGS to default value: -Wl,-Bsymbolic-functions
    dpkg-buildpackage: set FFLAGS to default value: -g -O2
    dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
    dpkg-buildpackage: source package cndrvcups-common
    dpkg-buildpackage: source version 1.90-1
    dpkg-buildpackage: source changed by Canon Inc.
    dpkg-buildpackage: host architecture amd64
    dpkg-checkbuilddeps: Unmet build dependencies: libglib2.0-dev
    dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting.
    dpkg-buildpackage: warning: (Use -d flag to override.)
    root@janeshen-desktop:~/capt/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src/cndrvcups-common-1.90# sudo dpkg -i ~/capt/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src/cndrvcups-common-1.90#
    dpkg: error processing /root/capt/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src/cndrvcups-common-1.90# (--install):
    cannot access archive: No such file or directory
    Errors were encountered while processing:
    /root/capt/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src/cndrvcups-common-1.90#

    ВідповістиВидалити
  2. Судя по строчке "dpkg-checkbuilddeps: Unmet build dependencies: libglib2.0-dev"
    от вас требуют доустановить libglib2.0-dev

    apt-get libglib2.0-dev поможет.

    ВідповістиВидалити
  3. Спасибо, это как раз сделала.+ Доустановила компоненты gtk 2.0. Использовала dpkg-buildpackage, но в итоге cndrvcups-common_1.90-1_amd64.deb не создался.
    В конце получила:
    dpkg-deb: building package `cndrvcups-common' in `../cndrvcups-common_1.90-1_amd64.deb'.
    dpkg-genchanges >../cndrvcups-common_1.90-1_amd64.changes
    dpkg-genchanges: including full source code in upload
    dpkg-buildpackage: full upload; Debian-native package (full source is included).
    ls показал:
    buftool c3plmod_ipc cngplp cpca debian LICENSE-common-1.90DE.txt LICENSE-common-1.90FR.txt LICENSE-common-1.90J.txt Makefile
    build-stamp cndrvcups-common.spec configure-stamp data libs LICENSE-common-1.90E.txt LICENSE-common-1.90IT.txt LICENSE-common-1.90SP.txt README

    Сейчас работаю над вопросом: "dpkg-genchanges: including full source code in upload".
    Если сможете помочь, заранее благодарна.

    ВідповістиВидалити
  4. В конце лога ошибки не вижу, возможно нужен весь лог.

    Обрати внимание, что пакет создается не в каталоге с сорцами, а в каталоге на уровень выше.

    ВідповістиВидалити
  5. Вы упоминали о логе (полном варианте)... Он слишком длинный. Там очень много важных вещей.
    Полный лог находится здесь:
    http://harrier.ho.ua/log.txt
    Знаю...много инфы...но имеем - что имеем...
    А в каталоге на уровень выше деб-пакета тоже нет... Что делать - даже не знаю.

    ВідповістиВидалити
  6. Чувак ты крут и респектуха тебе

    ВідповістиВидалити
  7. только опечатку видел там где init.d

    ВідповістиВидалити
  8. А под Windows7 64 не подойдет.

    ВідповістиВидалити
  9. Помогите пожалуйста!
    После выполнения нулевого пункта появляется следующие!!!
    -------------------------------------
    polibyt@inet:~$ cd ~
    polibyt@inet:~$ mkdir capt
    mkdir: невозможно создать каталог `capt': File exists
    polibyt@inet:~$ cd capt
    polibyt@inet:~/capt$ wget http://gdlp01.c-wss.com/gds/5/0900007725/07/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz
    --2010-01-24 14:18:33-- http://gdlp01.c-wss.com/gds/5/0900007725/07/CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz
    Преобразование адреса gdlp01.c-wss.com... 213.155.158.11, 213.155.158.83
    Устанавливается соединение с gdlp01.c-wss.com|213.155.158.11|:80... соединились.
    Запрос HTTP послан, ожидание ответа... 200 OK
    Длина: 6777311 (6,5M) [application/x-gzip]
    Сохраняется в каталог: `CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz.2'.

    100%[======================================>] 6 777 311 121K/s в 55s

    2010-01-24 14:19:29 (121 KB/s) - `CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz.2' сохранён [6777311/6777311]

    polibyt@inet:~/capt$ tar xfz CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gzpolibyt@inet:~/capt$ cd CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/src/
    bash: cd: CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/src/: No such file or directory
    polibyt@inet:~/capt$ tar xfz cndrvcups-common-1.90-1.tar.gz
    tar: cndrvcups-common-1.90-1.tar.gz: Невозможно open: No such file or directory
    tar: Неисправимая ошибка: завершение работы
    tar: Child returned status 2
    tar: Выход с ошибкой из-за предидущих ошибок
    polibyt@inet:~/capt$ tar xfz cndrvcups-capt-1.90-1.tar.gz
    --------------------------------------------
    что мне с этим делать....
    Принтер срочно нужен....горю...

    ВідповістиВидалити
  10. Анонимный, Вы скачали файл CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz.2, а распаковать пытаетесь файл CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz

    ВідповістиВидалити
  11. привет. У меня не создается папка после команды
    cd ~
    mkdir capt

    ВідповістиВидалити
  12. Unbeliever, у меня такой же как и у Вас вариант: система Ubuntu 9.10 Karmic amd64 с Canon LBP 2900.
    Точно руководствуясь Вашим мануалом, установил свой принтер. При этом у меня установилось 2 принтера: LBP2900 ccp:/var/ccpd/fifo0 на и LBP2900-2 на usb://Canon/LBP2900. Попробовал печатать - нулевой результат. Перезагрузил cups, а потом компьютер - снова не печатает.
    Однако, при попытке печати, служба вносит в очередь документ, принтер его обрабатывает, но печатать отказывается. При этом статус одного принтера (LBP2900-2) "Printer is on line now", второго (LBP2900) - "Обрабатывает - ccp: send_data error, exit"

    Из-за этой, с первого взгляда, мелочи мне прийдется перейти с Linux опять на Windows. Сами понимаете непрактичность второй системы. Подскажите, пожалуйста, что делать. Прошу срочно ответить, ведь времени на принтер и так уж много потратил и, можна сказать, что бестолку.

    ВідповістиВидалити
  13. Второй принтер нужно удалить и сделать все заново. У меня через несколько раз заработало.

    Уточнение, Вас может быть придется перейти с Linux amd64 на Windows x86. Господа барыги в Canon так и не удосужились написать драйвер для этого принтера для Windows x64. Такой же кривой драйвер написан и для x64 Linux. Вопросы по работает или не работает больше нужно адресовать им. Господа барыги из Кэнон считают, что тем у кого Windows или Linux x64 могут пойти и купить принтер классом повыше, примерно так отвечая на запросы.

    ВідповістиВидалити
  14. Привіт!
    Дякую за поради, але ніяк не можу розрулити один деп
    checking for PACKAGE... configure: error: Package requirements (gtk+-2.0 >= 2.0.0) were not met:

    No package 'gtk+-2.0' found

    і головне такого пакету немає(
    є якісь пропозиції?
    наперед вдячний

    ВідповістиВидалити
  15. Анонимный, возможно хотят libgtk2.0-0

    ВідповістиВидалити
  16. Можно уточнить по ситуации, когда при включении принтера он определяется как еще один принтер (подключен к usb://Canon/ххх). При этом ни заданый по указанному алгоритму. ни определившийся не печатает. Авто-определившийся делает вид что напечатал. Заданный в ручную висит в очереди в состонии PRocessing вечно (до уделния или выполения команды cat /var/ccpd/fifo0, в резульате которой получаю строку N2**** Unable to open the initial device, quitting.
    N. После этого задание считается выполеным).
    Уточните что значит "сделать заново": удаляли и устанвливали принтеры (ccpdadmin/lpadmin) или удалили и снова ставили пакеты или и пересобирали пакеты ?

    ВідповістиВидалити
  17. Да, да. Та же ситуация :( "Сделать заново" вариант номер 1.

    ВідповістиВидалити
  18. при сборке cndrvcups-capt-1.90

    dpkg-shlibdeps: ошибка: не удалось найти библиотеку libstdc++.so.5, необходимую для debian/cndrvcups-capt/usr/bin/captmoncnaba
    (формат ELF: 'elf32-i386'; RPATH: '').
    Замечание: библиотеки не ищутся в других двоичных пакетах, в которых нет файла shlibs или symbols.
    Чтобы помочь dpkg-shlibdeps найти персональные библиотеки, вы можете настроить LD_LIBRARY_PATH.
    dh_shlibdeps: dpkg-shlibdeps returned exit code 2
    make: *** [binary-arch] Ошибка 1
    dpkg-buildpackage: ошибка: fakeroot debian/rules binary возвратил код ошибки 2

    ВідповістиВидалити
  19. при сборке cndrvcups-capt-1.90

    dpkg-shlibdeps: ошибка: не удалось найти библиотеку libstdc++.so.5, необходимую для debian/cndrvcups-capt/usr/bin/captmoncnaba
    (формат ELF: 'elf32-i386'; RPATH: '').
    Замечание: библиотеки не ищутся в других двоичных пакетах, в которых нет файла shlibs или symbols.
    Чтобы помочь dpkg-shlibdeps найти персональные библиотеки, вы можете настроить LD_LIBRARY_PATH.
    dh_shlibdeps: dpkg-shlibdeps returned exit code 2
    make: *** [binary-arch] Ошибка 1
    dpkg-buildpackage: ошибка: fakeroot debian/rules binary возвратил код ошибки 2

    ВідповістиВидалити
  20. Вот вывод aptitude
    v libstdc++-dev
    i libstdc++5
    i libstdc++6
    p libstdc++6-4.1-dbg
    p libstdc++6-4.1-dev
    p libstdc++6-4.1-doc
    p libstdc++6-4.1-pic
    p libstdc++6-4.2-dbg
    p libstdc++6-4.2-dev
    p libstdc++6-4.2-doc
    p libstdc++6-4.2-pic
    p libstdc++6-4.3-dbg
    p libstdc++6-4.3-dev
    p libstdc++6-4.3-doc
    p libstdc++6-4.3-pic
    p libstdc++6-4.4-dbg
    i libstdc++6-4.4-dev
    p libstdc++6-4.4-doc
    p libstdc++6-4.4-pic

    ВідповістиВидалити
  21. http://agentzlerich.blogspot.com/2009/11/getting-32-bit-libstdcso5-in-karmic.html

    ВідповістиВидалити
  22. спасибо. но теперь вот это:
    dpkg-shlibdeps: ошибка: информация о зависимостях не найдена для /usr/lib/libcaiowrap.so.1 (используется debian/cndrvcups-capt/usr/bin/captmoncnaba).
    dh_shlibdeps: dpkg-shlibdeps returned exit code 2
    make: *** [binary-arch] Ошибка 1
    dpkg-buildpackage: ошибка: fakeroot debian/rules binary возвратил код ошибки 2

    ВідповістиВидалити
  23. Большое спасибо, с libcaiowrap.so.1 разобрался сам.

    ВідповістиВидалити
  24. Извинте, еще 1 вопрос про "сделать все заново":
    Когда у вас все заработало, при включении принтера перстал появляться новый, автоматически регисрируемый системой принтер ?

    ВідповістиВидалити
  25. Нет, не перестал :(
    Те действия, что нужно произвести для настройки "все заново" просто запихайте в скрипт и запускайте его когда перестает печатать.

    п.с. не покупайте кэнон, только ХП..

    ВідповістиВидалити
  26. А как собственно запихнуть всё это в скрипт? Я в Юбунту новичок. )))

    ВідповістиВидалити
  27. Те комманды, которые выполняете копируете в текстовый файл. В начале напишите #! /bin/sh. Даете право выполнения этому файлу (chmod +x ./filename) и можете запустить его (sh ./filename)

    ВідповістиВидалити
  28. checking for PACKAGE... configure: error: Package requirements (gtk+-2.0 >= 2.0.0) were not met
    в synaptic присутствует. правда у меня 32bit, но все равно где еще что посмотреть?

    ВідповістиВидалити
  29. Анонимный, посмотрите здесь http://unbelll.blogspot.com/2010/03/canon-lbp2900-and-ubuntu-1004-lucid-x86.html
    Тут для 32 бит, правда следующей версии. Но все должно быть одним и тем же.

    ВідповістиВидалити
  30. блин мне надо принтер запустить на зтой машине а не по сети

    ВідповістиВидалити
  31. Анонимный, настройка идентичная.

    ВідповістиВидалити
  32. Делал на 32-х разрядной убунте 9.10, поэтому не стал заморачиваться со сборкой дров версии 1.9, а взял готовые 1.8:
    http://files.canon-europe.com/files/soft31118/software/CAPTDRV180.tar.gz

    ccpd отваливается при выключении принтера. Решил так:
    создал файл /etc/udev/rules.d/80-lbp2900.rules следующего содержания:

    SUBSYSTEMS=="usb", KERNEL=="lp0", DRIVERS=="usblp", ATTRS{ieee1284_id}=="*LBP2900", RUN="/etc/init.d/ccpd restart", OPTIONS="last_rule"

    это позволяет ему запускаться при включении принтера. Идея отсюда: http://fedoraproject.org.ru/fedora_forum_bb/viewtopic.php?f=9&t=968

    ВідповістиВидалити
  33. Это кошмар какой то... все собралось и установилось и даже запустилось. При попытке печати пробной страницы ничего не печатается. Задание висит бесконечно, ссpd загружает на 100% проц.
    Команда
    captstatusui -P LBP3000
    не выдает никакого статуса для принтера. Перепробовал все что только можно, зхапускать, перезапускать, перезагружать, устанавливать, удалять и пр. танцы с бубном.

    ВідповістиВидалити
  34. Попробывал установить этот принтер для 10.04. Ничего не получилось. Во время сборки драйвера выдает следующее:
    dpkg-shlibdeps: ошибка: не удалось найти библиотеку libm.so.6, необходимую для debian/cndrvcups-common/usr/lib/libc3pl.so.0.0.1
    (формат ELF: 'elf32-i386'; RPATH: '').
    Замечание: библиотеки не ищутся в других двоичных пакетах, в которых нет файла shlibs или symbols.
    Чтобы помочь dpkg-shlibdeps найти персональные библиотеки, вы можете настроить LD_LIBRARY_PATH.
    dh_shlibdeps: dpkg-shlibdeps -Tdebian/cndrvcups-common.substvars debian/cndrvcups-common/usr/lib/libcnlbcm.so.1.0 debian/cndrvcups-common/usr/lib/libcanon_slim.so.1.0.0 debian/cndrvcups-common/usr/lib/libcaiousb.so.1.0.0 debian/cndrvcups-common/usr/lib/libcnpk.so.1.0.0 debian/cndrvcups-common/usr/lib/libcnaccm.so.1.0 debian/cndrvcups-common/usr/lib/libc3pl.so.0.0.1 debian/cndrvcups-common/usr/lib/libcanonc3pl.so.1.0.0 debian/cndrvcups-common/usr/lib/libcaepcm.so.1.0 debian/cndrvcups-common/usr/lib/libcaiowrap.so.1.0.0 debian/cndrvcups-common/usr/bin/cngplp debian/cndrvcups-common/usr/bin/cnpkmodule debian/cndrvcups-common/usr/bin/cnjatool debian/cndrvcups-common/usr/bin/c3pldrv returned exit code 2
    make: *** [binary-arch] Ошибка 9
    dpkg-buildpackage: ошибка: fakeroot debian/rules binary возвратил код ошибки 2

    Надеюсь на помощь.

    ВідповістиВидалити
  35. Идем на packages.ubuntu.com и ищем по содержимому "libm.so.6". Нашлись следующий пакеты, которые содержат данный файл: libc6, libc6-i386, libc6-amd64

    ВідповістиВидалити
  36. >Евгений on среда, Февраль 24, 2010 4:27:00 PM
    >Большое спасибо, с libcaiowrap.so.1 разобрался сам.

    Подскажите пожалуйста, а то у меня точно такая же ошибка сейчас.

    ВідповістиВидалити
  37. Извините, но у меня вот что получается, когда введу пароль:
    v@vv:~$ sudo /etc/init.d/cups restart
    [sudo] password for v:
    Sorry, try again.
    [sudo] password for v:
    Спасибо
    novs@voliacable.com

    ВідповістиВидалити
  38. Так пароль наверное неправильный :)

    ВідповістиВидалити

Дописати коментар

Популярні публікації