Драйвера для canon lbp 810 linux

CAPT Linux driver


(Canon LBP-810, Canon LBP-1120)


I don’t maintain this driver anymore, please do not contact me about bugs or problems, unless you provide a fix.



Summary

Canon printer using CAPT protocol are GDI printers (or winprinters), using a proprietary and undocumented protocol, that I reverse engineered (see Tools and Techniques).

You can download here a driver for Linux.

You must use an USB cable to connect your printer. If it only has a parallel port, I’m sorry but my driver won’t work.

This driver should support both A4 and Letter sized paper, but I only tested it with A4 sized paper.

Download

Version 0.1 (August 17 2004): capt-0.1.tar.gz

Install notes

Follow the instructions presented on the README file in the package.

Supported printers and kernel versions

This driver has been reported to work with these kernel versions and distributions:

Kernel 2.6.7 or greater (Gentoo)

This driver works with these printers:

Canon LBP-1120 (it has been reported to work better than the official Canon drivers)

It should work with other CAPT printers, but it needs to be confirmed.

Unsupported kernel versions

This driver has been reported NOT to work with these kernel versions:

Tools and Techniques

Here is the way I followed to write this driver:

I installed the Windows driver on a XP computer, then ran and installed USB Snoop to catch USB transmission. And then followed these steps:

Disconnect the USB Printer cable

Print simple document (only a few points)

Connect the USB cable

Wait for the printer to start its engine

Then wait for the page to print, disconnect the USB cable, copy the log file somewhere else and delete the original.

If you only want to analyse the data sent to the printer before it effectively print the page, which is very useful if you don’t want to waste paper and let you analyse the compression protocol, just follow these steps after the printer engine starts:

Disconnect the USB cable

Remove the paper before the printer takes it.

Cancel the current job on Windows

Start to print the next page.

Thanks

Rildo Pragana, for his driver for another GDI winprinter (Samsung ML-85G), on which I based my work, and for his articles which helped me a lot.

My sister, Stéphanie Boichat, who was bored with rebooting on Windows to print her documents, lent me her Canon LBP-810, and gave me the opportunity to do this interesting work.

Emanuele Zattin, who reported that this driver works with the Canon LBP-1120.

Источник

Установка Canon LBP-800, 810 и 1120 в Jeder Linux

1. Драйвер Canon LBP-800, 810 и 1120 для Linux

Принтеры Canon LBP 810 и 1120 являются как и LBP-800 Windows-принтерами, но подключающимися через USB, а значит их работа в линукс не гарантирована, чтобы там не говорили красноглазики.

Тем не менее есть вероятность того, что этот принтер заработает в линукс. Драйвера для LBP-810 и 1120 одинаковы, т.к. эти принтеры одинаковы, для LBP-800 нужен отдельный драйвер.

Для начала скачайте драйвер на принтер и распакуйте его туда, откуда вы уже не будете его никуда перемещать:

Версия Ссылка Размер
Драйвер Canon LBP-800 для Linux Скачать 44.92 Kb
Драйвер Canon LBP-810 и 1120 для Linux Скачать 22.21 Kb

Теперь зайдите в распакованную папку с файлами драйвера и нажмите правой кнопкой мыши, выберите пункт Открыть в терминале (Open in Terminal) .
Откроется окно терминала.
Сначала наберите в нём следующую команду:

В терминале вылетит куча предупреждений и ошибок, ничего страшно, это же линукс

Набираем следующую команду

sudo make install

Теперь идём в Главное Меню->Система->Центр управления
Нас там интересует пункт Печать , запускаем его, затем в открывшемся окне выбираем пункт Создать (или Добавить , в зависимости от перевода и версии дистрибутива), точнее его выпадающий список, в котором надо выбрать пункт Принтер .

В открывшемся окне выберите ваш принтер и нажмите Далее .
В следующем окне вам нужно будет выбрать путь к PPD файлу драйвера для вашего принтера, который находится в распакованной вами папке с драйвером принтера, зайдите в папку ppd и укажите файл Canon-LBP-810-capt.ppd – этот файл подходит для обоих принтеров LBP-810 и LBP-1120, для LBP-800 укажите Canon-LBP-800.ppd .

