En/iscan software

Revision as of 12:49, 7 July 2015 by Wikiuser (talk | contribs) (Added links to newer ISCAN packages and scripts)

Welcome to Simone Giustetti's wiki pages.


Languages: English - Italiano



Iscan is the short form for Image Scan a scanner utility that runs under Linux. It's an Avasys Corporation product useful to obtain high quality images with Epson scanners or multifunction laser/inkjet printers. Many Epson scanners work under Linux only by mean of Iscan and it's related Avasys provided proprietary drivers.

Installing Iscan on a "not supported" Linux distribution, anything other than Fedora or Debian, is possible, but it has always been kind of an adventure. Maybe that's because binary packages are provided for free but without any form of support and, when things go bad, all users have are their troubleshooting skills. Iscan version 2.11 will be installed and configured on a Slackware system in this paper. More recent releases exist, but 2.11 works fine on any 32 bit Slackware system up to "current". A future article will provide an insight about Image Scan release 2.25 which introduced support to 64 bit architectures and as such is the ideal candidate for install on Slackware 13.0 and 13.1.

All tests for the present paper were performed on an Epson "Perfection v200 Photo" scanner.

We'll assume that both the sane and xsane packages are installed and properly functioning.


Iscan release 2.11 and earlier

Image Scan releases 2.11, 2.8 and earlier are made of 3 distinct components:

  • The Iscan scanner utility.
  • Firmware for supported scanners.
  • Proprietary drivers, another way to say software libraries meant to drive the hardware after the firmware was uploaded.

The two former components are provided by Avasys in binary only form and only for 32 bit architectures. Whoever were in need of a 64 bit software version should look for later releases; release 2.25 will be the subject of a future article.

Iscan software packages for a Slackware Linux system do not exist. Slackware Users owning an Epson scanner should build their own packages. Build scripts can be retrieved on the net from www.slackbuilds.org: Iscan and components build scripts

After successfully downloading the scripts, the following steps are needed in order to build the Iscan components:

  1. Build software.
  2. Convert the firmware rpm archive into a tgz package.
  3. Convert the proprietary drivers rpm archive into a tgz package.
  4. Configure Sane.


Software build

Download binary archive iscan.tar.gz from web site www.slackbuilds.org into the /tmp directory of your system. Start a root shell and decompress the archive by running:

  root@darkstar04:/root# cd /tmp
  root@darkstar04:/tmp# tar -zxf iscan.tar.gz

A directory named "iscan" will be created. Enter the directory and list its contents:

  root@darkstar04:/tmp# cd iscan
  root@darkstar04:/tmp/iscan# ls -la
  total 11
  drwxr-xr-x  2 1000 users 1024 2008-07-29 01:39 .
  drwxrwxrwt 13 root root  1024 2010-07-19 19:28 ..
  -rw-r--r--  1 1000 users  580 2008-07-30 03:59 README
  -rw-r--r--  1 1000 users  114 2008-07-30 03:59 doinst.sh
  -rwxr-xr-x  1 1000 users 3297 2008-07-30 03:59 iscan.SlackBuild
  -rw-r--r--  1 1000 users  221 2008-07-30 03:59 iscan.desktop
  -rw-r--r--  1 1000 users  279 2008-07-30 03:59 iscan.info
  -rw-r--r--  1 1000 users  753 2008-07-30 03:59 slack-desc

The url address to the source code and a checksum, parameter MD5SUM, to check for archive integrity can be found into the file iscan.info.

Please read file README from start to finish before anything else. There can be found information later needed to configure Sane and its back-end.

Download the source code archive to directory /tmp/iscan and check for its consistency:

  root@darkstar04:/tmp/iscan# md5sum iscan_2.11.0-1.tar.gz
  76991cb47dc8ff1269e47d4bce3d41b5  iscan_2.11.0-1.tar.gz

Should the outputted value differ from the iscan.info file parameter, the downloaded archive is probably corrupted and you'll need to download it again; maybe from a mirror source.

Assuming the checksum was OK we'll proceed opening file iscan.SlackBuild with a text editor of choice. A few parameters needed by the building process are located in the file head. These values should be consistent with the archive name. The VERSION parameter should be assigned the downloaded release value. Script iscan.SlackBuild head should look like:

  PRGNAM=iscan
  VERSION=2.11.0
  ARCH=${ARCH:-i486}
  BUILD=${BUILD:-1}
  TAG=${TAG:-_SBo}

