Ubuntu and the Epson Stylus CX5900

By | November 20, 2006

I spent some time over the weekend getting my parent’s new Epson CX5900 printer/scanner to work. It seems to be either so new or so uncommon that Ubuntu didn’t really know what to do with it. So here I’ll document what I had to do (and then I’ll go file some bug reports so the right people get to see it :))

All this was done on Edgy, I upgraded them to that just before trying, in the hope that it would have drivers for it already. no such luck.

This is split into two parts because the functions are in no way related to each other.

The Printer
When you attempt to set the printer up with the Ubuntu printer interface, it detects it correctly, but has no driver for it. Instead, it suggest you use the CX5100 driver. This doesn’t work, instead it spits out blank pages. [Bug report]

After spending a while poking around, I eventually created a PPD file for the CX5800, and loaded that in through the CUPS web interface. It’s quite possible that simply selecting the CX5800 driver would work too. Once I got it going, I didn’t try to change it. Here’s what I did in case it’s necessary. Update: apparently generating the PPD is quite unnecessary, and just picking the CX5800 will do the job just the same. That’s not surprising at all.

Create the PPD file:
cups-genppd.5.0 -v 'Epson Stylus CX5800' -p .
Then add printer in the web interface, and use this driver. Note that I had added the package foomatic-filters-ppds before doing this. It may or may not be necessary.

After this, it seems to work fine. I still don’t know how to make it pick colour or grayscale, a quick glance at the properties box didn’t show anything obvious, but it may be there and I didn’t notice.

The Scanner
Making the scanner work was a bit trickier, but actually took me less time. Credit where it’s due, this thread on the Ubuntu forums was a big help.

First, make sure all the extra sane stuff is installed (libsane, libsane-extras and sane-utils).

Running sane-find-scanner spits out a fair amount of text, but also includes this line, which is key:
found USB scanner (vendor=0x04b8 [EPSON], product=0x082e [USB2.0 MFP]) at libusb:001:003

This gives the USB details of the scanner. Then add them into udev. I put them in /etc/udev/rules.d/45-libsane.rules, but in hindsight, it would be best to put them into a custom rules file so you don’t get messages about upgrades wanting to replace changed files.

This is the line to add:

# Epson CX-5900
SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="082e", MODE="664", GROUP="scanner"

[Bug report]

Note that you can’t add them into /etc/udev/libsane-extras.rules because it’s a symlink, and so the changing file doesn’t get picked up by udev (it’s documented in the readme, so I guess it’s a bug with libsane-extras). It would work after a reboot, but that’s just annoying.[Bug report]

You also need to tell sane about the scanner. This is done simply by adding:
usb 0x04b8 0x082e to the file /etc/sane.d/epson.conf. [Bug report]

To test it, unplug the printer’s USB connection and put it back in, to allow the new rule to be used. Now a ‘scanimage -L’ should cause the scanner part to move a bit, and it should report that it’s found something. It seems to detect it as a CX6000 or something.

4 thoughts on “Ubuntu and the Epson Stylus CX5900

  1. Henning

    It worked! You’re a hero – I struggled setting up the CX5900 on my mom’s Gutsy ThinkPad.

    Your article fixed the problem, thanks 🙂

  2. Pingback: Let It B…Laugg! » Scanner Epson Perfection V300 Photo

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.