SANE and OpenBSD
----------------

Building:
---------
Don't forget to use GNU make (gmake). E.g. "MAKE=gmake ./configure". 
SANE should compile and install out-of-the-box.

If some libraries and headers (like libjpeg) are installed in /usr/local/, adding
"-I/usr/local/include/ -L/usr/local/lib/" to the CPPFLAGS environment variable
before running configure may be necessary to get them detected.

Since release 3.9, SANE is available from OpenBSD ports.

SCSI-scanners:
--------------
SANE only supports the generic /dev/uk? devices. /dev/ss? won't work. If your
scanner is detected by the ss driver, disable the driver with the "config"
utility or compile a new kernel without ss. Set a link /dev/scanner to
/dev/uk0 (or whatever you use) and/or edit your backend's config file
appropriately. Don't forget to set up permissions to the device file correctly
for access by a non-root user (read/write).

USB-scanners:
-------------
USB-Scanners are supported in principle since OpenBSD 2.9. The USB scanner
driver "uscanner" and access over libusb is supported.

To get your scanner detected by the uscanner driver, it may be necessary to
add its vendor and device ids to the kernel and recompile
(sys/devs/usb/uscanner.c). With OpenBSD 3.0 there is also a bug concerning
uscanner that prevents accessing the /dev/uscanner devices.  Get a newer
kernel in this case. If your MAKEDEV won't make /dev/uscanner0 do it manually:
"mknod /dev/uscanner0 c 77 0" for the first scanner. Edit your backend's
configuration file appropriately.

If you want to use libusb, your scanner should *not* be claimed by the
uscanner driver. Also make sure that the ugen driver is NOT compiled with
DIAGNOSTIC. If it is, you will get errors like "ugenioctl: USB_SET_TIMEOUT,
no pipe". Make sure, that /dev/ugen* and /dev/usb* devices are available. Use
/dev/MAKEDEV to create them, if necessary.

For some backends you must use libusb. The uscanner driver won't work because
automatic detection, control messages, or interrupt endpoints are needed.

When using libusb, you need read/write permissions to ugen(4) (/dev/ugen*.*) and
the usb(4) controller (/dev/usb*) your scanner is connected to.  Consider adding
a group usb and setting the device permissions using the hotplugd(8) attach
and detach scripts.  See tools/openbsd for an example.

Parport-scanners:
-----------------
I don't have any information about these. Please contact me or the SANE mailing
list if you succeded in using one of these.

2005-12-23 Henning Meier-Geinitz <henning@meier-geinitz.de>