If not, update variables to the actual values and save the file. To start the tgz package build process run commands:

  root@darkstar04:/tmp/iscan# chmod a+rx iscan.SlackBuild
  root@darkstar04:/tmp/iscan# ./iscan.SlackBuild

The former assigns execution permissions to the script, while the latter executes it. The shell script will automatically execute each needed step to compile and package Image Scan software. The resulting Slackware compliant package will be found inside directory /tmp. To install it open a root shell and run the following commands:

  root@darkstar04:/tmp/iscan# cd /tmp
  root@darkstar04:/tmp# installpkg iscan-2.11.0-i486-1_SBo.tgz


Firmware rpm archive conversion

As previously stated, Image Scan software is released under the GPL license, but firmware and scanner drivers are not. There is no available source code for them, meaning that there is no way to compile those components. The only available option in such cases consists of converting software house provided packages available from another Linux distribution repository. In Iscan case the Suse repository packages will be used. Those packages group into a single file the many spread across the Avasys web site binaries. Conversion scripts can be downloaded for www.slackbuilds.org.

Download iscan-firmware.tar.gz file from www.slackbuilds.org into directory /tmp of your Linux box. Open a root shell and decompress the document archive:

  root@darkstar04:/root# cd /tmp
  root@darkstar04:/tmp# tar -zxf iscan-firmware.tar.gz

Move into newly created iscan-firmware directory and list its contents:

  root@darkstar04:/tmp/# cd iscan-firmware
  root@darkstar04:/tmp/iscan-firmware# ls -la
  total 11
  drwxr-xr-x  2 1000 users 1024 2008-05-01 22:39 .
  drwxrwxrwt 13 root root  1024 2010-07-19 23:21 ..
  -rw-r--r--  1 1000 users  292 2008-03-29 00:59 README
  -rw-r--r--  1 1000 users 1062 2008-03-29 00:59 README.Slackware
  -rw-r--r--  1 1000 users  187 2008-03-29 00:59 doinst.sh
  -rwxr-xr-x  1 1000 users 2301 2008-03-29 00:59 iscan-firmware.SlackBuild
  -rw-r--r--  1 1000 users  339 2008-05-01 22:39 iscan-firmware.info
  -rw-r--r--  1 1000 users  946 2008-03-29 00:59 slack-desc

Again the file with *.info extension, iscan-firmware.info, contains some useful information: the Suse repository download url address and checksum to verify package consistency. It is again strongly suggested to read files README and README.Slackware prior to any activity. Useful information for later configuration can be found inside both files.

Download file iscan-firmware-2.8.0.1-11.noarch.rpm into /tmp directory, checksum it and if everything seems OK go on building the Slackware package:

  root@darkstar04:/tmp/iscan-firmware# md5sum iscan-firmware-2.8.0.1-11.noarch.rpm
  a6df3bdd35b12cd784b4439fb0b6524c iscan-firmware-2.8.0.1-11.noarch.rpm

If the outputted value equals the one inside file iscan-firmware.info then check the variable assignments at the beginning of file iscan-firmware.SlackBuild:

  PRGNAM=iscan-firmware
  VERSION=2.8.0.1
  RPMBUILD=11 # <-- This is the build number used by OpenSuSE in their RPM
  ARCH=${ARCH:-noarch}
  BUILD=${BUILD:-2}
  TAG=${TAG:-_SBo}
  CWD=$(pwd)
  TMP=${TMP:-/tmp/SBo}
  PKG=$TMP/package-$PRGNAM
  OUTPUT=${OUTPUT:-/tmp}

Proceed with package conversion.

  root@darkstar04:/tmp/iscan-firmware# chmod a+rx iscan-firmware.SlackBuild
  root@darkstar04:/tmp/iscan-firmware# ./iscan-firmware.SlackBuild

The slackbuild script will generate a new package inside /tmp directory. Install it running commands:

  root@darkstar04:/tmp/iscan-firmware# cd      
  root@darkstar04:/tmp/iscan-firmware# installpkg iscan-firmware-2.8.0.1-noarch-2_SBo.tgz


Proprietary drivers rpm archive conversion

