Ubuntu – Epson scanner under Ubuntu 20.04

epsonsanescanner

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.


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

Best Answer

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.

Related Question