Lexmark FAQ

General Questions

In which forum can I ask Lexmark related questions?

Forum: Printers from Lexmark and IBM

Where can I find a table of working Lexmark printers?

Where can I find webpages for each of the lexmark drivers?

Related projects:

Should I use the Lexmark binary drivers, or free drivers?

Alway use the free software drivers if at all possible. The
Lexmark drivers are not updated often enough, and do not integrate
well with today's spoolers. Lexmark is supposedly working on this.

For the time being, gimp-print supports the following printers:

  • Z42
  • Z43
  • Z52
  • Z53

The Z45 is not supported by free software or Lexmark. This printer
simply won't work.

Why does list my paperweight when the box says Linux is supported?

This is possible, as the ratings only count for free software ("free" in
the sense of liberty,

Free software has the big advantage that it comes with source code and
the user is allowed to change and re-distribute it. So it can be easily
used on BSD, Mac OS X, or other operating systems (this site does not
only support GNU/Linux, but every Unixish OS), and the user can fix bugs and
customize the software. And distributions can include free drivers on
their downloadable CDs.

The Lexmark drivers are proprietary. You don't get the source code for
them. In addition, they are made for GNU/Linux distributions as one had two
or more years ago. Lexmark didn't realize that one uses CUPS and
Foomatic nowadays. So it is extremely difficult to use them with modern

In the beginning I have tried to help the users with my
"lexmark-foomatic-kit" (which you also used), but Lexmark changed their
drivers and published more and more different types of drivers. So I
once gave up guessing how all these different Lexmark drivers work and
producing non-working code due to lack of having test printers.

Why does Lexmark claim their drivers works with GNU/Linux?

With a two years old distro it perhaps even works, as Lexmark didn't
realize that on printing under Linux/Unix changed a lot and now CUPS and
Foomatic are the standards. A GNU/Linux expert would perhaps make the
printer working, too, but when a manufacturer promises GNU/Linux support for
a consumer product, it must be possible that a consumer can set it up.
Hiring an expert to make this printer running is out of discussion, it
would cost at least ten times the price of the printer.

Why don't the Lexmark Drivers work?

They published drivers which do not integrate well with
current distros. In addition the drivers are proprietary, which makes
the experts at the distro companies not integrating them (you cannot put
non-free software on the downloadable CDs of a distro).

Why does the lexmark program fail -lexlmd: cannot execute binary file?

Don't use Internet Explorer for downloading .tar.gz
files, since IE likes to corrupt them. Try wget.

Also try deleting and reinstalling the program.

Where can I get Optra PPD's?

Why does my Lexmark printer stop working after a distribution upgrade?

If you were using the Lexmark drivers, the stopped working because
your new distribution is not using the old "LPD" spooler system. It is
probably using CUPS, and the Lexmark drivers do not work with CUPS.
If possible, try to use a free software driver.

Many people have succeeded in installing the old "LPD" system instead
of CUPS, and have made their printers work again. See below for the
various steps involved.

Lexmark E210

Does the printer work with free software?

This printer may be able to use the Samsung SmartGDI printer

Lexmark 4039

Does the printer work?

Yes, it has been reported printing, but very slow.

Lexmark E320

Why does printer print Postscript as raw text?

I think printer E320 and drivers recognises only PCL5.

How do I print PCL?

The Generic PCL 5 printer in the database on and set up your print queue based on
that data, or use printconf-gui and choose the HP LaserJet 4 as
your printer model.

Why use PCL when the manual says it is a PostScript printer?

If the printer's manual claims that your printer is a PostScript
printer, choose printer language auto-detection or PostScript as printer
language (sometimes called "Personality") in the front panel menus. If
the printer has no front panel menus, get PUP to
change the hardware configuration of the printer.

The postscript is preceded by a PCL banner, it doesn't work?

Another problem can be that when the printer is a PostScript printer and
already in auto-detection mode that it does not understand PostScript
when the PostScript job is preceeded by a PCL banner. Either do not use
banners or use PostScript banners.

What drivers can I try?

GhostScript drivers

  • ljet4
  • pxlmono
  • lj5gray

Choose "Generic PCL 6/XL Printer" as your printer model.
They support 1200 dpi.

How can I improve the PPD?

This is untested.

Below is a patch against the ljet4 driver when the printer is
"Generic PCL 5/5e Printer". The basic steps are:

2) From the PPD-O-Matic Select Printer drop-down choose
Generic PCL 5/5e Printer. Click GENERATE PPD FILE
and save the resulting file to a convenient location.
By default the file is named Generic-PCL_5_5e_Printer-ljet4.ppd.

3) From the bottom of this message put everything AFTER the

//// PATCH
BELOW ////

in a file in that same default location. Name the file
GenPCL5-to-LexE320.patch. Make sure none of the lines in the patch have
been word-wrapped. The first column will ALWAYS be a @ + - or a space.
Anything else means you got a wordwrap issue and the patch won't work.

4) From your shell, cd to the location of the files and issue the command

patch Generic_PCL_5_5e_Printer-ljet4.ppd GenPCL5-to-LexE320.patch

(the first file is the orignal PPD and the second is the patch in case you
changed the names and aren't familiar with patch).

5) Rename this file to LexmarkE320.ppd

6) Move it to /usr/share/cups/models/Lexmark/LexmarkE320.ppd or your
equivalent cups/models location.

7) Restart your cups server so it finds the new PPD and choose the
Lexmark -> Lexmark E320 from your CUPS config tool of choice.

Sorry this is a little verbose but I want to make sure the causal user can
create the file.

//// PATCH BELOW ////
--- Generic-PCL_5_5e_Printer-ljet4.ppd	2003-03-05 15:22:34.000000000 -0500
+++ LexmarkE320.ppd	2003-03-05 15:25:25.000000000 -0500
@@ -17,16 +17,16 @@
*FileVersion:	"1.1"
*LanguageVersion: English 
*LanguageEncoding: ISOLatin1 -*PCFileName:	"LJET4.PPD" -*Manufacturer:	"Generic" -*Product:	"(PCL 5/5e Printer)" +*PCFileName:	"LexmarkE320.PPD" +*Manufacturer:	"Lexmark" +*Product:	"(E320)"
*cupsVersion:	1.0
*cupsManualCopies: True
*cupsModelNumber:  2
*cupsFilter:	"application/vnd.cups-postscript 0 cupsomatic" -*ModelName:     "Generic PCL 5/5e Printer, Foomatic + ljet4" -*ShortNickName: "Generic PCL 5/5e Printer, ljet4" -*NickName:      "Generic PCL 5/5e Printer, Foomatic + ljet4" +*ModelName:     "Lexmark E320, Foomatic + ljet4" +*ShortNickName: "Lexmark E320, ljet4" +*NickName:      "Lexmark E320, Foomatic + ljet4"
*PSVersion:	"(3010.000) 550"
*PSVersion:	"(3010.000) 651"
*PSVersion:	"(3010.000) 652" @@ -126,7 +126,7 @@

*OpenUI *Resolution/Resolution: PickOne
*OrderDependency: 110 AnySetup *Resolution -*DefaultResolution: 600 +*DefaultResolution: 1200
*Resolution 75/75 DPI: "<</HWResolution75>>setpagedevice"
*Resolution 150/150 DPI: "<</HWResolution150>>setpagedevice"
*Resolution 300/300 DPI: "<</HWResolution300>>setpagedevice" @@ -525,4 +525,9 @@
*% COMDATA #$VAR1->{'args'}[1] = $VAR1->{'args_byname'}{'InputSlot'};
*% COMDATA #$VAR1->{'args'}[2] = $VAR1->{'args_byname'}{'Resolution'};
*% COMDATA #$VAR1->{'args'}[2] = $VAR1->{'args_byname'}{'Dithering'}; +*OpenUI *Margins/Page Margins/Offsets: PickOne +*DefaultMargins: Custom +*Margins Default/Driver Default: "" +*Margins Custom/Custom (set with 'alignmargins'): "<</.HWMargins[12 11 12 .13] /Margins-37.5>>setpagedevice" +*CloseUI: *Margins 