Last component to be installed in order to use the scanner with a Linux system. As for the firmware, proprietary drivers are available from Avasys Corporation in binary form only and as such are to be extracted from a rpm file. Again the Suse repository packages will be used as the foundation to build the Slackware ones. The procedure should be easy by now. Open a root shell and run commands:

  root@darkstar04:/root# cd /tmp
  root@darkstar04:/root# tar -zxf iscan-proprietary-drivers.tar.gz
  root@darkstar04:/tmp# cd iscan-proprietary-drivers
  root@darkstar04:/tmp/iscan-proprietary-drivers# ls -la
  total 9
  drwxr-xr-x  2 root root 1024 2008-08-19 23:22 .
  drwxrwxrwt 13 root root 1024 2010-07-20 00:14 ..
  -rw-r--r--  1 root root 1630 2008-08-19 10:52 README
  -rw-r--r--  1 root root    0 2008-08-19 22:55 doinst.sh
  -rwxr-xr-x  1 root root 2339 2008-08-19 11:36 iscan-proprietary-drivers.SlackBuild
  -rw-r--r--  1 root root  354 2008-08-19 23:03 iscan-proprietary-drivers.info
  -rw-r--r--  1 root root  951 2008-08-19 23:13 slack-desc

Check for archive consistency and verify variable assignments at the beginning of script file iscan-proprietary-drivers.SlackBuild:

  root@darkstar04:/tmp/iscan-proprietary-drivers# md5sum iscan-proprietary-drivers-2.8.0.1-11.i586.rpm
  2a87f33b1838ae5baa1652d1ac5d9bfc  iscan-proprietary-drivers-2.8.0.1-11.i586.rpm
  PRGNAM=iscan-proprietary-drivers
  VERSION=2.8.0.1
  RPMBUILD=11 # <-- This is the build number used by OpenSuSE in their RPM
  ARCH=${ARCH:-noarch}
  BUILD=${BUILD:-1}
  TAG=${TAG:-_SBo}
  CWD=$(pwd)
  TMP=${TMP:-/tmp/SBo}
  PKG=$TMP/package-$PRGNAM
  OUTPUT=${OUTPUT:-/tmp}

Run the slackbuild script and install the new package:

  root@darkstar04:/tmp/iscan-proprietary-drivers# chmod a+rx iscan-proprietary-drivers.SlackBuild
  root@darkstar04:/tmp/iscan-proprietary-drivers# ./iscan-proprietary-drivers.SlackBuild
  root@darkstar04:/tmp/iscan-proprietary-drivers# cd /tmp
  root@darkstar04:/tmp/iscan-proprietary-drivers# installpkg iscan-proprietary-drivers-2.8.0.1-noarch-1_SBo.tgz


Sane Configuration

After all 3 packages are installed, some Sane (Scanner Access Made Easy) configuration files need to be updated in order for the system to detect and use the scanner. All files are located in the /etc/sane.d directory. 3 files are in need of updates, they are:

  • /etc/sane.d/dll.conf
  • /etc/sane.d/epkowa.conf
  • /etc/sane.d/snapscan.conf

If not present a new line must be added to file /etc/sane.d/dll.conf; a line consisting of but a single word: "epkowa". That's the name of the back-end Sane uses to transfer data and instructions to the connected scanner.

