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