Lexmark X5150

Does this printer work with free software?

No. If you are able to purchase a new machine, buy an OfficeJet, or a
suggested printer.

Another possibility is to configure for several different lexmark
printers, and hope that one works. Like a lottery.

Does Lexmark have drivers for this machine?

No. Their binary driver set does not support it.

Does scanning work?

No. You'll definitely have to write a driver yourself.

Lexmark Z25

Does the printer work with free software?

No one has reported it working yet. Try using the lxm3200
driver. Note, the lxm3200 driver is no longer maintained.

Do the lexmark drivers work?

Work is an overstatement. It is possible to print with this
printer, using the Lexmark drivers, however the process is long
and difficult.

How do I setup the Lexmark drivers?

This worked for one person, using debian. The initial steps are very
similar to the other examples of installing the Lexmark drivers.

1. Download the Z35 drivers from the Lexmark website.
These directions apply to the CJLZ35LE-1.0-1.TAR.GZ file.

2. Untar the file, but don't use the unzip -z option. A
self-extracting archive will fall out, but don't run it.

3. Strip off the bash code until the END_OF_STUB marker, and
then save it as a .gz file.

4. Untar the compressed file with

gzip -cd lexmarkz35-1.0-1.gz | tar xvf -

5. Use alien to convert their Redhat RPM to a .gz file.

6. Untar the .gz file, and place its contents in /usr/local/.

7. Create the directory /var/spool/lexmark/Z35Driver/
WARNING! This directory is going to hold some rather
large output files. If you are low on space in var,
create this directory in their /usr/local/lexmark tree
and make a symlink to /var/spool/lexmark.

8. Run ./z35install in the directory you extracted the
file to. Ignore the RPM failure. Any other failures are
probably bad news, though. I had to run it twice, and
then it magically worked.

9. Make the following symlinks in /var/spool/lexmark/Z35Driver/

lrwxrwxrwx 1 root root 44 Sep 15 22:03 auckUS.lut -> /usr/local/lexmark/z25-z35/layout/auckUS.lut 
lrwxrwxrwx 1 root root 39 Sep 15 22:03 colorsV.lut -> /var/spool/lexmark/Z35Driver/auckUS.lut 

NOTE: The links may be created automatically, but they will
point to the wrong place. Double check.
Also, make sure it copied the Z35Driver.conf file into
the spool direcotry.

10. touch /var/spool/lexmark/Z35Driver/lpd.log

11. Check /etc/printcap, and either change the


line to


or make a symlink.

12. Make sure that you have the following programs:

  • enscript
  • tetex-bin
  • wv
  • gs Youll need to make some links and copy some stuff that isn't in the right place. You may need to copy or link usleep to sleep in /bin.

13. Now you' ll use


"directlly". convert the doc you want to print and
then use this command to print:

cat | /usr/local/lexmark/z25-z35/scripts/LexmarkZ35 -

14. You can modiffy the LexmarkZ35 script to make things
more "automatic". Remember that you need the FIFO
pipes that has the spool-dir, you can use mknod -p ...
to create them, look at the install scripts in the
rpm file.

Lexmark Z35

Why does the driver die, just before printing?

Lexmark did a poor job of packaging the driver, and the
installation is broken.

There is a link missing. colorsV.lut pointing at
auckEU.lut was missing. This can be seen by running the
driver with ltrace or strace Check to see
if there are broken links in the last lines of the trace output.

cat image.ppm | ltrace LexmarkZ35 >

How do I print to a file?

You can't. The Lexmark drivers do bi-directional communication
with the printers. Files don't to bi-directional I/O.

Where can I find a driver?

Type z35 Linux in the Find Drivers ... box
and download CJLZ35LE-1.0-1.TAR.GZ

You will need enscript.

