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