10

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: sudo adduser $USER 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.

Related

  1. https://alicious.com/iscan-linux-networked-epson/
  2. https://wiki.archlinux.org/index.php/SANE/Scanner-specific_problems#Epson
  3. Running a epson Scanner perfection 3170
  4. Syntax error when installing Epson Linux scanner driver (for v550)
  5. https://bbs.archlinux.org/viewtopic.php?id=182346
  6. Scanner Epson L210 for Ubuntu 16.04 is NOW working
  7. https://exain.wordpress.com/tag/epkowa/
  8. http://fbcorner.tuxfamily.org/linux.html
  9. https://forums.linuxmint.com/viewtopic.php?t=279318
  10. How to install EPSON l210 scanner
  11. Simple Scan cannot find scanner
  12. https://gist.github.com/unfulvio/e8daa0a78482a03e0358b0f5afee8b03
  13. https://linux.die.net/man/7/sane
  14. Scanner Not detected by Simple Scan
  15. https://community.clearlinux.org/t/scanner-not-recognized-part-2/1719
  16. http://manpages.ubuntu.com/manpages/bionic/man5/sane-epson2.5.html
  17. http://www.subdude-site.com/WebPages_Local/RefInfo/Computer/Linux/ScannerHowTo/Scanner_HowTo_forEpson.htm
  18. https://www.gsp.com/cgi-bin/man.cgi?section=5&topic=sane-epkowa
5
  • 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, 2020 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. Jun 1, 2020 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. Jun 2, 2020 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). Jun 2, 2020 at 4:05
  • @trondhansen - I don't think so. So far, I couldn't even get the proper driver built. Jun 2, 2020 at 4:23

4 Answers 4

1

Just like others I could get Ubuntu 20.04 to find my scanner (in my case an Epson V370 connected via USB) after installing the Epson Imagescan drivers, but not to actually connect to to the scanner and use it.

I tried various things and in the end I stumbled upon another driver package from Epson called Epson Scan 2 (see http://support.epson.net/linux/en/epsonscan2.php). Installed that, and all of a sudden Simple Scan could use the scanner.

0

I had the very same problem with a slightly different Epson 3490: after upgrading to Ubuntu 20.04 it was detected but not scanning. Eventually the solution turned out to be very simple - see below.

My original sane-find-scanner output:

  # 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=0x04b8 [EPSON], product=0x0122 [EPSON Scanner]) at libusb:001:008

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

  # You may want to run this program as root to find all devices. Once you
  # found the scanner devices, be sure to adjust access permissions as
  # necessary.

And scanimage -L output:

device `snapscan:libusb:001:008' is a EPSON EPSON Scanner flatbed scanner

The scanner was even found by GUI scanning tools, however they were reporting errors like could not connect to the scanner.

After some research it turned out that the scanner is supported by the snapscan driver in sane, just the firmware file is missing.

This is how I install the firmware:

  1. Download the Linux driver package for your scanner from the official Epson support page. In my case I was searching for Epson 3490 Linux driver. The package was named iscan-plugin-gt-f520-1.0.0-1.c2.i386.rpm. Before downloading the licence conditions had to be accepted.

  2. Install rpm: sudo apt install rpm

  3. Extract the files from the Epson package: rpm2cpio iscan-plugin-gt-f520-1.0.0-1.c2.i386.rpm >epson.cpio

  4. Extract the firmware file from the newly created epson.cpio. The firmware file was located in /usr/share/iscan/esfw52.bin

  5. Copy the firmware file to a system location: sudo mkdir /usr/share/sane/snapscan ; sudo cp esfw52.bin /usr/share/sane/snapscan ; sudo chown root:root /usr/share/sane/snapscan/esfw52.bin

  6. Configure the firmware path in snapscan.conf: sudo vi /etc/sane.d/snapscan.conf

At the top of the config file enter the path. In my case:

# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /usr/share/sane/snapscan/esfw52.bin

After this the scanner works.

0

Some (or even all) Linux installation packages that Epson provides currently create invalid udev rules. As a result, no rule is installed at all. And this means that you can only access your scanner as root – which you shouldn't do.

See this answer that explains how to install an equivalent udev rule by yourself.

-1

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.

1
  • This solution heavily depends on the USB enumeration. Every time your scanner appears somewhere else than at 001:009 it won't work.
    – Brain
    Dec 25, 2020 at 14:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .