Драйвер На Принтер Canon Lbp 2900 В
- Драйвер на принтер canon lbp 2900. Драйвер на принтер canon lbp. Базовый драйвер, в целом.
- Скачать полноценный драйвер принтера Canon i. Для принтера Canon i-SENSYS MF3010,.
- Скачать Бесплатно Драйвер На Принтер Canon Lbp 2900 На Виндовс 7
- Скачать Драйвер На Принтер Canon Lbp 2900 Для Виндовс 10
- Встановити Драйвера На Принтер Canon Lbp 2900
Попытался запустить LBP-2900 в Ubuntu. Довольно быстро выяснилось, что фирменный драйвер Canon - полный отстой, не поддерживается, и с этим надо что-то делать.
Драйвер Canon LBP 2900b. Операционная система: Windows 2000, XP, 7, Vista. Установка происходит через окно о новом оборудовании. Драйвер проверен. Скачено с офсайта. Canon CAPT Printer Driver Version R1.12 Ver.3.02. Compatibility: Operating system(s): Windows 2000,.
Обнаружил также попытки написания энтузиастами аналогичного драйвера, но для 2900 он не работает. В связь с этим начал обратный инжениринг принтера и решил написать СОБСТВЕННЫЙ ДРАЙВЕР. UPD: ТЕКУЩЕЕ СОСТОЯНИЕ Исходники доступны на Github: Чеклист к первому релизу: X Передача параметров компрессии Hi-SCoA X Компрессия Hi-SCoA X Поддержка LBP-2900 и LBP-3000 X Баг «only 10 bytes» X Печать многих страниц X Ожидание наличия бумаги Генерация PPD-файлов Чеклист ко второму релизу: Компрессия SCoA Поддержка LBP-810 и LBP-1120 (Текст исходного верхнего поста следует) Ищу единомышленников для Reverse Engineering протокола принтера.
На сегодняшний день мне удалось полностью расшифровать протокол нижнего уровня USB и частично - протокол верхнего уровня. Мой драйвер уже может отсылать страницы на печать. ТРЕБУЕТСЯ расшифровать алгоритм сжатия пиксельных данных (он оказался отличным от алгоритма LBP-810 и, по-видимому, является какой-то модификацией ALPC-сжатия). Попытки прикрутить алгоритм от 810 привели к тому, что принтер включается и печатает, но на бумаге получаются только полосы, линии и регулярные узоры из пикселей.
У меня пока нет времени на расшифровку, поэтому прошу помощи. ОПИСАНИЕ ТОГО, ЧТО УДАЛОСЬ РАСШИФРОВАТЬ Работать с принтером можно с помощью простого open(«/dev/usb/lp0») - libusb не требуется.
Общение идет пакетами довольно простого формата. Формат пакета: байты 1,2 - код команды - 16 бит (младший байт первый) байты 3,4 - длина посылки (полная) - 16 бит (очевидно, меньше 4 байт не бывает) байты с 5 - данные (опционально) Если суммарная длина посылки превышает 4096 байт, посылка делится на части по 4096 байт. Компьютер посылает принтеру команду.
Принтер отвечает пакетом, содержащим код той же команды и минимум 2 байта данных (код возврата), всего не менее 6 байт. Эти 6 байт читают одним read. Если длина превышает 6 байт, то затем делается read на оставшуюся длину (она у меня никогда не превышала 4 килобайта, так что про ограничения ничего не знаю). Если не прочитать ответ принтера и продолжить посылать данные, он зависнет, и его придется выключить и включить снова. Коды команд: 0xA1A1 - начало работы.
Параметров нет (4 байта). Принтер отвечает длинной последовательностью байтов - видимо, номером модели, серийным номером, характеристиками и чем-то еще, я не разбирался. 0xA0A0 - какая-то проверка статуса? Встречается на 810, ни разу не видел на 2900. Параметров нет.
Принтер отвечает длинной простышей байтов. 0xA0A8 - запрос какого-то статуса. Параметров нет. В коде возврата - явно битовые флаги. 0xA3A2 - что-то включает, меняет флаги в предыдущей команде. Параметров нет.
Ответ всегда 0x0000. 0xE0A0 - проверка готовности.
Если в ответе поднят бит 0x0008, то буфер принтера полон, надо ждать и не посылать больше данные. 0xA0A1 - проверка кучи вещей, в том числе наличия бумаги.
Как оно работает на 2900 - не знаю. 0xA2A0 - загрузка первой магической последовательности.
Параметр: магическая последовательность байтов. 0xE1A1 - загрузка второй магической последовательности.
Скачать Бесплатно Драйвер На Принтер Canon Lbp 2900 На Виндовс 7
0xE0A3, 0xE0A2, 0xE0A4 - что-то включают. Всегда идут в начале и в такой последовательности. Их отсутствие никак на печать не влияет(?). Возвращают 0, а при попытке вызвать повторно - 0x8800.
0xE0A5 - третья магическая последовательность. 0xD0A9 - загрузка магической последовательности, непосредственно предшествующая загрузке данных печати. Ответа на эту команду не дожидаются (?). 0xC0A0 - Главная Команда. Загружает в принтер сжатое изображение или его часть. Ответа принтера нет.
0xC0A4 - Конец Загрузки. Выдается сразу после 0xC0A0. 0xE0A7 - Включение Печати. Когда принтер подтвердит готовность после загрузки, выдают эту команду, и принтер начинает печатать. Параметр: 16-битное число 0x0001 (видимо, означающее «включить»). Дополнительная информация - в исходниках драйвера Исходники того, что написал на данный момент, могу прислать. Я совершенно с этим согласен.
Тем более, что оборудование дрянное - в LBP-2900 стоит оптика и часть механики, идентичная устаревшему HP LJ-1100, а электроника хуже (упрощен процессор). Тем не менее, linuxprinting.org причисляет CAPT к наиболее востребованным для разработки драйверам - Canon явно не собирается отказываться от этого протокола и продолжает клепать на нем принтеры. Необходимость драйвера под 2900 у меня лично возникла потому, что из-за него не удается перевести на Linux работающий под Windows XP компьютер. Весь нужный софт есть, все работает - кроме принтера. Покупать новый принтер, разумеется, не хочется (хотя рассматриваю и этот вариант). Поэтому считаю, что Reverse Engineering сделать все же надо - хотя бы такой, чтобы принтер из состояния «кирпич» перешел в состояние «кое-как печатает». Это поможет миллионам пользователей.
Скачать Драйвер На Принтер Canon Lbp 2900 Для Виндовс 10
Проделана большая работа, но не сделано главное. Неизвестен формат передачи изображений. Вы можете помочь еще кое-чем. А именно, сбором данных для расшифровки протокола. Это просто, но нужна винда. Возьмите SnoopyPro или другой сниффер протокола USB. Возьмите Paint (именно Paint, чтобы печатал пиксел к пикселу - это важно).
Нарисуйте картинку: черный пиксел в углу, остальное белое. Распечатайте, в сниффере найдите пакет, начинающися с «A0 C0» и запишите в файл его, а также все последующие пакеты вплоть до начинающегося с «A4 C0». На файле напишите, что это был один пиксел. Повторите то же самое с другими простыми картинками - два пиксела, три пиксела. 16 пикселов по горизонтали, потом по вертикали, потом квадратом - пока не надоест. Попробуйте более сложные рисунки - черный-белый-черный, например. Результаты выложите куда-нибудь в инет и дайте на них ссылку здесь.
По этим данным я или кто-нибудь еще попытаемся расшифровать алгоритм сжатия картинок. Если у вас не 2900, а другой CAPT-принтер, пришлите полный снифф. Интересно посмотреть, чем же принтеры отличаются. Выложите примеры пакетов и соответствующие им картинки, попробую посмотреть, что там за алгоритм.

Собственно я и прошу, чтобы мне помогли набрать подобные примеры. При печати большого белого поля идет длинная периодическая последовательность байтов, не содержащая 0x00 - что-то около 16 байтов в периоде. Детальнее пока не исследовал. У принтера LBP-810 была разновидность RLE. А что на текущий момент происходит после 0xC0A0, если лить рандомные данные? Я пробовал лить данные, пожатые алгоритмом от LBP-810 (прежде чем посмотрел повнимательнее и понял, что алгоритм другой). Как правило, печатается нечто (полосы шума, иногда тонкие вертикальные линии).
Встановити Драйвера На Принтер Canon Lbp 2900
От некоторых длинных принтер зависает (видимо, если в результате распаковки данные переполняют память видеогенератора).