Жмёте Вперёд и в окне Настройки принтеров появится ваш принтер.

Попробуйте напечатать что-нибудь. Если всё работает, то не дышите и больше ничего не делайте.

Читайте также:  What is windows picture manager

Если принтер после предыдущих действий не заработал, то запустите любой из установленных у вас в системе браузеров.

В адресную строку браузера введите http://localhost:631 и введите пароль на CUPS (логин и пароль от CUPS это логин и пароль администратора в вашей системе), затем зайдите в пункт Д обавление принтеров и групп .

Перейдите на вкладку Принтеры , возможно там уже есть ваш принтер.

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

Нажмите кнопку Изменить принтер, если у вас уже установился принтер.

Выберите тип подключения Паралельный порт на /dev/lp0 или parport0, главное не usb.

Нажимайте Далее и отвечайте на вопросы повторяя тоже самое, что делали и в Центре управления при добавлении принтера.

Укажите путь к файлу Canon-LBP-810-capt.ppd для LBP-810 или 1120 и Canon-LBP-800.ppd для LBP-800 .

Затем укажите настройки принтера и попробуйте распечатать тестовую страницу.

Закрывайте консоль и браузер. Принтер установлен

Рекомендую также прочитать статью про настройку Canon LBP-800 в OpenSUSE, возможно она вам чем-либо поможет, также там можно скачать Windows драйвер для Canon LBP-800.
Если у вас принтеры подключены через LPT порт, выставьте в BIOS параметр ECP+EPP для этого порта.

И вновь СПАСИБО. за дрова и подсказку.
С РОЖДЕСТВОМ!

///ответ jeder
Пожалуйста И вас.

Ребят, а вот такой вопрос: есть убунту 11.04 и принтер LPB-800, который подключен по LTP к машине на WindowsXP. Как заставить печатать по сети из убунты?

ответ jeder
Вот жеж задачка.
Попробуйте так. В XP поставьте настройку принтера, чтобы он был виден по сети, потом установите в убунте драйвера на принтер и полазьте в настройках CUPS и меню Принтеры в главном меню. Я эту затею хотел осуществить, но бросил, т.к. ничего не получалось. Дело в том, что принтер линуксом не поддерживается, поэтому многие настройки просто не работают, а для сетевой работы как-то надо установить сетевые дополнения для драйвера, а он виндовый. Две разных ОС, два разных драйвера.

Спасибо за ответ. Ну в ХР разшарил. Принтер по сети видится, с сетевых ХР машин печать нормальная. В убунте ставлю как “сетевой принтер виндоуз через самбу”. Он находится, просит указать драйвер. Я указываю файл PPD, идет установка, но выскакивает “Printer ‘Canon-LBP-800-2′ requires the ‘foo2lbp800-wrapper’ program but it is not currently installed. Please install it before using this printer.”. Дальше лажу в CUPS, там есть мой принтер но статус его Idle.
Вот еще такая информация доступна:
Driver: Canon LBP-800 Foomatic/lbp800 (recommended) (grayscale, 2-sided printing)
Connection: smb://MSHOME/SERVER/Canon20LBP-800
Defaults: job-sheets=none, none media=iso_a4_210×297mm sides=one-sided
По Вашему плану тоже не все гладко команда make install выполняется с 1-ой ошибкой.
Может есть еще какой способ принудительно установить этот foo2lpb бла-бла?
Пошел на техподдержку Убунты, там есть решение вопроса но тоже для локального принтера… Задал вопрос, жду… Печатаю в ПДФ, сохраняю на ХР комп, потом через VNC ломлюсь на удаленный рабочий стол и уже оттуда печатаю на принтер. Гемор, конечно, еще тот, но мне печатать надо не часто. 1-2 раза в неделю. Но, конечно, хотелось бы побороть…Уже все программы что мне нужны были я поставил и настроил. Принтер один остался.

