Iscan and Slackware 14.1 update

From Studiosg
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Welcome to Simone Giustetti's wiki pages.


Languages: English - Italiano


I was warned of some issues affecting the Iscan for Linux SlackBuild scripts available in the blog in early May. Luis Claire lamented lacking support for the Epson Perfection V330 Photo scanner. A bug notice that turned out to be the hunch I needed to correct and iron out the aforementioned scripts. Luis was kind enough to provide a list of the updates he had to write and offered his help in testing: I don't own a Perfection V330 and his help turned out to be really useful.


Iscan Update

The Image Scan for Linux packages release number was raised to the latest available: 2.30.1 for iscan and 1.36.0 for iscan-data. For both packages and iscan-plugin, the third and last one, the doinst.sh scripts used during installation were reviewed and updated using as much as possible relative paths in order to support installing in a location other than the default one. Another minor update regarded variables ARCH and MARCH used to set the target architecture for the packages. The updated SlackBuild scripts can now be used together with a chroot environment to produce an output package for a platform other then the installation one. For example a 64 bit host could be used to build a working package for a 32 bit one. A great deal of effort however went into updating the iscan-data and iscal-plugin packages.

The iscan-data build script was partially rewritten to apply a patch to source file usb.in at compile time. The usb.in file contains the USB unique identifiers for Epson scanners and the update adds the Perfection V330 identifier needed by the software to recognize and support it. A copy of the patch can be downloaded here: Iscan USB Id patch. While rewriting the script an issue with the standard location for libraries that caused 64 bit libraries to be installed in /usr/lib instead of /usr/lib64 was resolved.

Iscan-plugin was partially rewritten too in order to support all of the Epson currently provided plug-ins with minimal effort. A new variable: PRGNAM, was added for the purpose. PRGNAM is needed to support either scanners interfacing with the esci interpreter, the Perfection V330 is among them, or the iscan plug-in interfacing ones. More updates regarded adding checks while copying documentation files, libraries and XML descriptors. Finally the Luis suggested Perfection V330 configuration lines of code where added. The updated build script should prove helpful to produce a working package for any plug-in provided the environment variables ARCH, PLUGIN, PRGNAM, RPM_VERSION and VERSION are set to correct values.


Install Guide

The installation procedure wasn't touched by the update. Anyway the fundamental steps needed to create and install Iscan for Slackware Linux packages will be briefly described below. For more detailed instructions please refer to articles: Iscan for Linux and Iscan for 64 bit Linux; they may be old but still contain a lot of useful information.

The first step consists of installing package iscan-data, which in turn writes the Udev rule file: /etc/udev/rules.d/60-iscan.rules. Were the file not correctly filled with rules, You can reinstall the package or manually run command:

/usr/lib[64]/iscan-data/make-policy-file --force --mode udev --out-file /etc/udev/rules.d/60-iscan.rules

to update the file.

Install the iscan package and when done go on with its configuration adding string epkowa, the driver name, in a line by its own inside the configuration file /etc/sane.d/dll.conf. Eventually You'll have to update the /etc/sane.d/epkowa.conf configuration file adding options specific to your scanner, but the standard configuration is good enough for the majority of scanners.

The last step consist of installing the scanner specific plug-in. This last part is not mandatory for all models: please refer to Your scanner documentation for more information. The Epson provided rpm package should be converted in txz format compatible with Slackware. The SlackBuild script available here: Iscan Plug-in can be used to convert the rpm:

  • Download the archive containing the SlackBuild script in a directory of Your choice.
  • Uncompress the archive using the tarcommand:
tar -zxf iscan-plugin.tar.gz
  • Move to the iscan-plugin directory:
cd iscan-plugin
  • Copy or move the rpm package in the directory:
mv <path>/<plug-in>.rpm .
  • Edit the iscan-plugin.SlackBuild script with a text editor of Your choice:
vim iscan-plugin.SlackBuild
  • Assign the PRGNAM variable value esci-interpreter or iscan-plugin depending on the scanner used interpreter.
  • Assign the PLUGIN variable the name of the scanner used plug-in. At present the supported plug-ins list includes: gt-f670, gt-f700, gt-f720, gt-1500, gt-s80, gt-s600, gt-x750, gt-x770 or perfection-v330. Please refer to Your scanner documentation for information about the plug-in to use.
  • Assign the VERSION variable the plug-in version number.
  • Assign the RPM_VERSION variable the rpm version number.
  • Assign the ARCH variable the target architecture for the plug-in. At present Epson supports the i386 and x86_64 architectures only.
  • Save the file and close the text editor.
  • Run the conversion script:
sh ./iscan-plugin.SlackBuild

A package containing the converted plug-in will be available in the /tmp directory and could be installed recurring to the installpkg command common in a Slackware Linux system.

Once done with installing all of the packages, turn Your scanner on and plug the USB connector in order for the system to recognize it. If everything went accordingly to the instructions above it will be possible to scan documents right away through Xsane or Iscan for linux.


Packages and Build Scripts

The links to the Image Scan 2.30.1 and Image Scan Data 1.36.0 Slackware packages follow. The packages are distributed in the hope they prove to be helpful:

Below are links to the SlackBuild scripts used for iscan, iscan-data and the plug-ins some scanner models need to work properly. The SlackBuild script for Iscan 2.30 provides automatic patch apply for the PNG library before building the source code. The SlackBuild script for iscan-data 1.36 provides automatic patch apply to add support for the Perfection V330 scanner before building the source code.


Support for ARM Processors

Owning a Raspberry Pi 2, a small ARM based computer with remarkable performances, and being ARM officially supported by Slackware Linux, I couldn't resist but tried the build scripts on it. The needed code was already part of the scripts, but I never really had a chance to test it. Both the iscan.SlackBuild and iscan-data.SlackBuild scripts only needed fixing a minor bug concerning the declaration of variable LIBDIRSUFFIX to run and produce working packages. Support for Epson scanners on ARM is still far from guaranteed anyway. To use an Epson scanner on the Raspberry Pi two considerations should be accounted for: GUI and plug-ins.

The Iscan software, the GUI meant to interface with and control scanners, only supports 32 or 64 bit AMD / Intel architectures, but no support for ARM is provided. A full install on ARM Linux therefore lacks the default GUI and requires for an alternative one otherwise You'll be able to scan and save images through the command line only. Luckily open source GUI interfaces for scanning programs are not scarce in the Linux ecosystem and the lack can be easily filled.

Similar considerations apply to Epson provided binary plug-ins: only the AMD / Intel platform is supported. Plug-ins are binary objects with no freely available source code. There is no open source alternative solution and therefore it is not possible to use the scanners with Arm Linux. The only usable scanners are the one requesting iscan but no binary plug-in to work.


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


External links





Languages: English - Italiano