Download Latest Version capt3-0.1.tgz (23.1 kB)
Email in envelope

Get an email when there's a new version of Unofficial LBP-3010 CAPT3 Solaris driver

Home
Name Modified Size InfoDownloads / Week
capt3-0.1.tgz 2010-11-22 23.1 kB
README.txt 2010-11-20 2.4 kB
Totals: 2 Items   25.5 kB 0
Solaris Canon CAPT3 driver
--------------------------

This package is a Solaris driver for the Canon LBP-3010 printer.
It implements the version 3.0 of the CAPT protocol, a proprietary
communication protocol and compression algorithm that I reverse
engineered. You can read details of the protocol in the file SPECS.

I started from Nicolas Boichat's driver for the LBP-810 printer
that implements the CAPT 1.0 protocol but I soon discovered that
CAPT 3.0 is almost completely different, both in the communication
protocol and the bitmap encoding.

Install
-------

Build the driver with:

# make

Then log in as root and type:

# make install

This will install the capt3 driver and the PPD file ready to
be used by Solaris' CUPS system. To create a printer queue
for the LBP-3010 printer use:

# make install-cups

This will creates the queue LBP3010 so that you just need to 
connect the printer and print.

For each print job, a trace of all the communication with the
printer is saved in /tmp/capt.log for debugging purposes.

Design Notes
------------

This driver is for Solaris and OpenSolaris, it uses the ugen
generic driver to communicate with the printer. The generic usbprn
printer driver cannot be used because the LBP-3010 printer does not
respond to the GET_DEVICE_STATUS control request. As a result the
usbprn driver does not attach when the printer is connected.

The ugen driver creates several special device files that are 
specific to the vendor/device id of the USB device. Amongst these
file that is one for data in and one for data out. The CAPT 3.0
protocol is a full-duplex protocol, so both special device file
must be opened to print. This is done directly in the capt3 driver
because it won't fit with the the CUPS principle of one full duplex
device file per printer. 

Ideally a new kernel USB module should be developped (or the usbprn
module fixed) so that a real printer port can be created and used
in CUPS, but I leave that to someone else to do. 

The consequence of this architecture is that the capt3 will work
only with the LBP3010 printer. If you have another CAPT3.0 printer,
you will have to modify capt3.c to open the correct device files.
The rest should stay the same.

For CUPS I use /dev/null as the printer port. Maybe there is a
better choice.

(C) 2010 Benoit Bolsee
Source: README.txt, updated 2010-11-20