File /etc/sane.d/epkowa.conf is used to impose whether the scanner hardware is connected via the Usb or Scsi port. Below is the Epson "Perfection v200 Photo" Usb attached scanner configuration:

  # epkowa.conf -- sample configuration for the EPKOWA SANE backend
  # Copyright (C) 2004  Olaf Meeuwissen
  #
  # See sane-epkowa(5), sane-scsi(5) and sane-usb(5) for details.
  #
  # SCSI scanners can be configured simply by listing the path to the
  # device.  For example, if your system claims to have a /dev/scanner
  # SCSI device, all you have to do is uncomment the following line:
  #
  #/dev/scanner
  #
  # In the interest of maintainability, most installations would have
  # /dev/scanner sym-linked to the real SCSI scanner device node.
  #
  # An alternative way that works for many operating systems and is a
  # little bit more generic, is to have the backend probe for your SCSI
  # scanner with the following configuration command:
  #
  #scsi EPSON
  #
  # On systems with libusb, the following line is sufficient to get the
  # backend to recognise your USB scanners.  It presumes, however, that
  # the scanner---more precisely, it's USB product ID---is known to the
  # backend.
  # For all USB scanners that are officially supported by this backend,
  # this presumption is true.  A list of such scanners can be found in
  # sane-epkowa(5).
  #
  usb
  #
  # For any USB scanner not known to the backend (yet), you may, at your
  # own peril(!!), force the backend to recognise and use it via libusb.
  # You can do so by the following configuration command:
  # 
  #   usb <USB vendor ID> <USB product ID>
  #
  # SEIKO EPSON's USB vendor ID is '0x04b8' (without quotes).  In order
  # to find the USB product ID, use lsusb(1) or, on Linux systems, peek
  # at the information in /proc/bus/usb/devices.
  # A sample configuration for the Perfection 1650 (GT-8200), which has
  # a product ID of 0x0110, would look as follows:
  #
  #usb 0x04b8 0x0110
  #
  # When not accessing your USB scanner via libusb, you may need to use
  # one of the configuration commands below or commands that are almost
  # the same.  These commands typically access the scanner via a kernel
  # scanner module.
  #
  #usb /dev/usb/scanner0
  #usb /dev/usbscanner0
  #usb /dev/uscanner0
  #
  # Linux had a scanner module until version 2.6.2.  As of version 2.6.3
  # libusb is your only option.  Linux' scanner module can be loaded via
  # the modprobe(8) command like so:
  #
  #   modprobe scanner vendor=<USB vendor ID> product=<USB product ID>
  #
  # If the scanner module already knows the vendor and product IDs, you
  # do not have to specify them.  If you want to have this done automa-
  # tically every time you boot, you can add the above line, except for
  # the modprobe command itself, to your /etc/modules file.
  #
  # Although not tested with this backend, parallel port scanners should
  # be usable.  You can configure them as shown below, but I do not know
  # much about the details.  Information is welcome.
  #
  #pio 0x278
  #pio 0x378
  #pio 0x3BC

Back-end options must be added to the /etc/sane.d/snapscan.conf file. The file contents consist of a list of scanner models and their related firmware. Remove the leading # from the line with the firmware corresponding to the connected hardware. Below you'll find the configuration file for Epson "Perfection v200 Photo" scanner:

  #-------------- EPSON Image Scan! for Linux Scanner-Firmware --------------
  #
  # Perfection 2480/2580 PHOTO (esfw41.bin)
  #firmware /usr/share/iscan/esfw41.bin
  #
  # Perfection 3170 PHOTO (esfw32.bin)
  #firmware /usr/share/iscan/esfw32.bin
  #
  # Perfection 3490/3590 PHOTO (esfw52.bin)
  #firmware /usr/share/iscan/esfw52.bin
  #
  # Perfection 4180 PHOTO (esfw43.bin)
  #firmware /usr/share/iscan/esfw43.bin
  #
  # Perfection 4490 PHOTO (esfw54.bin)
  #firmware /usr/share/iscan/esfw54.bin
  #
  # Perfection V10/V100 PHOTO (esfw66.bin)
  #firmware /usr/share/iscan/esfw66.bin
  #
  # Perfection V350 PHOTO (esfw68.bin)
  #firmware /usr/share/iscan/esfw68.bin
  #
  # Perfection V200 PHOTO (esfw7A.bin)
  firmware /usr/share/iscan/esfw7A.bin


Program start

Once the configuration files are in place, the scanner utility can be run from the command line issuing:

  root@darkstar04:/root# iscan

that will load the graphic interface to the scanner. Many Window Managers, Kde and Xfce among them, include an icon to run Iscan from the main menu. The icon is part of the the Graphics menu.

The images below depict the Image Scan software running on a 32 bit Slackware 13.1 system.

 

 


Conclusion

This is pretty much it. We discussed how to install Image Scan software for Linux and configure Sane and its back-end: epkowa in order to use an Usb connected scanner. A future paper will deal with 64 bit systems and an Iscan current release.

Below is the link to Image Scan 2.11 package. The package was built for i486 architectures and is distributed in the hope that it will be useful: Image Scan 2.11. Firmware and proprietary drivers are subject to a license other than the GPL therefore refer to the Avasys web page for download.


Updated Packages / Scripts

All software is subject of updates and new releases, adding functionality and supporting newer hardware devices. Packages and scripts updated to a recent Iscan release can be found in the following web page.


For any feedback, questions, errors and such, please e-mail me at studiosg [at] giustetti [dot] net


External links




Languages: English - Italiano