Спасибо за ответ.
В ХР принтер разшарил, с вин машины можно по сети печатать. В убунте я устанавливаю сетевой принтер “виндовз через самбу”. Идет поиск, находится мой принтер, просит установить драйвер. Я указываю файл PPD, идет процесс, потом вываливается:
“Printer ‘Canon-LBP-800-2′ requires the ‘foo2lbp800-wrapper’ program but it is not currently installed. Please install it before using this printer.”
В CUPS принтер видно, инфа следующая:
Driver: Canon LBP-800 Foomatic/lbp800 (recommended) (grayscale, 2-sided printing)
Connection: smb://MSHOME/SERVER/Canon20LBP-800
Defaults: job-sheets=none, none media=iso_a4_210×297mm sides=one-sided
но статус у него Idle…
Если пытаюсь устанавливать через make по Вашему способу, то вот что пишет:
x51h@X51H:

/Downloads/canon$ make
gcc -O2 -s -Wall \
errcapt.c bmcapt.c lbp800.c \
-l cups -o bin/Release/lbp800
bmcapt.c: In function ‘CompressBitmap’:
bmcapt.c:164:5: warning: format not a string literal and no format arguments
bmcapt.c:178:5: warning: format not a string literal and no format arguments
bmcapt.c:171:10: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
bmcapt.c: In function ‘Bitmap_GetLine’:
bmcapt.c:82:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c: In function ‘Bitmap_Skip’:
bmcapt.c:50:10: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c:53:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
/usr/bin/ld: cannot open output file bin/Release/lbp800: No such file or directory
collect2: ld returned 1 exit status
make: *** [lbp800] Error 1

Ну х.з. что еще добавить. Есть какие-то идеи?

ответ jeder
Эта инструкция по Jeder Linux, а это малость не Убунту всё же.
Вам в начале сборки пишет requires the ‘foo2lbp800-wrapper’ program
Проверьте есть ли в системе libcups2-dev, если нет, установите.

Что-то приглючило и пост сначала не появлялся, я пару раз повторил, они не появлялись а теперь вывалились сразу 3. Прошу прощения .
Такого в системе установлено не было. Установил через Ubuntu Software Center. Удалил и установил принтер по новой. И опять написало что не хватает этого foo2lbp-800 wrappera. Пытаюсь напечатьть пробную страницу в статусе написано Processing – “Unable to connect to CIFS host, will retry in 60 seconds…”

ответ jeder
Надо доустановить:
foomatic (все пакеты с таким началом в названии)
cups-common (и всё, что потянет)
Потом в терминале выполняем от администратора make clean distclean
Удаляем папку со старым драйвером, который пытались поставить, и распаковываем его по новой из архива и снова ставим.

Надо после переустановки перезагружаться, танцевать с бубном? Я теперь начинаю понимать почему Linux-оводовов зовут красноглазыми

ответ jeder
Перезагружаться не надо, убунта должна подхватить принтер автоматом.
Добро пожаловать в сообщество

Тааак… Начнем по порядку. Если в Ubuntu Software Center поискать foomatic отображается только Foomatic-GUI printer configuration tool. А вот в Add-ons не был установлен пункт TCP/IP swiss army knife-trfnsitional packege. Я его благополучно доустановил. По поиску cups-commons находит Common UNIX Printing System(tm) – common files. Этот пакет уже установлен, никаких Add-ons там нету и понятно, что если я его устанавливал, то со всем соглашался .
Потом я ему говорю:
x51h@X51H:

Читайте также:  Windows сам делает скрины

