Epson Perfection 3170 Photo Scanner (aka GT-9400) on Ubuntu Feisty

This is a fairly niche application, but at my place of employment I have an Epson Perfection 3170 Photo Scanner. I'm not even using the photo (negative/slide) scanning capabilities, I'm just using it as an ordinary scanner. It is however very fast and unprecedentedly quiet. I wanted to use this scanner under Linux (Epson provides Windows 95+ drivers and MacOS 9+ drivers, but no Linux drivers) sometimes, and on the Mac sometimes.

Unfortunately the full specs for this scanner are not available so it is necessary to use a proprietary backend to utilize it. The driver is available from Avasys which is either an Epson subsidiary or exists only to behave as if it were one. The scanner driver is mostly-GPL, with a binary module to handle this particular scanner. You cannot simply use the traditional sane-epkowa backend, which is provided under Ubuntu by the libsane-extras package, to support this scanner. In addition, the install for this scanner conflicts with the traditional sane-epkowa backend, so you may not install the scanner driver and the libsane-extras package at the same time.

With all that said, this is the (current) procedure for setting up this scanner on Linux.

  1. Visit the Avasys Download Service for Linux.
  2. Scroll down and click the radio button for "Perfection 3170 PHOTO". Select "Debian" or "Others" for the distribution, and "Others" for the distribution version. Fill some information of your choice into the "Questionnaire". Click the next button.
  3. Download both "iscan" and "iscan-plugin-gt-9400" RPM files. You will need to click the links, because they used javascript to make you do so for some inexplicable reason.
  4. Convert both RPM files to .deb packages using alien:
    fakeroot alien --scripts filename
    Where filename is the entire name of the RPM file. You will need to do this twice, once for each RPM.
    The particular commands in my case (the filenames may have changed so this is for illustrative purposes only!) were as following:
    fakeroot alien --scripts Desktop/iscan-2.6.0-0.c2.i386.rpm
    fakeroot alien --scripts Desktop/iscan-plugin-gt-9400-1.0.0-1.c2.i386.rpm
  5. Install both deb files you have created; install the plugin last. It works like so:
    sudo dpkg -i filename
    Where filename is the name of the .deb file to install. Again, install iscan first, then iscan-plugin-gt-9400.
    In my case, the commands were:
    sudo dpkg -i iscan_2.6.0-1_i386.deb
    sudo dpkg -i iscan-plugin-gt-9400_1.0.0-2_i386.deb
  6. Plug the scanner in to power and then to USB. If the scanner is already plugged into USB, remove it and plug it back in. This was a necessary step in my case - the scanner was plugged in but not being recognized.
  7. Run iscan and bask in your scanning goodness.

I utilized this method because the nice people at Avasys have produced source code (the source with the binary blob for supporting the 3170 is available from the same place you get the RPMs) that does not build on modern Linux. They're still talking about gcc 3.3 and 3.4, and here we are on 4.x. I don't know if gcc is the reason, but regardless, they're stuck solidly in the dark ages.

To give credit where credit is due, I found the answer in the response to an Avasys forum post requesting a debian package.

One last wrap-up: You can find the manual for the scanner (which applies to Windows and Mac versions of the software, but which might still be useful to you) on Epson's website. You can even download it, and get this - you can search the downloaded version! Here's the command to download the manual with wget:

wget -r -np

That tells wget to do a recursive get without ever going to a directory that comes BEFORE the directory you're downloading, which keeps you from trying to download Epson's entire website.


Hi Martin Thanks for this it was really useful. I've been using Debian for over 10 years for almost everything but as I rarely scan stuff and we have a couple of dual boot machines around, I've always reverted to Windows to scan (laziness and inertia). Today I decided to bite the bullet 'cos I had a big scanning job to do and couldn't reconcile myself to resorting to windows yet again. Anyway, I spent a few hours going around in circles. sane-find-scanner could find my 3170 but whatever I tried in the udev and sane.d conf files, I couldn't get scanimage -L to locate it. I tried different solutions recommended elsewhere to no avail. I then uninstalled all the sane/scanning packages and their dependencies, removed the configuration files but left the two iscan packages intact. I then installed xsane and tried to run iscan which revealed this: "iscan: error while loading shared libraries: cannot open shared object file: No such file or directory" I installed libjpeg62 and hey presto xsane burst into life! Thanks again - this may help some poor soul in the future.

Add new comment