-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Captdriver is a free and open-source driver for Canon printers that only accept the proprietary Canon Advanced Printing Technology (CAPT) protocol and the associated compression formats. This includes many, but not all Canon laser printers with an LBP- model number, and also some products from the imageCLASS and imageRUNNER product lines.
In CUPS terminology, captdriver acts both as a filter and a port monitor. It converts print data to a device-compatible format, while also monitoring the printer and coordinating print jobs as required by CAPT's full-time bi-directional operation.
Support for printers with with PCL, PostScript and/or IPP support are beyond the scope of this project. CUPS has built-in support for such printers.
This project is based on the works of Rildo Pragana, Nicolas Boichat, Alexey Galakhov, Benoit Bolsee and Vitaliy Tomin.
This driver must be manually compiled and installed. To get started, go to the unified guide. The guide is written in a modular style to account for differences between operating systems or distros.
Also check out the Installation Examples, if it helps.
This fork was originally created to focus on maintaining LBP3000 support, with some secondary goals to prepare the code for inclusion in mainstream package repositories.
On 2021 December 1st, it was (semi-)officially declared as a continuation of Alexey's original driver.
It contains more features than the original, but also more bugs.
Alexey Galakhov has pretty much nailed the general technical details on how CAPT works, and his original driver performs well for documents with simple page layouts. This fork does pretty much the same in terms of performance and compatibility.
The following printer-host-operating system combinations have been found to work:
-
LBP2900
- x86-64(?): Manjaro, Void Linux
- ARMv7: Ubuntu 19.10
-
LBP3000
- x86-64: Debian 10.6, 10.7, Fedora 32
- aarch64/ARMv8-A: Alpine Linux 3.12
All tests on ARM-based systems were run on Raspberry Pi computers.
LBP3010 support has been documented, but not tested since commit 6938395.
LBP3100 support has been verified by at least one user (with an LBP3108) using Galakhov's original version. A small edit has to be made to the source code before use.
End users with supported printers are welcome to try the driver, at their own risk. This software is licensed under the terms and conditions of the GNU General Public License, Version 3.
Issues with CUPS' USB backend has been limiting compatibility to a rather narrow list of architecture-OS combinations. This issue is discussed in greater detail in the following conversations:
- https://github.com/mounaiban/captdriver/commit/18797c4c8edf916add31c09a2c527cf284021e14#r38572647
- https://github.com/mounaiban/captdriver/issues/8
- https://github.com/agalakhov/captdriver/issues/7
Finding a workaround for these compatibility problems is currently a top priority.
Older CAPT printers made from the late 1990s to the early 2000s used a different compression algorithm that has not yet been implemented. There is an ongoing work in progress by Oleg Sazonov to implement SCoA support.
SCoA support is required by LBP810 and LBP1120.
Drum cleaning, detection of service errors and Automatic Image Refinement are yet to be implemented.
The driver currently only recognises a few out of the many targeted printers. Help with widening support, adding missing features, improving reliability and testing is wanted, and would be greatly appreciated.
If you have a colour printer, your help is especially appreciated. Issue #10 is dedicated to discussions for CMYK/colour support.
This Captdriver fork was originally created to enable printing to an LBP3000 from GNU/Linux distros like Fedora and Ubuntu. Attempts to install the original Canon driver were met with frustration; it was discovered later that support for the original driver has been lost in newer distros (Ubuntu 14.04 was the latest OS found to be compatible).
This project aims to produce a free and open-source alternative driver that will extend support for CAPT printers to newer GNU/Linux distros, more processor architectures like Arm and Power, and more operating systems like BSD and other Unixes.
Details of the CAPT format, including printer control protocols,
status registers and compression algorithms are documented in the
SPECS
file. While incomplete and expected to contain errors and
omissions, help with expanding it and making corrections is greatly
appreciated.
Please also check out the following repositories:
Content in this wiki is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Any errors, omissions or suggestions? File an issue and apply the wiki
label.
Bookmarks
Unofficial Introduction to CAPT (Executive Summary)
Rootless Write Access To USB Devices
Other Canon Printer-Related Projects
SPECS: 0xA1A1
Command and Response Format
Search for pages starting with
-
SPECS
for notes on the operation of the CAPT data formats and communications protocol -
TESTING
for guidelines on testing Captdriver -
TIPS
for potentially helpful information on studying the project or the CAPT format-protocol