- Notifications
You must be signed in to change notification settings - Fork16
Home
📣Welcome back! This fork has recently re-synced withthe originalon 2022-06-26. Changes have been made to important parts of the codebase.If you run into any problems, please check the Issues section or leave amessage there.
As ofa74b04b8the manual duplex feature has been restored. Thanks for your patience!
Captdriver is a libre, open-source driver for Canon printers thatonly accept the proprietaryCanon Advanced Printing Technology (CAPT)protocol and the associated compression formats. This includes many,but not all LBP Canon laser printers sold until the late 2000s.
Such printers were part of the Laser Shot or i-SENSYS range worldwide,depending on marketing region, and the Satera range in Japan.CAPT-only devices from the imageCLASS and imageRUNNER product lineshave also been documented.
In CUPS terminology, captdriver acts both as afilter and a port monitor.It converts print data to a device-compatible format, while alsomonitoring the printer and coordinating print jobs as required by CAPT'sfull-time bi-directional operation.
Support for non-CAPT printers are beyond the scope of this project.CUPS has built-in support for PCL and IPP. Please checkthis list of other Canon printer-related projects if you have a device that uses CARPS or UFR.
This project is based on the works of Rildo Pragana, Nicolas Boichat,Benoit Bolsee,Alexey Galakhov,and Vitaliy Tomin.
This driver must be manually compiled and installed. To get started, goto theunified guide. The guide is written in a modular styleto account for differences between operating systems or distros.
Also check out theInstallation Examples, if it helps.
This fork was originally created to focus on maintaining LBP3000 support.It currently has three main goals:
Improve compatibility: enable use on a wider range of Linux distros andmore operating systems and platforms.
- This depends on solving along-standing problem with the CUPS-libusb interface.
Enhance usability: implement missing features and make the drivertruly suitable for end-users.
Enable automatic installation and get the driver included in mainstreamdistro package repositories once goals 1 & 2 are achieved.
Maintaining similarity with the original source tree is a priority.
This fork has largely the same level of device support as Galakhov'soriginal version.The driver is currently capable of handling most printing tasksbut with two significant issues: thecompatibility issues with the CUPS-libusb interfaceandlong delays between pages.
The following printer-host-operating system combinations have beenfound to work:
- LBP2900
- x86-64:Manjaro,Void Linux
- ARMv7: Ubuntu 19.10,20.04.2 LTS,22.04
- LBP3000
- x86-64: Debian 10.6, 10.7, Fedora 32
- aarch64/ARMv8-A: Alpine Linux 3.12
- LBP3010
- x86-64
- undisclosed GNU/Linux system, probably Ubuntu, Arch Linux or Manjaro
- FreeBSD (use the GxB branch,please see issue #20 for details)
- x86-64
- LBP3100/3108/3150
- x86-64: Ubuntu Kylin (inferred, see issue #13 of the the original version)
- Use
Canon-LBP3010-3018-3050.ppd
as the CUPS driver
- LBP6000/6018
- x86-64: Kubuntu
- Use
Canon-LBP3010-3018-3050.ppd
as the CUPS driver - Please see Issue #11 for details
All tests on ARM-based systems were run on Raspberry Pi computers.
BSD Support is currently being worked on in theGxB (GNU & BSD)branch. Please use this branch (git checkout 0.1.4.2-GxB
) if you are using a BSD operatingsystem like FreeBSD or OpenBSD.
Captdriver is not recommended for use withFedora Silverblueor similarimmutable operating systems, due to the need formanual modifications to operating system directories. Acontainerised version for immutable OSes has been planned.
End users with supported printers are welcome to try the driver,at their own risk. This software is licensed under the terms andconditions of theGNU General Public License, Version 3.
Issues with CUPS' USB backend has been limiting compatibility to a rather narrowlist of architecture-OS combinations. This issue is discussed in greater detailin 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 devices made from the late 1990s to the early 2000s used adifferent compression algorithm, SCoA, which is distinct from thenewer Hi-SCoA algorithm.
SCoA support is required by LBP810 and LBP1120.
While still unsupported in the original and this fork, there is anongoing work to implement SCoA support:
Oleg Sazonov's Fork hostsan ongoing WIP for SCoA support
Please see theSCoA Specifications Pagefor technical information.
Drum cleaning, detection of service errors and Automatic Image Refinementare yet to be implemented.
The driver currently only recognises a few out of the manytargeted printers. Help withwidening support, adding missing features, improving reliabilityand 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 toan LBP3000 from GNU/Linux distros like Fedora and Ubuntu. Attemptsto install the original Canon driver were met with frustration;it was discovered later that support for the original driver hasbeen lost in newer distros (Ubuntu 14.04 was the latest OS foundto be compatible).
This project aims to produce a free and open-source alternativedriver that will extend support for CAPT printers to newer GNU/Linuxdistros, more processor architectures like Arm, Power and RISC-V,and more operating systems beyond Linux (e.g. FreeBSD, OpenBSD, NetBSD).
Details of the CAPT format, including printer control protocols,status registers and compression algorithms are documented in theSPECS
file. While incomplete and expected to contain errors andomissions, help with expanding it and making corrections is greatlyappreciated.
Please also check out the following repositories:
Content in this wiki is licensed under aCreative Commons Attribution-ShareAlike 4.0 International License. Any errors, omissions or suggestions?File an issue and apply thewiki
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 protocolTESTING
for guidelines on testing CaptdriverTIPS
for potentially helpful information on studying the project or the CAPT format-protocol