/Downloads/canon$ sudo make clean distclean
А оно мне:
rm -f obj/Debug/*
rm -f obj/Release/*
rm -f bin/Release/lbp800 bin/Release/parcapt
rm -f bin/Debug/lbp800 bin/Debug/parcapt
make: *** No rule to make target `distclean’. Stop.
Потом удаляю папку Canon
Потом распаковываю по новой. Для надежности папку называю canon_lbp800
Ломлюсь в эту папку и говорю ему:
x51h@X51H:

/Downloads/canon_lbp800$ sudo make install
А оно мне:
gcc -O2 -s -Wall \
errcapt.c bmcapt.c lbp800.c \
-l cups -o bin/Release/lbp800
bmcapt.c: In function ‘CompressBitmap’:
bmcapt.c:164:5: warning: format not a string literal and no format arguments
bmcapt.c:178:5: warning: format not a string literal and no format arguments
bmcapt.c:171:10: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
bmcapt.c: In function ‘Bitmap_GetLine’:
bmcapt.c:82:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c: In function ‘Bitmap_Skip’:
bmcapt.c:50:10: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c:53:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
gcc -O2 -s -Wall \
errcapt.c pport.c timcapt.c llcapt.c pkcapt.c hlcapt.c parcapt.c \
-l cups -o bin/Release/parcapt
parcapt.c: In function ‘main’:
parcapt.c:195:4: warning: format not a string literal and no format arguments
parcapt.c: In function ‘PrintPages’:
parcapt.c:134:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c: In function ‘PrintPage’:
parcapt.c:76:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c:86:10: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c:91:10: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
install -s -m a=rx bin/Release/lbp800 /usr/bin
install -m a=rx lbp800-print /usr/bin
install -m a=r ppd/Canon-LBP-800.ppd /usr/share/ppd/custom
install -m a=rx foo2lbp800-wrapper /usr/bin
install -m a=rx bin/Release/parcapt /usr/lib/cups/backend
Потом иду в Printing и устанавливаю сетевой принтер как и раньше, указываю файл ppd и алилуйя! Не пишет что не хватает какого-то ФУ. Типа все ОК, принтер добавился. Но в CAPS старая ситуация Idle – “Unable to connect to CIFS host after (tried 3 times)”

На один шаг вперед продвинулись. Каким будет следующий?

ответ jeder
А почему сразу sudo make install, а как же make?
Хотя, несмотря на обилие ворнингов, вроде бы действительно всё поставилось.

О, вот еще какая есть инфа из CAPS:
▼ ID ▼ Name User Size Pages State Control
Canon-LBP-800-13 Test Page x51h 201k 1 held since
Mon 19 Sep 2011 05:33:50 PM EEST
“No %%BoundingBox: comment in header!”
Canon-LBP-800-14 Print Self-Test Page anonymous 1k Unknown processing since
Mon 19 Sep 2011 05:39:27 PM EEST
“Tree connect failed (NT_STATUS_BAD_NETWORK_NAME)”

Особенно про NT_STATUS_BAD_NETWORK_NAME.

ответ jeder
Может в настройках винды дать короткое сетевое имя принтеру – типа lbp800
А в CUPS прописать путь с учётом нового имени, ещё можно попробовать через Меню>Администрирование>Печать добавить принтер (Сетевой принтер>Принтер Windows через Samba).

После продолжительных танцев с бубном, назначения короткого имени принтера кое что получилось. А именно задача отображается в перечне задач принтера в виндовз под именем “удаленный документ низкого уровня”, висит так пару секунд, пишет постановка в очередь, отображается размер, потом все пропадает. Убунту пишет, что задача была отправлена принтеру.

ответ jeder
Даже предположений нет.
На поля листа не ругается? Поставьте в CUPS их побольше – 1,5см.

Убунту ни на что не ругается, мастдай тоже. Типа все чики-пики, но только не печатает. ‘/>
Устал. Набираюсь сил на комп с принтером поставить убунту. Вы мне ответьте локальный принтер на убутте нормально ставится и печатает. С расшареным принтером Убунту-Убунту проблем нету.

ответ jeder
На локальном компе LBP-800 печатает нормально.
А вот по сети у него проблемы, может так быть, что и в связке Убунту-Убунту не будет печатать.
Попробуйте подсоединить canon к тому, где сейчас убунту и с компа с видой отправить на него печать. Если не напечатает, то тогда нет смысла ставить убунту туда, где сейчас у вас винда.

Unfortunately…
Комп с Убунтой – ноут без ЛТП порта соответственно… Переходник ЮСБ-ЛТП как-то пробовал – не работает. Но я убунту загружу с ЛайвСД. С каждым днем Убунту нравится все больше и больше, так что принтер буду стараться победить.

ответ jeder
Эх. Тогда красноглазить, красноглазить и ещё раз красноглазить
Второй системой можно попробовать поставить убунту.

Та же ситуация. Проблема печати по сети с LinuxMint by Rosinka на принтер Canon LBP-800, который настроен и подсоединен по LPT к машине с Windows XP SP3.

Читайте также:  Alfred mac os использование

Установил libcupsys2-dev под su, так как ругался как у Dimon-a на “cannot find -lcups”
aptitude install libcupsys2-dev
вместо него система предложила и установила со всеми зависимостями libcups2-dev
Далее по инструкции с тамими вот ошибками:
mylinuxmachine canon_lbp800driver_0.1.2_linux # make
gcc -O2 -s -Wall \
errcapt.c bmcapt.c lbp800.c \
-l cups -o bin/Release/lbp800
bmcapt.c: In function ‘Bitmap_Skip’:
bmcapt.c:50: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c:53: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c: In function ‘Bitmap_GetLine’:
bmcapt.c:82: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c: In function ‘CompressBitmap’:
bmcapt.c:164: warning: format not a string literal and no format arguments
bmcapt.c:178: warning: format not a string literal and no format arguments
bmcapt.c:171: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
gcc -O2 -s -Wall \
errcapt.c pport.c timcapt.c llcapt.c pkcapt.c hlcapt.c parcapt.c \
-l cups -o bin/Release/parcapt
parcapt.c: In function ‘PrintPage’:
parcapt.c:76: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c:86: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c:91: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c: In function ‘PrintPages’:
parcapt.c:134: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c: In function ‘main’:
parcapt.c:195: warning: format not a string literal and no format arguments

mylinuxmachine canon_lbp800driver_0.1.2_linux # make install
gcc -O2 -s -Wall \
errcapt.c bmcapt.c lbp800.c \
-l cups -o bin/Release/lbp800
bmcapt.c: In function ‘Bitmap_Skip’:
bmcapt.c:50: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c:53: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c: In function ‘Bitmap_GetLine’:
bmcapt.c:82: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
bmcapt.c: In function ‘CompressBitmap’:
bmcapt.c:164: warning: format not a string literal and no format arguments
bmcapt.c:178: warning: format not a string literal and no format arguments
bmcapt.c:171: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
gcc -O2 -s -Wall \
errcapt.c pport.c timcapt.c llcapt.c pkcapt.c hlcapt.c parcapt.c \
-l cups -o bin/Release/parcapt
parcapt.c: In function ‘PrintPage’:
parcapt.c:76: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c:86: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c:91: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c: In function ‘PrintPages’:
parcapt.c:134: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
parcapt.c: In function ‘main’:
parcapt.c:195: warning: format not a string literal and no format arguments
install -s -m a=rx bin/Release/lbp800 /usr/bin
install -m a=rx lbp800-print /usr/bin
install -m a=r ppd/Canon-LBP-800.ppd /usr/share/ppd/custom
install -m a=rx foo2lbp800-wrapper /usr/bin
install -m a=rx bin/Release/parcapt /usr/lib/cups/backend

Потом добавил расшаренный принтер по smb://192.168.1.101/CanonLBP и подсунул ему указанный из архива Canon-LBP-800.ppd. Проверил наличие в CUPS.
Тест пробной страницы. В CUPS-e пишет что отправлено/создано и завершено задание, как в прочем и система. Но на самом деле не печатает, хотя в планировщике заданий в винде появляется задание с 0 страницами, которое успешно обрабатывается и ничего не печатает)

Ubuntu 12.04
поставил как описано

Большой сенкс респект и уважуха
ответ jeder
Пожалуйста, а ECP+EPP есть такой?

а то блин уже незнал чего делать с этим LBP-800 : сразу в мусор или сначала из окна выбросить. А так еще и печатать можно…

У меня зверь запустился только после того как я в BIOS проставил режим ECP .
режим EPP не прокатил. Посему будьте бдительны.

ответ jeder
Вы не внимательно прочитали последнее предложение – режим надо ставить ECP+EPP (прям такая строчка в списке у BIOS должна быть), а не только один какой-то.

Источник

Оцените статью