I mean to install scanner Epson 3170 Photo under Ubuntu 20.04. I post at the bottom the (usual) installation steps I took prior to checking if my PC finds the scanner.

Then, sane-find-scanner found the scanner

$ sudo sane-find-scanner

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.

found USB scanner (vendor=0x06cb, product=0x009a) at libusb:001:005
found USB scanner (vendor=0x04b8 [EPSON], product=0x0116 [EPSON Scanner]) at libusb:001:009
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

(Note: without sudo I got the error messages

could not open USB device 0x1d6b/0x0003 at 002:001: Access denied (insufficient permissions)

I mean to fix this later on, if I manage to overcome the following problems, unless this is part of the problem, which I guess it is not).

Then scanimage did not find the scanner

$ sudo scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).

So I edited /etc/sane.d/dll.conf, to add epkowa (it wasn't listed), and comment epson2; epson was already commented. The page SANE: External Backends (Drivers) mentions that the 3170 is supported by epkowa ("requires DFSG non-free iscan-plugin-gt-9400 overseas version of the GT-9400UF").

So I tried installing iscan-plugin-gt-9400. It is only available as an rpm, not deb. Looking for related info, I found in [Solved] Successful Image Scan Installation for EPSON USB Scanner and Epson Perfection 3170 Photo Scanner (aka GT-9400) on Ubuntu Feisty that going through the conversion rpm -> deb and installing them (two packages, actually) is the only way to make the 3170 work. I am not certain this changed from the time of those posts, but I decided trying.

Following instructions above, and additionally:

  1. Using Architecture: i386 amd64 instead of Architecture: i386, amd64 in debian/control files (otherwise error dpkg-gencontrol: error: 'i386,' is not a legal architecture in list 'i386, amd64' is thrown).

  2. Executing export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu" since I was getting several errors

    $ fakeroot debian/rules binary
    dpkg-shlibdeps: error: cannot find library libjpeg.so.62 needed by debian/iscan/usr/lib/sane/libsane-epkowa.so.1.0.15 (ELF format: 'elf32-i386' abi: '0101000300000000'; RPATH: '')
    dpkg-shlibdeps: error: cannot continue due to the errors listed above
    Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file.
    To help dpkg-shlibdeps find private libraries, you might need to use -l.
    dh_shlibdeps: error: dpkg-shlibdeps -Tdebian/iscan.substvars debian/iscan/usr/lib/sane/libsane-epkowa.so.1.0.15 debian/iscan/usr/lib/libesmod.so.1.1.0 debian/iscan/usr/bin/iscan returned exit code 2
    dh_shlibdeps: error: Aborting due to earlier error
    make: [debian/rules:27: binary-arch] Error 2 (ignored)

I managed to create iscan_2.10.0-2_amd64.deb (is it expected to get 2.10.0-2 instead of 2.10.0-1?) and iscan-plugin-gt-9400_1.0.0-2_amd64.deb.

Then I installed both packages with

$ sudo gdebi iscan_2.10.0-2_amd64.deb
$ sudo gdebi iscan-plugin-gt-9400_1.0.0-2_amd64.deb 

(I overwrote here my previously created /etc/sane.d/epkowa.conf).

Then I plugged the scanner and turned it on. And the I got error

$ iscan
iscan: error while loading shared libraries: libjpeg.so.62: wrong ELF class: ELFCLASS64

How can I proceed to get the scanner to work? (I expect once this problem is solved, there will be a few hurdles until it is working)

What I did:

  1. sudo apt-get install sane sane-utils libsane xsane

  2. Download imagescan-bundle-ubuntu-19.10-3.62.0.x64.deb.tar.gz

  3. Expand archive above and inside imagescan-bundle-ubuntu-19.10-3.62.0.x64.deb execute ./install.sh

  4. Add myself to group lp

  5. Reboot

  6. Verify

    $ groups
    user1 adm lp cdrom sudo dip plugdev lpadmin lxd sambashare vboxusers
  7. Plug the scanner in the USB and turn it on.


  • This is a very old device. imagescan doesn't support this device. The iscan is also old and supports only 32-bit architecture. I suspect it is feasible to build iscan for 64-bit, but that is not obvious. – Pilot6 Jun 1 at 14:28
  • @Pilot6 - In the link I posted (which succeeded in installing), it is explicitly mentioned to add amd64. This suggests it can be done. As detailed in the OP, what I had to do (and it is not mentioned there) is removing i386. Plus, I could not find the i386 packages mentioned in its point "4. Installation of Missing i386 Packages per Synaptic", but their non-i386 versions (I guess they are x64, against the lack of specification). I am not certain this is a problem. – sancho.s ReinstateMonicaCellio Jun 1 at 14:38
  • @Pilot6 - I got past the first posted error, and could build/install both packages. Please see edited OP, pointing to an issue likely related to your comment. – sancho.s ReinstateMonicaCellio Jun 2 at 2:51
  • i wonder if this is the same problem many people have had getting printers to work under ubuntu 20.04,usb communication problem.what i did was to update to latest kernel and remove the printer from my system and re install it,looks like the kernel was the problem for me(not the same printer but a simmilar problem). – trond hansen Jun 2 at 4:05
  • @trondhansen - I don't think so. So far, I couldn't even get the proper driver built. – sancho.s ReinstateMonicaCellio Jun 2 at 4:23

The problem might have to do with improper permissions.

In your case, you already found your scanner by running sudo sane-find-scanner:

found USB scanner (vendor=0x04b8 [EPSON], product=0x0116 [EPSON Scanner]) at libusb:001:009

(note the values from sane-find-scanner, you will need these later)

Now that you have this info, run the following command to check permissions:

sudo ls -l /dev/bus/usb/001/009

In my case the, permissions were like this:

0 crw-rw-r--   1 root     root     189, 386 Jun 25 06:34 ./001/009

This showed that only the root user and users in the root group had read and write permissions. All others had read-only permissions.

The solution is to run:

sudo chmod 0666 /dev/bus/usb/001/009

This gives everyone read and write permissions to the device.

Then run the ls command again:

sudo ls -l /dev/bus/usb/001/009

the output should verify that the permissions have changed:

crw-rw-rw- 1 root root 189, 386 Jun 25 07:29 /dev/bus/usb/001/009

Now the scanner should be available to all users, not just the root user.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.