Epson USB scanner driver for Solaris

This driver is written for, and tested with, an Epson "Perfection 610" USB scanner. It will PROBABLY work with various other Epson USB scanners. It has been reported to work with an epson 1640. Please let me know if you test it successfully with other devices. Read the included README file for device names to use, etc.

Once you have installed this driver, you can then use SANE to scan things. Be sure to download and compile both the SANE "backend", and the "frontend" source packages.


The only NDA I have signed with Sun is the "Foundation Source License Agreement". I do not believe that releasing my USB driver code puts me in violation of that agreement, since:
  1. I am not publicising any "Reference code". At no time did I cut-n-paste anything from Sun's foundation code into my own code. Additionally, at virtually no point is my code the same as Sun code, save where the USB interface requires identical syntax to function.

  2. All the USB-related Solaris interfaces I use, have already been made public in Solaris 8 include files: /usr/include/sys/usb/usba.h and /usr/include/sys/usb/usbai.h. Therefore, I am not disclosing any private information; merely organizing existing public information into a more easily comprehensible form.

  3. There are no warnings in usba.h and usbai.h that they are temporary, internal-only, or "uncommitted" interfaces. Therefore it is reasonable to assume, per standard Sun proceedure, that anyone is free to use them (if they can only figure out how!)

  4. All other (non-USB) Solaris interfaces that I use, are long-standing public Solaris driver interfaces.

Now that's out of the way, you can download epsonscan.tar.gz, last updated June 20, 2002.

This is a source release. Compiling it is very easy. In theory, it should compile on both sparc and intel. However, I develop on intel. I am calling this my v1.0 release. It's a very basic driver: No powersave/standby support, etc. But it WORKS.

Do note that someone from the USB team has publically posted on comp.unix.solaris, that the API will change in future solaris releases! The code here is simply based around the public header files that ship with Solaris 8, and thus is "what works now". So if you want to play with USB hardware now, this is what you can base it around, with the realization that you'll have to recode in a year or something.

[This page written in June 2002]

Solaris driver pages - Bolthole Top - Search
Written by:Philip Brown