Why doesn't Mandrake 9.0 print to the Z35?

The Lexmark driver is made for LPD and LPRng. Red Hat 7.3
uses LPRng as default spooler, and Mandrake 9.0 uses CUPS.
You can switch to LPRng by doing urpmi LPRng on the
command line (as root) and then starting printerdrake,
clicking Expert Mode, and then Change printing
. Choose LPRng. Some additional packages will
be installed. Say No if you are asked to transfer your
Z35. Then re-install the Lexmark driver and you should be able
to print.

I'm having a lot of trouble installing the driver?

Take a look at
and the next pages also.

How do I get the printer working under debian?

0. Download the Z35 drivers from the lexmark site. These directions
apply to CJLZ35LE-1.0-1.TAR.GZ. If you're reading this file from an
archive, it is possible that the tech support guys may have fixed some
of the problems noted, but unlikely.

1. Untar the file. A self-extracting gzip file will fall
out. Don't try to run it. It will
break things. Strip off the bash code till the END_OF_STUB marker, and
then save it as a .gz file.

2. Untar that with gzip -cd lexmarkz35-1.0-1.gz | tar xvf -

3. Use alien to convert their redhat rpm to a .tgz file. Untar this
file and place its contents in /usr/local, like they want.

4. Create the directory /var/spool/lexmark/Z35Driver/
WARNING! This directory is going to hold some rather large output
files.. If you are low on space in var, create this directory in their
/usr/local/lexmark tree and make a symlink to /var/spool/lexmark.

5. Run ./z35install in the directory you extracted the to. Ignore
the RPM failure. Any other failures are probably bad news, though. I had
to run it twice, and then it magically worked.

6. Make the following symlinks in /var/spool/lexmark/Z35Driver/

lrwxrwxrwx    1 root     root           44 Sep 15 22:03 auckUS.lut -> /usr/local/lexmark/z25-z35/layout/auckUS.lut
lrwxrwxrwx    1 root     root           39 Sep 15 22:03 colorsV.lut -> /var/spool/lexmark/Z35Driver/auckUS.lut

NOTE: It will probably create these, but have them linking to the wrong
place. Double check.

7. Make sure it copied the Z35Driver.conf file into the spool dir. Also,

touch /var/spool/lexmark/Z35Driver/lpd.log

8. Check /etc/printcap, and either change the


line to


or make a symlink.

9. Apply the patch below to that script.

