Klaus Zimmermann's Corner

Journey through enabling an EPSON MFD to print and scan via network on Linux

Once again, another sort of note-to-self sort of thing that thankfully will be useful when I have to work with another EPSON multi-function printer in some household. This evening's mission once again involved printers, and I'm actually finding them to be a much less painful experience than I previously thought.

So anyway, this is how you make scanning and printing work in Linux with them (Model in my case: EPSON L375).


Printing is fairly straightforward: even though CUPS does not have its PPDs out of the box, they can be installed with EPSON's open source printer drivers for Linux. Your distribution should have a package referring to epson-escpr or something similar, install it. It's the package that contains a generic printing driver that many EPSON printers use.

In Ubuntu and Debian the package is called printer-driver-escpr, in Arch it's available to be built from the AUR under epson-inkjet-printer-escpr. If your distro doesn't offer it, the source for compilation can still be downloaded from EPSON's website.

After this step, CUPS should be able to nail your printer's drivers, listing a wide variety of other models from EPSON as well. Half of the mission is complete.

Network Scanning via xsane

Scanning as usual was slightly more of a pain in the ass, as the printer would not be "autodiscovered" via xsane etc, and feeding its IP address manually would also be fruitless. So here's what worked: EPSON also offers a scanning driver in a package called iscan. Use your package manager to find the appropriate package, or if not available, download and compile from source.

Once the package is installed, you must do some additional configuration with the sane files in order to allow the scanner to be autodetected within the network once you open your scanning application. This package has also installed the file epkowa.conf that contains the definition for the EPSON scanners, and this has to be included in the main config file. Edit the file /etc/sane.d/dll.conf and add the following line:


Then, edit /etc/sane.d/epkowa.conf to add the following definition:

net XXX.XXX.XXX.XXX # this must be the IP address of the printer

Now open xsane (that's right, no need to restart some service!) and watch your scanner be autodetected straight from the beginning. Rejoice!

Note: if you can't find the IP address of the printer (my L375 model, for example, does not have a display to show or configure stuff), you can use nmap to try to locate it along your network. No need to go full Elliot Alderson/hackerman here, a simple query like this should do the job:

nmap -sS 192.168.XXX.1-255 > network.txt 
# change XXX accordingly to match your subnet mask

In my case, ports 515 (printer) and 9100 (jetdirect) were open. For other models, the port numbers may be different but still there's the giveaway.

Further reading:

Credit where it's due: https://srm.gr/scanning-over-network-linux-xsane-and-wifi-or-ethernet-scanner-epson-l386/. Thank you, Bill Seremetis, for this! Hope other people can find your site.

This post is number #29 of my #100DaysToOffload project. Follow my progress through Mastodon!

Last updated on 12/29/21