[sane-devel] Solaris 8 and SANE

Henning Meier-Geinitz henning@meier-geinitz.de
Tue, 11 Jun 2002 18:22:34 +0200


On Mon, Jun 10, 2002 at 04:33:12PM -0400, Kip Iles wrote:
> I am new to this list and also new to SANE on Solaris 8 so please be gentle 
> with me if this question has been asked a million times already.

If it had been asked, you would maybe find the answer in the mailing
list archive. But I don't think so :-)

I don't use Solaris for scanning (only test-compiling) so my knowledge
is very limited in this area. Nevertheless:

> Why must the SGEN (or other generic SCSI device) driver be used in SANE to 
> connect a (or any) scanner in Solaris 8?

It's used for accessing SCSI scanners. You need some sort of interface
to connect these scanners and SANE can use any of scg, sg or sgen. At
least that's what README.solaris says. I think I will add a comment
about missing/unknown parport, USB and other support.

> Must it be used even if the scanner I am connecting is a USB device?
I don't think so. To be more exact I think you can't use it to connect
USB scanners. The only way to use a SCSI generic driver would be some
sort of converter in the kernel and a USB scanner that is accessed
over SCSI commands. I don't know if souch a converter (SCSI-over-USB)
exists for Solaris.
As far as I know there is currently no SANE support for USB for
Solaris.  If I remember correctly, nobody has yet asked for it or
implemented it.

> Does SANE support the libusb or Javax.usb API's and if so, which one is 
> more mature. If not - then what are my alternatives.

The interface used by most backends is sanei/sanei_usb.c.  It's build
around the assumption that there is one single device file that
represents an USB scanner. So you need a kernel driver fo this job.
Currently I know that this works with Linux, OpenBSD and FreeBSD.
The epson backend also uses this approach but accesses the device file
directly (without the sanei_usb layer).

The sm3600 backend uses libusb. However, I don't think Solaris is
supported by libusb, is it? As far as I know, only Linux and the BSDs
currently work. At least that's what a quick look at
http://libusb.sourceforge.net/ reveals.

I have never heard from that Java API and I don't think it's supported
by SANE.

So I think there are two approaches:

1) Find out if there is a general kernel scanner driver in Solaris
   like the Linux scanner module or FreeBSD's uscanner driver.
   If such driver is available, SANE may run out-of-the-box or with
   some tweaking.
2) If there is a Solaris-compatible libusb: Rewrite sanei/sanei_usb.c
   to support this way of access. Probably not easy.