.--- /usr/local/lexmark/z25-z35/scripts/LexmarkZ35.old Sun Apr 28 22:14:39 2002
.+++ /usr/local/lexmark/z25-z35/scripts/LexmarkZ35		Mon Sep 16 00:47:41 2002
.@@ -1,4 +1,10 @@
.+PIDOF=�hich pidof
+if [ -z "$PIDOF" ]
.+  PIDOF=/sbin/pidof
. PDIR=/usr/local/lexmark/z25-z35
. CONFDIR=$PDIR/bin/lxgetconf VERIFY
@@ -76,18 +82,43 @@
. 		fi	;;
. 	esac
. }
.+#Dumbasses don't know how to create lock files... 
.+#They managed to create a 577 lock file and then tried open it O_RDONLY
.+#Can you believe it?
.+umask 002
.+touch /var/spool/lexmark/Z35Driver/Z35Driver.lck
.+chmod 660 /var/spool/lexmark/Z35Driver/Z35Driver.lck
. if [ "$LXCOPIES" -gt "1" ]
. then
.+	#factored out of loop.. see below
. 	while [ "$COPY_COUNT" -lt "$LXCOPIES" ];
. 	do
.-		LEXPID=/sbin/pidof -s Z35Driver
+		#Wow is this stupid... It's completely irrelevant now.. but it's funny
.+		#so I left it in.
.+		LEXPID=$PIDOF -s Z35Driver
if [ "$LEXPID" != "" ]
. 		then
. 			sleep 12 
. 		fi
.-		$PDIR/Z35Driver $LXBIDIFLAG &
.+		# This is a RACE CONDITION! HELLO! Good thing they didn't provide
.+		# source to the driver.. can't imagine what that code looks like...
.+		#Futhermore, this is horrendously inefficient.. Factored out of loop.
.+#		$PDIR/Z35Driver $LXBIDIFLAG &
.+		#Originally, I was going to have the image conversion run in the
.+		#background, but it occurred to me that on slow machines, 
.+		#the driver may starve on input from the converter and b0rk... 
.+		#I wouldn't put anything past these guys.
. 		if [ "$?" != "0" ]
. 		then
. 			let COPY_COUNT=100
.@@ -96,20 +127,21 @@
. 	done
. 	/bin/rm -f $LXTMPFILE
. else
.-	LEXPID=/sbin/pidof -s Z35Driver
-	if [ "$LEXPID" != "" ]
.-	then
.-		sleep 12
.-	fi
.-	$PDIR/Z35Driver $LXBIDIFLAG &
.+	#Duh.... I work for Lexmark... My code is 3xtr4 s3kr3t
.-  	/bin/rm -f $LXTMPFILE
.+	/bin/rm -f $LXTMPFILE
. fi
.-LEXPID=/sbin/pidof -s Z35Driver
-while [ "$LEXPID" != "" ]
.-	usleep 1000
.-	LEXPID=/sbin/pidof -s Z35Driver
.+#clean up after yourselves, for chrissake
.+/bin/rm -f ${INPUT_PIPE}
.+#not needed
.+#LEXPID=$PIDOF -s Z35Driver
+#while [ "$LEXPID" != "" ]
.+#	usleep 1000
.+#	LEXPID=$PIDOF -s Z35Driver
. exit 3

Some notes for people who have seen previous versions of their drivers:
The script provides essentially the same
functionality as the foomatic lexmarkwrapper did, but it only supports
the Z35. Also, the binary only driver now reads from
/var/spool/lexmark/Z35Driver/input_pipe instead of taking input from
stdin. They also introduced a whole slew of locking issues and race
conditions with this "functionality." See the patch for details.

Lexmark Z42

Why do I keep getting out of paper errors?

It sounds like
a sensor problem. If that is right you won't be able to print this test
page and you'd better call your support. Maybe they have a trick to fix
it. Or if it is in warranty it will be exchanged.

Lexmark Z44

Does this printer work with free software?

This printer has been reported working with the drv_z42 driver.

Lexmark Z45

Does this printer work with free software?

Generally, no.

It is possible to use the Z42 driver to print small images
(no larger than about 50x50 pixels). There is one report of this
printer working fine with the Z43 driver. Since the Z42 and
Z43 driver are the same backend ghostscript driver. There may
have been changes to the printer specifications at some point.

Please do not buy this printer expecting it to work.

Lexmark Z45SE

What does the SE stand for?

Second Edition.

What is improved in the second edition?

The z45SE has a higher resolution than the Z45:
Z45: 2400/1200
Z45SE: 4800/1200

Does it work with Free Software?


Lexmark Z51

How do I make it work?

You may have to remove the /usr/bin/foomatic-gswrapper
script if it produces errors that prevent
the gs-esp output from making it to the printer.

For example, you might see
Error: /undefinedfilename in (/dev/fd/0) in
/tmp/cupsomatic.log file.

Where do I get the lx5000 driver?

It is included by default in
ESP GhostScript.

Lexmark Z53

What drivers work?

  • GIMP and CUPS

Lexmark Z54

Which driver do I use?

The Z43 driver has been reported working.

Lexmark Z55

How do I make it work with Debian and GNUlpr?

1) Retrieve the drivers for the printer at

2) Unpack the .tar.gz file

3) Make sure that you have the following packages installed:
alien,rpm,enscript,print spooler
If you are going to interface with the printer through the usb port, make
sure that the usblp and printer modules are either loaded (with modprobe)
or compiled into the kernel. /sbin/lsmod

5) make a script called rpm-fake in /usr/local/bin
with the following contents:

