2002-06-11

Currently, only SCSI scanners are supported on Solaris.  The following text
describes, how to use a SCSI scanner.

You need a generic SCSI driver to run SANE on Solaris.  There are at
least three such drivers: the scg driver by Joerg Schillig, the
sg driver by Kevin Sheehan, and starting with Solaris 8 Sun's own
sgen(7D) driver.

NOTE: You should install the SCSI generic driver BEFORE you run
`configure' in the sane directory---otherwise configure won't set up
SANE to work with the generic scsi driver.

*** scg driver

The SCSI general driver scg is

	Copyright 1986-1995 Joerg Schilling,

It is supplied binary in pkgadd(1m) format and is tested from Solaris
2.3 to Solaris 2.6 (sparc) and Solaris 2.3 to Solaris 2.5.1 (x86).  It
can be found in

	ftp://ftp.fokus.gmd.de/pub/unix/kernel/scg/

To install it on a SPARC do:

	cd /tmp 
	get SCHILYscg.sparc.tar.Z
	uncompress SCHILYscg.sparc.tar.Z
	tar -xvf SCHILYscg.sparc.tar
as root:
	pkgadd -d .

NOTE: Be very careful with pkgadd as it does not check for the correct
      target architecture. Do not install drivers for x86 on sparc
      and vice versa.  You will get a corrupt system otherwise.

For Solaris on an x86 do:

	cd /tmp 
	get SCHILYscg.i386.tar.Z
	uncompress SCHILYscg.i386.tar.Z
	tar -xvf SCHILYscg.i386.tar
as root:
	pkgadd -d .

Then do a reboot --r

Once the system has rebooted, there should be a device node /dev/scgXX
for each of your SCSI adapters (/dev/scg0 for the first adapter,
/dev/scg1 for the second, and so on...)

Because the device name specifies a SCSI adapter, you need to use a
special device naming syntax so SANE can tell which device you want to
talk to.  If the device is at SCSI id 0, the character 'a' should be
appended, character 'b' should be used for SCSI id 1, and so on
(see also the Solaris section in sane-scsi(5)).

E.g., to configure an HP scanner, configuration file
/opt/local/etc/sane.d/hp.conf might contain:

	/dev/scg0c	if the scanner has the SCSI target id 2

WARNING! Everybody who can read/write a generic SCSI device can do
with all your disks whatever he/she wants. It takes only a few lines
of code to send a FORMAT control block...  Rather than giving users
access to the SCSI adapter special device, it may be a better idea to
install scanimage/xscanimage setgid to a special "scanner" group and
then turn on write permission for the scanner group.

*** sg driver

Another solution to the permission problem is to use the generic SCSI
driver sg by Kevin Sheehan.  This driver is not free but uses separate
device node for each SCSI target:

	/dev/sg/0, /dev/sg/1, ...

This allows to control device access on a per-device basis.

*** sgen driver

The solaris 8 sgen driver must be configured before it can be used.
See /kernel/drv/sgen.conf and the manual page sgen(7D).

The minimal config includes defining the correct
"device-type-config-list" property in /kernel/drv/sgen.conf.  The
typical SCSI device type for a scanner is either "scanner" or
"processor". You can optionally restrict the devices sgen attaches to,
by defining the "inquiry-config-list" property.  You also have to
uncomment the scanner's "target/lun" entry, so that the sgen driver is
allowed to attach to the SCSI scanner hardware.

After the configuration file /kernel/drv/sgen.conf is set up for the
scanner, run the command "devfsadm -v -i sgen" to create sgen device
nodes for the scanner.  In case you need to rerun devfsadm to
incorporate changes to the sgen.conf file, make sure the sgen driver
is unloaded from the kernel before you re-run devfsadm.  The driver is
unloaded using the "modunload -i {id}" command; the {id} of the sgen
driver can be determined with the modinfo command.


The device nodes use names of the following form:

	/dev/scsi/device-type/cXtXdX

Example:  A HP Scanjet 4c (SCSI device type: "processor") on controller
#1, target #6, lun #0 uses the device name

	/dev/scsi/processor/c1t6d0

/kernel/drv/sgen.conf contains:

	device-type-config-list="processor";
	name="sgen" class="scsi" target=6 lun=0;



If you have questions or problems with the Solaris support in SANE,
send mail to:

     hu@garfield.m.isar.de
