Table of Contents

Lexmark FAQ

General Questions

Forum: Printers from Lexmark and IBM

Where can I find a **table** of working Lexmark printers?

http://www.openprinting.org/printer_list.cgi?make=Lexmark

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

Related projects:lm1100pbm2l2030c2070pbm2l7klx5000lxm5700m

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:

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

Why does openprinting.org 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, www.gnu.org).

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 distros.

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?

http://drivers.lexmark.com/drivers.nsf/printer+driver/F18EB01AC454976585256952006E93AA?OpenDocument

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 driver.http://www.openprinting.org/download/printing/samsung-gdi/

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 onopenprinting.org 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

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 chooseGeneric 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.http://www.openprinting.org/show_driver.cgi?driver=ljet4

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

//// PATCH
BELOW ////

in a file in that same default location. Name the fileGenPCL5-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 theLexmark → 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: "<</HWResolution[[http://www.openprinting.org/75

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 gz.sh 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

:if=/usr/bin/LexmarkZ35:

line to

:if=/usr/local/lexmark/z25-z35/scripts/LexmarkZ35:

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

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

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

cat filetoprint.foo | /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 atauckEU.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 > trace.info

==== 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 … boxhttp://www.lexmark.com/US/support/drivers/index.html 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 system</tt>. 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 atLexmark-List 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 gz.sh 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

    :if=/usr/bin/LexmarkZ35:\

line to

    :if=/usr/local/lexmark/z25-z35/scripts/LexmarkZ35:\

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 @@
.-#!/bin/sh
.+#!/bin/bash
.+
.+PIDOF=�hich pidof
+if [ -z "$PIDOF" ]
.+then
.+  PIDOF=/sbin/pidof
.+fi
. 
. PDIR=/usr/local/lexmark/z25-z35
. CONFDIR=$PDIR/bin/lxgetconf VERIFY
@@ -76,18 +82,43 @@
. 		fi	;;
. 	esac
. }
.+
.+#HACK!!!!!
.+#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
. 	COPY_COUNT=0
.+	#factored out of loop.. see below
.+	image_conversion $LXTMPFILE "$LXRESOLUTION" "$LXDIMENSION"
. 	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 &
.-		image_conversion $LXTMPFILE "$LXRESOLUTION" "$LXDIMENSION"
.+		
.+		# 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 &
.+#		image_conversion $LXTMPFILE "$LXRESOLUTION" "$LXDIMENSION"
.+
.+		#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.
.+
.+		$PDIR/Z35Driver $LXBIDIFLAG
.+
. 		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
. 	image_conversion $LXTMPFILE "$LXRESOLUTION" "$LXDIMENSION"
.-  	/bin/rm -f $LXTMPFILE
.+	$PDIR/Z35Driver $LXBIDIFLAG 
.+	/bin/rm -f $LXTMPFILE
. fi
.-LEXPID=/sbin/pidof -s Z35Driver
-while [ "$LEXPID" != "" ]
.-do
.-	usleep 1000
.-	LEXPID=/sbin/pidof -s Z35Driver
-done
.+
.+#clean up after yourselves, for chrissake
.+/bin/rm -f ${INPUT_PIPE}
.+
.+#not needed
.+#LEXPID=$PIDOF -s Z35Driver
+#while [ "$LEXPID" != "" ]
.+#do
.+#	usleep 1000
.+#	LEXPID=$PIDOF -s Z35Driver
+#done
. 
. 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 50×50 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? ==== No.
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 seeError: /undefinedfilename in (/dev/fd/0) in/tmp/cupsomatic.log file. ==== Where do I get the lx5000 driver? ==== It is included by default inESP 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 http://www.lexmark.com 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$PATH. 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. Reboot! ==== How do I fix the error libslang.so.1 Failed dependencies? ====

ln -s /usr/lib/libslang.so /usr/lib/libslang.so.1

==== 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 http://www.lexmark.com. 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 computer.
Lexmark Optra e+ ==== How do I switch to PCL or PostScript? ==== Use the smartswitch on the printer, set it to pcl/ps.