Notes on getting Epson Stylus SX610FW printer working on Debian Squeeze

Installation

Initial configuration of the printer was done using a Windows machine. As that basically just consisted of telling the printer the (hidden) WiFi SSID and the WEP password, I think it could have been done using the console.

I also configured my DHCP server to give the printer a static address, which I could set up in my DNS tables (or host files). The printer can now be accessed from CUPS as socket://sx610:9100 (where sx610 is the hostname I have given it).

Driver

The Epson driver (pipslite) is not included in Debian Squeeze. After some soul-searching, I decided to use the pipslite driver from http://avasys.jp/eng/.

I went to the Avasys download page and tried to follow their instructions. Unfortunately, the pipslite package would not install on my Debian Squeeze system. So, I downloaded the source files and unpacked them using:

dpkg-source -x pipslite_1.4.0-5.dsc

Note: to build pipslite I had to install libltdl-dev:

aptitude install libltdl-dev

I built pipslite using:

dpkg-buildpackage -rfakeroot -b

I could then install the package file I had created:

dpkg -i pipslite_1.4.0-5_i386.deb

Then I installed the PPD:

cp Epson-Stylus_SX610FW-pipslite-en.ppd /usr/share/ppd/

I stopped CUPS, started pipslite and CUPS:

/etc/init.d/cups stop

/etc/init.d/pipslited start

/etc/init.d/cups start

Finally, I installed the printer into CUPS using the URL: socket://sx610:9100

Remote access

For my AMD64 system, I could not get a version of pipslite to build so I decided to set it up to print via my I386 system (which I set up above).

For directly connected printers, CUPS automatically sets them up to be shared but for network printers it seems to set the “not shareable” flag. I had to change the flag (on my I386 system).

Edit /etc/cups/printers.conf, find the section for the required printer (searching for pipslite-wrapper might be the quickest way) and change the “Shared” line to read:

Shared Yes

The printer was then being shared with other linux systems on the LAN (via the I386 system).

Printing using lpr

Although printing worked from graphical programs using CUPS, printing from lpr (and also from Wine) was failing with the following error message in /var/log/cups/error_log:

/usr/lib/cups/filter/pipslite-filter: **** ERROR **** : /usr/share/pipslite/paper_list.csv: List file is broken.

The problem turned out to be that in that circumstance, the parameter media=iso_a4_210x297mm is being passed to the filter and it cannot find that paper type. I do not know why that happened with direct printing but did not happen with CUPS printing but the fix was to edit the file /usr/share/pipslite/paper_list.csv to duplicate the “A4” line but with the first entry of the line changed to “iso_a4_210x297mm”. In my case, that meant adding the following line to the file:

iso_a4_210x297mm,0,2976,4209,42,42,42,42