$Id: README.me,v 1.16 1999/05/15 14:50:40 henryk Exp $ LEXMARK 7000 PRINTER DRIVER FOR LINUX (AND OTHER OPEN SOURCE SYSTEMS) (C) 1999 Henryk Paluch paluch@bimbo.fjfi.cvut.cz May 16, 1999 PROGRAM RELEASE: 990516 Hi folks! This is my seventh release of Lexmark 7000 driver for Linux. The most important change is experimental UNTESTED! color support for Lexmark 5700, 5770. Messages were cleaned up. Also pbm2l7k should cleanly exit in case of memory allocation error. Also see CHANGES. MANY PARTS OF THE DRIVER WERE REWRITTEN TO ACHIEVE COLOR SUPPORT. THIS VERSION MAY CONTAIN NEW BUGS (EVEN FOR BLACK PRINTING). USE ON YOUR OWN RISK! Lexmark does NOT provide protocol specification for third party. They consider it "copyrighted". So, this work is completely based on disassembling printing files (using driver for Windows and Print to File capability in programs). It does mean, that this program comes WITHOUT ANY WARRANTY! Use it on your own risk only! This release is not "Plug & Play". Read the instructions carefully. 1. CURRENT FEATURES o Black/White printing 600x600 dpi (if you need 600x300d dpi, use older 990207 revision, please) o Preliminary 600x600 dpi colour printing in CMY and CMYK mode - tested on Lexmark 7000. BE SURE YOU HAVE AT LEAST 120MB OF FREE VIRTUAL MEMORY, WHEN PRINTING IN COLOR! o RedHat 5.x RPM's for easier installation o Debian dpkg configs - *.deb will follow soon (I hope) o work as filter PBM -> printer, e. g. easy integration with Ghost-Script o available under GNU GPL license including source code o support for Lexmark 5700 (only Black & White printing tested) o from 990321 relase should not crash, when printing large amount of black pixels :-) o reduced memory footprint when printing in color (however it does not reduce ghostscript memory requirements) 2. SUPPORTED PRINTERS The table below shows experience of Lexmark users with that driver. Pay attention to column 'WORKS'. Model Works Notes ----------------------------------------------------------------- Lexmark 7200 YES reported by Dan Davis Lexmark 7000 YES reported by Nigel Lock and myself :-) Lexmark 5770 YES reported by Paul Gratz Lexmark 5700 YES reported by Brian Wainscott and others. Lexmark 5000 YES works in Lexmark 7000 mode Lexmark 3200 NO reported by Chris Davis Lexmark 2050 NO (got sample output from Brant Nesbitt) Lexmark 1100 NO reported by Ben Adler. The protocol seems to be very different. I'll need tons of luck to have success 3. FILES File Description ----------------------------------------------------------------------------- CHANGES changes between releases Makefile project Makefile README this file dbman manage Lexmark entries in RedHat printerdb (printtool) debian/* files needed to make Debian dpkg lexmarkprotocol.txt description of "top secret" protocol lexmark????-filter magic filter files lexmark*.spec RedHat's RPM spec file to build *.rpm pbm2l7k.c the Lexmark 7000 driver (works as filter) pbm2lex5700 prints Black & White PBM-raw on Lexmark 5700 pnm2lex5700 prints (?) RGB PNM-raw in color on Lexmark 5700 pnm2lex7000 prints RGB PNM-raw in color on Lexmark 7000 pr5700.prn initialization (prologue) for Lexmark 5700 (obsolete) pr7000.prn initialization (prologue) for Lexmark 7000 (obsolete) ps-to-printer.fpi automatic printing for RedHat 5.x (obsolete) pscprint prints postscript in color psprint prints postscript file to /dev/lp1 stairs.pbm test bitmap for all 192 ink jets stairsb.prn Black & White stairs for Lexmark 7000 stairsc.prn Colour stairs for Lexmark 7000 4. INSTALLATION 4.1. Installing rpm version on RedHat You should have 'printtool' and 'rhs-printfilters' installed on you Red- Hat. This package was compiled on RedHat 5.2 or 6.0. If you use old RedHat 4.2 you need to recompile rpm package from source using 'rpm --rebuild lex- mark7000linux-990516-1.src.rpm'. Install binary rpm package: # rpm -Uvh lexmark7000linux-990516-1.i386.rpm Start 'printtool': # /usr/bin/printtool If printtool screams something about missing stat in shared libraries, upgrade your Tcl/Tk or try this trick: # /usr/bin/wishx < /usr/bin/printtool Add printer using 'Add' and click on 'Select' filter. Select proper printer and carefully follow instructions shown in a right top window, other- wise you fail to configure the printer properly. If you don't see your printer in a list, try to recreate Lexmark entries in /usr/lib/rhs/rhs-printfilters/printerdb using: # dbman -i Try print test page. 4.2. Notes about color printing Color printing is VERY resource intensive. Even my Celeron 300MHz with 64MB RAM is a bit slow to do the work without pauses in printing :-( Some ver- sion of GhostScript refuses makeing of large bitmaps, thus some pictures will print in Black & White instead of color (observed on Netscape's PostScript out- put). The workaround is to add -dMaxBitamp=102000000 to GhostScript command line. REMEMBER THAT YOU SHOULD HAVE AT LEAST 120 MB OF FREE VIRTUAL MEMORY TO PRINT IN COLOR SUCCESFULLY!!! 4.2.1. How color printing works ghostscript is used to generate PNM-raw RGB image. This image is converted using my 'pnmraw2cmyk' program. pnmraw2cmyk convert RGB PNM-raw to monochro- matic PBM-raw image. To speedup printing and reduce memory usage, pnmraw2cmyk should be invoked with '-i' argument to generate interlaced PBM-raw image (it does mean that there are Cyan Magenat Yellow and optionally Black interlaced, thus pbm2l7k may print them immediately). Note that printers use CMY(K) (Cyan Magenta Yellow, Black) color space rather than RGB (Red Green Blue). Also pnmraw2cmyk converts 256-color levels to 2-levels of CMYK (e.g. dithering). pbm2l7k converts monochrome Black & White image or Interlaced CMYK image to Lexmark printing codes. Color interlaced bitmaps are autodetected seeking for signature in comment lines of PBM-raw image, e.g., '-c' option no longer works. 4.3. Installing deb version on Debian This section needs to be written. The driver contains Debian configs con- tributed by Anthony Fok, however I don't have Debian installed. Binary *.deb packages should be available on http://packages.debian.org 4.4. Installing on other Linux/Unix systems (1) Build the project from source $ make (2) It should compile all required binaries. (3) Edit 'prefix' in Makefile to suit your needs. (4) Install compiled binaries: # make install (5) Add printer entry to /etc/printcap. It depends on your OS/distribution how to do it. Sample entry could be created as follows (this stuff is untested!): # # /etc/printcap # lp:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :lp=/dev/lp0:\ :if=/var/spool/lpd/lp/filter: Where: sd spool directory (need to be created using mkdir /var/spool/lpd/lp). sh suppress header (banner) lp printer port device if input filter - script that transfer input file to printer escapes /var/spool/lpd/lp/filter would look like: #!/bin/sh # Prints PostScript in Black & White on Lexmark 7000 gs -dNOPAUSE -q -sDEVICE=pbmraw -sOutputFile=- -r600 \ - | /usr/bin/pbm2l7k Now you can print PostScript using command: # lpr colorcir.ps Look in scripts 'psprint' and 'pscprint' to see how to print PostScript in Black & White and Colour. 5. NOTES As I stated above, this driver is *pre-pre-pre-pre ALPHA* version. Use it on your own risk. I'll gladly appreciate bug reports and bug fixes concerning this driver. I also hope, that Lexmark will change his "OSS deny" policy soon. The most recent version of this driver should be available on: http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver/ ftp://sunsite.unc.edu/pub/Linux/hardware/drivers/lexmark7000*.tar.gz I hope you will enjoy this "underground" release of Lexmark 7000 printer driver Henryk Paluch, paluch@bimbo.fjfi.cvut.cz 6. THANKS I'd like to thanks to many people for feedback and help to make the driver to work on additional Lexmark models. The list comes in chronological & chaotic order: Dithering routines were ripped from print-util.c - part of GIMP package. That file was written by Michael Sweet (mike@easysw.com) Special thanks to Peter Samuel for RedHat printtool config and solving "color" problems with ghostscript. Special thanks to Anthony Fok that contributed Debian dpkg configs and lex- mark{5700,7000}-filter magic filters. 7200 series: Dan Davis - thanks for report, and notice about docs 7000 series: Nigel Lock - thanks for report, and notice about unclear point in installation docs. 5700 series: Stephen Vinall, Peter Mott, Brian Wainscott, Javier Munoz, Phil Humpherys for feedback and help. 1100 series: Ben Adler - thanks for reports and nice test patterns. I apologize if someone is missing. I have little chaos in my mailbox ;-)