<< Home >>   << The protocol >>
Lexmark 5000 image
Lexmark 5000
			      Jetprinter

The Ghostscript Driver

This is a beta version of a driver for the Lexmark 5000. It supports unidirectional colour printing at 600x600 & 300x600. By means of a run-time switch the driver can be restricted to black. The source has been compiled and tested with ghostscript 6.0.

Also available are files to produce the head cleaning and the black/colour cartridge alignment printouts.

Beta is as beta does.  Don´t be put off by the beta.  The driver is in good shape, and I am using it for all of my printing.

 

BEWARE!

This section is of historical interest only.

Recent distributions of Redhat and Debian have the lx5000 driver compiled as part of their Ghostscript distribution. To check for this, use the command:

gs -help | grep lx5000

If the driver is compiled into gs, it will show in the output from this command.


Source only!

Source RPM now available

Note that this is not a binary RPM.  The driver must be complied with the full ghostscript 6.0 source.  To facilitate this, I have written a source RPM.  The source RPM with full instructions on how to use it, Compiling Ghostscript 6.0 with Lexmark 5xxx & 7xxx drivers, is available here.

 
 

Current version

Id: gdevlx50.c,v 1.41 2000-04-18 14:35:41+10 pbw Exp pbw

  • 1.41   Fixed paper movement bug in colour printing that caused the driver to infloop, generating an ever-growing output file, or endlessly sending the same line to the printer.
  • 1.39   Removed legacy `near' modifiers in inherited code.  These caused compile failures in GS 6.0.  Now compiles with 6.0.
  • 1.37   Fixed dirty buffer bug evident as random black noise on first swipe. or as "dirt" at the end of a swipe.  Restored default headSeparation to 16.  More GS compliance changes.
  • 1.36   Changes to comply with Ghostscript coding standards, sort of.
  • 1.33   300x600 support.
  • 1.32   DryingTime parameter added.
  • 1.30   -dCMYK runtime switch for colour/black.
 

BEWARE!

This section is of historical interest only.

Recent distributions of Redhat and Debian have the lx5000 driver compiled as part of their Ghostscript distribution. To check for this, use the command:

gs -help | grep lx5000

If the driver is compiled into gs, it will show in the output from this command.


Download

Source is now (as of 12th March 2000) distributed as part of a source RPM.  Full instructions on using this source RPM to compile and install Ghostscript with a Lexmark 5000 driver are available in Compiling Ghostscript 6.0 with Lexmark 5xxx & 7xxx drivers.

If you are happy to compile Ghostscript by yourself, here is the driver sourcegdevlx50.c.  Note that applying the gs6.0.lexmark5000.patch from the patch list, below, will have the effect of placing gdevlx50.c in your source directory.  (To save links as files: In Netscape, use Shift+LeftButton; in IE use RightButton->Save Target As...)

The following patch files may be applied in order to the source tree.

gs6.0.initial.patch
Sets prefix, compiler flags, libraries, etc.
gs6.0.A4.patch
Optional.  Use this if you want gs to default to A4.
gs6.0.lexmark5000.patch
This places gdevlx50.c in your source directory, and patches the makefiles.
gs6.0.lexmark5700.patch
Optional.  Apply this patch if you want to include Stephen Taylor's 5700 driver in the gs binary.
gs6.0.lexmark7000.patch
Optional.  Apply this patch if you want to include Henryk Paluch's 7000 driver in the gs binary.

To apply these patches after downloading the gs6.0 source tree, cd to the top level directory of the tree, and apply the patches in order with
patch -p1 <name-of-the-patch-file

Files for printer administration.  The four available printer administration functions are:

Head alignment
Print out a pattern which shows the relative alignment of the black and colour cartridges.  The data file is blckalgn.out.
Head cleaning
Print out solid blocks from all of the print heads.  blckhcln.out
N.B. The above functions are not yet available for the photo cartridge.
Expose the print cartridges
Allow the cartridges to be changed.  showcart.out
Hide the print cartridges
Park the print cartrideges after changing a cartridge.  hidecart.out
Using the data files.
The most convenient way to use these files is to define a raw queue for the printer, and to print the data files to this queue.  This enables non-root users to perform maintenance on the printer.  This assumes, of course, that such permission is a desirable thing.
For RedHat systems employing the rhs-printfilters system, I use the shell script lx.control, linked to from headalign, headclean, showcartridges and hidecartridges, to effect the printer controls.  The script assumes that the raw queue is lx.control, and that the data files are located in the directory /usr/share/ghostscript/6.0/lib/printers/lexmark, and will have to be modified to taste.

This is a piece of perl code that I used when I was tinkering with the protocol.  I used it to output protocol sequences to stdout.  It was vital to me in decoding one of the 5000's compression methods, and would be easy to modify for other Lexmark models.

 

!

 
   

Roll of Honour

Stephen Taylor Lexmark pioneer.  Independently wrote a Ghostscript driver for the 5700.  My code is built on the skeleton of Stephen's driver.
Henryk Paluch Lexmark pioneer.  Initial decoding of the 7000 protocol, and a series of drivers culminating in the Ghostscript driver for the 7000.
Christian Kornblum 2070 driver.
Thomas Paetzold 2030 driver.
Tim Engler 1100 driver.

Honourable Mention

Bob Clark Bob was the first to realize (or the first to report, at any rate) that the "jamming" which I have always seen on the printer, was caused by the filling of the printer's internal status return buffer, which seems to be 64 bytes long.
 

 
Peter B. West
pbwest@powerup.com.au
"Lord, to whom shall we go?"

Created with

Last modified: Tue Feb 11 12:33:51 EST 2003
$Id: lexmark.html,v 1.24 2001-08-17 11:24:05+10 pbw Exp pbw $
Thanks also to Marija Svilans for directing me to the work of Stephen and Henryk.

Tue 19th Oct 1999.
           
<< Home >>   << The protocol >>