CUPS wrapper for Lexmark Z32


Lexmark makes a binary-only Linux driver for the Z22 and Z32 printers. While an open-source driver is also available, I found that the Lexmark-supplied driver produces much nicer output at the various available resolutions.

This web page provides software to integrate the Lexmark-supplied binary driver with CUPS, the Common Unix Printing System. This integration takes the form of two files: a PPD file, which describes the printer to CUPS, and a filter wrapper, which acts as a driver from CUPS's point of view (but actually calls the Lexmark driver).

This wrapper allows users to enjoy the benefit of the best available driver for the Z32, while also allowing the printer to be configured via the standard CUPS interface (rather than the idiosyncratic Lexmark-supplied user interface). In particular, such parameters as resolution, paper type, and cartridge alignment can now be configured via the CUPS interface.

What you will need

You will need exactly three things:
  1. The CUPS system. Many modern Unixes already have this. I have tested this driver with CUPS 1.1.17.
  2. The Lexmark driver RPM lexmarkz22-z32-1.0-5.i386.rpm. This is available, as z32_eng_us-1.0-5.tgz, from Lexmark's website. Install via:
        rpm -ivh lexmarkz22-z32-1.0-5.i386.rpm
    You may ignore (cancel) Lexmark's graphical user interface that comes up during the installation. The RPM will install files under /usr/local/lexmark, as well as /var/spool/lexmark and a number of other places.
  3. The file cups-lexmark-z32-wrapper.tgz. Install via:
        cd /
        tar zxf cups-lexmark-z32-wrapper.tgz
    This will install the two files /usr/share/cups/model/lexmark-z32.ppd.gz and /usr/lib/cups/filter/lexwrapperZ32.
Make sure to restart cupsd if it is already running:
killall -HUP cupsd

How to set up your printer

After you have installed the above files, the printer is set up using the standard CUPS interface.

Command line setup

If your printer is connected via USB, one of the following should work (depending on the USB address that was assigned to your printer):
lpadmin -p lexmark -m lexmark-z32.ppd -v usb://Lexmark/Z22-Z32?serial=ffe0 -E -D "Lexmark Z32"
lpadmin -p lexmark -m lexmark-z32.ppd -v usb:/dev/usb/lp0 -E -D "Lexmark Z32"
If your printer is connected via the parallel port, use this:
lpadmin -p lexmark -m lexmark-z32.ppd -v parallel:/dev/lp0 -E -D "Lexmark Z32"

Graphical setup

Point your web browser to http://localhost:631/, click "Admin" and "Add Printer", then follow the instructions. Here is what I entered:
Name: lexmark
Location: (insert location here)
Description: Lexmark Z32

USB Printer #1 (if connected via USB)
Parallel Port #1 (if connected via parallel port)

Make: Lexmark

Model: Lexmark Z32 binary driver (en)
At this point, your print queue has been created. You should be able to print a test page. You can now click on "Configure Printer" to set up specific options for this print queue (such as resolution, color or monochrome printing, and the alignment parameters from the Lexmark alignment page, see below).

Printing an alignment page, cleaning the ink nozzles, etc.

Lexmark provides an "alignment page" that you can print out to fine-tune the alignment of the print heads. You need to do this if the color parts of your image seem to be offset relative to the black-and-white parts. To print the alignment page, use this command:
lpr -P lexmark -o raw /usr/local/lexmark/z32/lxaealgn.out
Note the "-o raw" option, which makes sure the page is sent to the printer without any filtering. You can also send a page to clean your printer's nozzles:
lpr -P lexmark -o raw /usr/local/lexmark/z32/lxaecln.out
For other available test pages, see
ls /usr/local/lexmark/z32/*.out


Back to Peter Selinger's Homepage: [home]
Peter Selinger / Department of Mathematics and Statistics / Dalhousie University
selinger@mathstat.dal.ca / PGP key