Epson Printer Support under Linux

NOTE: This document is probably a bit outdated these days, but the serial settings mentioned are still needed if you plan to use these Epson printers over a serial connection. I'll whack up the scripts I use on Debian soon.

Linux contains support for a good set of printers from just about everyone who doesn't produce WinPrinters (cheap crap that only works under Windoze). Epson has been making printers since the dawn of time (well, at least since I was born) and so we have support for just about every epson printer to some extent.I am running an Epson Stylus Color 600 and this is exactly what I did to get it working, it may not be the ideal way, but comments are always welcome. My email is stewart at flamingspork dot com

In printtool (this is the printer control panel from control-panel), make sure you are running it as root, you can add a print queue for your epson by clicking "add". You'll now have an edit printtool entry box open (if you don't, select the new queue and click "edit"

main printtool window

edit a printtool entry

On a PC, printers are connected through the parralel port (something like /dev/lp) but on a Mac we connect them through a serial port. So you ask - what the hell device is my printer port? Unfortunately, it's nothing like /dev/printer or /dev/modem.

Mac Serial Ports:

God knows why there are 2 devices linked to the serial ports (anyone know?) but my guess is that the chip that controls the serial ports on Mac hardware is a CUA (CUDA rings a bell but maybe it's just CUA) and so they're under /dev/cuaX (where X is a number) and under /dev/ttyS because of traditional UNIX/Linux stuff (tty Serial device I presume).

I hear from Adrian Taylor (at99@doc.ic.ac.uk) that using /dev/cua# is no longer recommended and that /dev/ttyS# is the prefered method now. He doesn't know why and neither do I but as long as it works for you, don't panic.

Anyway, enough of my dribble about Linux naming - back to the job at hand, getting your Epson to work. At the edit dialog you have a few things you have to set up.

 

  1. You have to decide on what you have to call your print queue. I presume you can't use spaces or special characters, but you may be able to (better to play it safe). I've kept mine to the default lp but you might want to call it "epson", "epsonColor600" or something a bit more meaningful.
  2. Spool Directory - the default here is probably okay (/var/spool/lpd/lp) although you might want to change it to somewhere else if you have multiple printers or if you don't have a lot of free disk space on /var.
  3. File limit - You can set this to something if you're just plain evil and don't like people printing stuff or the only way you can get people to talk to you is if they're complaining about linux not working. The reason I don't encourage the setting of a limit is that some postscript pages can get quite large (think about printing a page full of high quality scanned images). Of course, you may want to set a limit so that people can't do this, or if you just want the printer to be used for small text/documents.
  4. Printer device - I've explained above what ports are what devices. Some people on comp.os.linux.ppc have reported troubles when they've used /dev/cua1 so to be on the safe side, use /dev/ttyS1 for the "Printer Port" or /dev/ttyS0 ( I think this is correct for the modem port, if it isn't, try /dev/ttyS2 or the /dev/cua0)for the "Modem Port".
  5. Input Filter - see below

The above image are my settings for my Epson Stylus Color 600. You should select the appropriate "Printer Type" for your printer. Most of the Stylus line are under "Epson Stylus Color (UP)" including a "generic" item for "Stylus Color any type".

If (After) you've selected "Epson Stylus Color (UP)" you have to select a "Color Depth / Uniprint Mode". Unusually, instead of normal choices such as "color" and "greyscale" or something else equally as logical, there are specific items for different stylus printers at different resolutions. Have a look down there and select one you think will be suitable. I have mine on the generic driver as it prints faster than the Stylus 600 driver at 720dpi. Maybe I should set it to the 360dpi Stylus Color 600 driver - I'll give it a try and report back sometime.

You should also set the "Send EOF after job to eject page".

You can now click okay and save your settings and exit printtool. You may have to "restart lpd", I'm not sure - can't harm you to do so. Do this from printtool's lpd menu.

YOU ARE NOT QUITE READY TO PRINT YET!!!

As I found out, if you go and print stuff out now, you get just pages and pages of commas. This is not very productive and the only way you're going to be fooled that this is good is if you've got poor eyesight and you take your glasses off.

However, there is a fix. For a lot of Epson printers (well, the 600 and probably the 800) the serial port needs to be set to a higher speed then what Linux defaults it to. You may want to just try printing something now (maybe the test page from printtool) to see if you get the comma problem. If you don't, congratulations but if you do, read on MacDuff!

You need to have the system execute these two commands everytime it starts up. I can't remember where I put them now but a good place would probably be somewhere like /etc/rc.d/rc.local or similar (depends on your version and distribution of linux).

stty 230400 raw -echo cstopb < /dev/ttyS1
stty ixon ixoff < /dev/ttyS1

Okay, now all you have to do is either restart (so the above 2 lines will be executed) or just type them in manually (hey, this is linux, you never have to restart to fix something - well, except if you're upgrading your kernel).

NOTE FOR Epson Stylus Color 740 users: This is what Gierke (pgierke@mac.com) has to say about it:

I have an Epson Stylus Color 740, and I managed to get decent quality B&W printouts from it by following a very simliar procedure. The one minor difference is that for some reason, the --echo switch on the stty command was causing printouts to be nothing but garbled text. Removing this cleared up that problem and I am now able to print postscript and raw text beautifully. BTW, it didn't seem to really matter which .upp file I chose since I've gotten identical results with both the generic stcany.upp and the 740-specific .upp files. Eh, as long as it works.

You should now be able to print from any program! Try they printtool test pages and print something from netscape to see the results. Note that linux color matching is nowhere near that of Apple's ColorSync so don't expect supurb results or anything. If you want that, print from under MacOS. To get the best speed/quality results, have a fiddle with different printer types in printtool. Try the generic stylus setting instead of the one specific to your printer. As always with linux, don't be afraid to fiddle, that's how you learn stuff!

Hopefully this has helped you, if not, give me an email or even better, post to comp.os.linux.powerpc. It's full of groovy PowerPC linux people (even people who work for YellowDog and LinuxPPC) and i'll be there. Or you can drop me an email at stewart at flamingspork dot com, or ICQ me on 6734154.

Cheers,
Stew