-   Slackware (
-   -   How to Get an Epson WF-3540 Printer Working Under Slackware (

KDHofAvalon 02-05-2013 10:29 PM

How to Get an Epson WF-3540 Printer Working Under Slackware
So I just bought an Epson WF-3540 All-in-One Printer/Scaner/Copier/Fax, and I'm having trouble getting it to work under Slackware. I found some drivers in RPM and DEB format and tried converting them to Slackware packages, but it didn't work. For now I've uninstalled them until I can get some help. Does anyone here have experience with this printer?

I don't really care if scanning never works, just as long as I can print over either USB or WiFi.

guanx 02-06-2013 07:58 AM

Googling for "linux epson workforce 3540" lead me to

Does this solve your problem?

allend 02-06-2013 09:43 AM

I recently had to install drivers for a Brother printer from a .rpm package. Perhaps this may help

KDHofAvalon 02-06-2013 06:23 PM

Unfortunately neither of those pages helped. However I was able to get it working by adapting a SlackBuild for other Epson printer drivers to the RPM packages I had previously found, so I got it working in the end.

I'll upload the modified SlackBuild if anyone wants me to, but really they're so trivial that they could be done by search and replace. Not sed, search and replace.

Anyway, thanks for trying to help me.

allend 02-06-2013 07:04 PM

Just for fun, I downloaded three rpm packages from here and ran them through rpm2txz.

rpm2txz -c -S -n -d epson-inkjet-printer-201212w-1.0.0-1lsb3.2.x86_64.rpm
rpm2txz -c -S -n -d iscan-2.29.1-5.usb0.1.ltdl3.x86_64.rpm
rpm2txz -c -S -n -d iscan-2.29.1-5.usb0.1.ltdl7.x86_64.rpm

At first glance the resulting scripts in the converted packages do not show any problems. Could you elaborate on why this did not work for you?

KDHofAvalon 02-06-2013 07:40 PM

I'm not exactly sure. Everything seemed like it was working perfectly up until I actually tried to print, at which point I'd get a "No such file or directory" error from epson_inkjet_printer_filter, without telling me which file or directory it was looking for. Looking at the SlackBuild I modified, I would guess it was looking for something in /usr/resource -- which doesn't exist in Slackware and wasn't created let alone populated by the converted RPM. Keep in mind this is only an assumption based on the fact that the SlackBuild modifies epson_inkjet_printer_filter's config.h, changing all references to /usr/resource to instead point to /usr/share/$PRGNAM/resource, and later populates the altered path with binary files.

EDIT: Actually, that doesn't make sense, surely it would know to look in opt, seeing as that's where the RPM would have installed it in an RPM distro.... I don't know what it was looking for, only that it couldn't find it.

allend 02-07-2013 07:39 AM

Looking at the converted package the Epson_201212w.*.data files are installed to /opt/epson-inkjet-printer-201212w/resource and when I look at the binary filter I see

bash-4.2$ strings epson_inkjet_printer_filter | grep resource

I do not see a problem.

If you have this working for you then all is good. My curiosity is about whether the SlackDocs page about the Brother printer drivers has broader applicability. One thought is that the scripts in rpm packages are written for csh. Perhaps the converted packages are best installed from within tcsh.

guanx 02-07-2013 10:37 AM

Again a simple googling.

Search for epson inkjet printer filter no such file or directory, the first result redirects me to

That is to say, the program is requesting for a non-existant linker. Use readelf to find out the epson filter must be loaded by "/lib/". Make a symlink of your ld*.so and it should work.

I tried the 32-bit one. If you use the 64-bit one then don't copy my result but follow the procesure and use your result.

allend 02-07-2013 04:48 PM

Bingo! Thanks for the explanation guanx.

bash-4.2$ strings epson_inkjet_printer_filter | grep lib
%s:%d          <<%s>>:          load core library
%s:%d          <<%s>>:          Unload library
%s:%d          <<%s>>:          Unload core library
%s:%d          <<%s>>:          Unload core library completed

So on 64-bit Slackware a simple 'ln -s /lib64/ /lib64/' should suffice.

lpallard 03-10-2013 03:07 PM

Hey guys! if you feel like helping a fellow Slacker, please go on my thread at

I didnt want to hijack this thread for my own problems...


All times are GMT -5. The time now is 04:35 PM.