cp $3 /usr/local/src

6) Make the following changes

chmod ug+x /usr/local/bin/rpm-fake
mv /usr/bin/rpm /usr/bin/rpm-real
ln -s /usr/local/bin/rpm-fake /usr/bin/rpm
mkdir /usr/etc
ln -s /sbin/pidof /bin/pidof

RedHat and a few other distros
prefer the /bin directory to store the pidof
binary, and the driver software isn't smart enough to look in the

11) Run the Lexmark installation script.

12) When the graphical installation program complains about unexpected
output from rpm --force ... quit the program.

13) ln -sf /usr/bin/rpm-real /usr/bin/rpm

14) There will be an rpm file in /usr/local/src that is similar to the
name of the downloaded driver file. Run the alien command on it

alien /usr/local/src/driver-name.rpm

15) Now there should be a .deb file in your current directory.

dpkg -i

16) ln -sf /usr/local/bin/rpm-fake /usr/bin/rpm

17) Run the installation script once more, this time forcing the
installation even though it will inevitably give the same error message.

18) mv -f /usr/bin/rpm-real /usr/bin/rpm

19) You should not need to configure the printing system if you use GNUlpr
or lprng, but with CUPS you may need to.

  • The input filter if: in /etc/printcap, should be /usr/bin/LexmarkZ55.
  • Specify the printer device as /dev/null. This is necessary because it is in fact the /usr/bin/LexmarkZ55 program that accesses the port and interacts with the printer, NOT the printing system.
  • The spool directory is probably /var/spool/lpd/lexmark.
  • Have one of the printer's aliases be lp.


How do I fix the error Failed dependencies?

ln -s /usr/lib/ /usr/lib/

Why does the new driver cause problems like huge fonts, difficulty feeding the paper correctly?

The new version was made for Lexmark Z55se (second edition).

How do I fix the line feed problem?

Use an earlier version 1.01.

What are some things to check for?

  • Make sure that there is a folder called /var/spool/lexmark/Z55Driver or /var/spool/lpd/lexmark If needed, create the folder and give it these permissions -- group:root, user:lp, global-readable, user/group writable, global-executable.
  • Change the lp= line to lp=/dev/null. This could be the main problem. It seems kind of pointless to send output to null, but it keeps the driver software happy.
  • Try changing if=/usr/local/lexmark/z55/scripts/LexmarkZ55 to if=/usr/bin/LexmarkZ55

How do I get it working with gentoo?

A part
of this instruction was taken from the Gentoo Forum for a Lexmark Z33
printer and some changes are made to make it work with the Lexmark
Z55 and printers of the same generation (Z*5).

1. Make sure that usb is support for your kernel.
you can type cat /proc/bus/usb/devices to check

2. Download the driver package from Lexmark site

3. add lprng to your existing USE var list.
USE="lprng other_var1 other_var2

4. download lprng

emerge lprng
rc-update add lprng default
mv /etc/lprng/printcap /etc/printcap
ln -sf /etc/printcap /etc/lprng/printcap

5. download the ghostscript

emerge ghostscript

6. download the enscript

emerge enscript

7. download killproc

emerge killproc

8. download rpm

emerge rpm

9. Prepare sone dir.

mkdir /etc/rc.d
ln -s /etc/init.d /etc/rc.d/init.d
mkdir /etc/rc.d/rc3.d
mkdir /etc/rc.d/rc5.d

10. install the driver package from lexmark:
- unpack the package,you will have two file.
one is REAME,the other is lexmarkz*.sh

sh lexmarkz*.sh

( If you get error messages in the
installation of the Lexmark driver, ignore it. )

11. Make this link

ln -s /etc/enscript.conf /usr/etc/enscript.conf

If a error occurs, check if the directory exist.

12.Corrects some directory permissions.

checkpc -f

13. Now you can print. Start lprng
/etc/init.d/lprng start or reboot your

Lexmark Optra e+

How do I switch to PCL or PostScript?

Use the smartswitch on the printer, set it to pcl/ps.