kopia lustrzana https://gitlab.com/sane-project/backends
180 wiersze
6.8 KiB
Groff
180 wiersze
6.8 KiB
Groff
.TH sane-scsi 5 "14 Jul 2002"
|
|
.IX sane-usb
|
|
.SH NAME
|
|
sane-usb - USB configuration tips for SANE
|
|
.SH DESCRIPTION
|
|
This manual page contains information on how to access scanners
|
|
with a USB interface.
|
|
.SH GENERAL INFO
|
|
SANE-backends currently use three methods of communicating with USB scanners:
|
|
.TP 2
|
|
-
|
|
Access through sanei_usb, the generic SANE USB interface. Used by most
|
|
USB backends.
|
|
.TP
|
|
-
|
|
Using libusb directly (a library for USB access). This method is used by the
|
|
sm3600 backend.
|
|
.TP
|
|
-
|
|
Direct access to the USB device files to access kernel scanner drivers. Used
|
|
by the epson backend.
|
|
.PP
|
|
This manual page describes the access of USB scanners over the sanei_usb
|
|
interface. For the backends using direct kernel or libusb access have a look
|
|
at their manual pages for details. The sections "KERNEL SCANNER DRIVER TIPS"
|
|
and "LIBUSB ACCESS TIPS" of this manual page may be of some use for these backends, too.
|
|
.PP
|
|
Two methods for accessing USB devices are used by sanei_usb: direct access
|
|
using the kernel scanner driver and access over libusb. sanei_usb tries both
|
|
methods, if they are available. Currently USB access is only tested for Linux
|
|
(kernel, libusb), FreeBSD (kernel, libsub), NetBSD (libusb), and OpenBSD
|
|
(kernel, libusb). Libusb access should also work on Mac OS X (Darwin) but
|
|
hasn't been tested yet. For installation issues, also check the
|
|
@DOCDIR@/README.platform files.
|
|
.PP
|
|
Most backends will detect USB scanners automatically using "usb" configuration
|
|
file lines. This method allows to identify scanners by the USB vendor and
|
|
product numbers. The syntax for specifying a scanner this way is:
|
|
.PP
|
|
.RS
|
|
usb
|
|
.I VENDOR PRODUCT
|
|
.RE
|
|
.PP
|
|
where
|
|
.I VENDOR
|
|
is the USB vendor id, and
|
|
.I PRODUCT
|
|
is the USB product id of the scanner. Both ids are non-negative integer
|
|
numbers in decimal or hexadecimal format. The correct values for these fields
|
|
can be found by looking into the syslog (e.g., /var/log/messages) or under
|
|
Linux by issuing the command "cat /proc/bus/usb/devices/". This is an example
|
|
of a config file line:
|
|
.PP
|
|
.RS
|
|
usb 0x055f 0x0006
|
|
.RE
|
|
.PP
|
|
would have the effect that all USB devices in the system with a vendor id of
|
|
0x55f and a product id of 0x0006 would be probed and recognized by the
|
|
backend. The same config line in decimal format looks like this:
|
|
.PP
|
|
.RS
|
|
usb 1375 6
|
|
.RE
|
|
.PP
|
|
If your scanner is not detected automatically, it may be necessary to edit the
|
|
appropriate backend configuration file before using SANE for the first time.
|
|
For most systems, the configuration file should list the name of the USB
|
|
device file that the scanner is connected to (e.g., under Linux,
|
|
.B /dev/usb/scanner0
|
|
or
|
|
.B /dev/usbscanner0
|
|
is such a USB device, the device file for FreeBSD is e.g.
|
|
.BR /dev/uscanner0 ).
|
|
If libusb is used, the device name looks like the following example:
|
|
.B libusb:001:002
|
|
.PP
|
|
Do
|
|
.I not
|
|
create a symlink from
|
|
.B /dev/scanner
|
|
to the USB device because this link is used by the SCSI backends. The scanner
|
|
may be confused if it receives SCSI commands.
|
|
.PP
|
|
For a detailed description of each backend's configuration file, please refer
|
|
to the relevant backend manual page (e.g. sane-mustek_usb for Mustek USB
|
|
scanners).
|
|
.PP
|
|
|
|
.SH WHEN TO USE WHICH ACCESS METHOD
|
|
Generally speaking, if your scanner works with one method, there is no need
|
|
to switch to the other one.
|
|
.PP
|
|
Libusb is the more general approach and will be able to access any
|
|
scanner. Also, it supports more platforms. However, the library must be
|
|
available and installed on the system and setting permissions isn't easy at
|
|
least on Linux. Libusb access isn't tested very well.
|
|
.PP
|
|
Autodetecting scanners and using USB control messages with the kernel access
|
|
method only works with recent (>=v2.4.12) Linux kernels. If you need one of
|
|
these two features on a different platform, use libusb instead.
|
|
|
|
.SH KERNEL SCANNER DRIVER TIPS
|
|
Ensure that the access permissions for the USB device are set appropriately.
|
|
We recommend to add a group "scanner" to /etc/group which contains all users
|
|
that should have access to the scanner. The permission of the device should
|
|
then be set to allow group read and write access. For example, if the scanner
|
|
is at USB device
|
|
.BR /dev/usb/scanner0 ,
|
|
then the following two commands would set the permission correctly:
|
|
.PP
|
|
.RS
|
|
$ chgrp scanner /dev/usb/scanner0
|
|
.br
|
|
$ chmod 660 /dev/usb/scanner0
|
|
.RE
|
|
.PP
|
|
If your scanner isn't detected automatically by your operating system's
|
|
scanner driver, you need to tell the kernel the vendor and product ids of your
|
|
scanner. For
|
|
.BR Linux ,
|
|
this can be done with modprobe parameters: First, remove the scanner module
|
|
(rmmod scanner), then load it again: modprobe scanner vendor=0x0001
|
|
product=0x0002. Use the appropriate vendor and product (e.g. from syslog or
|
|
cat /proc/bus/usb/devices). For OpenBSD the kernel must be recompiled. For
|
|
details look at @DOCDIR@/README.openbsd. Similar approaches should be used for
|
|
the other BSDs.
|
|
|
|
.SH LIBUSB ACCESS TIPS
|
|
Libusb can only access your scanner if it's not claimed by the kernel scanner
|
|
driver. If you want to use libusb, unload the kernel driver (e.g. rmmod
|
|
scanner under Linux) or disable the driver when compiling a new kernel. For
|
|
Linux, your kernel needs support for the USB filesystem (usbfs) and that
|
|
filesystem must be mounted. That's done automatically, if /etc/fstab contains
|
|
a line like this:
|
|
.PP
|
|
.RS
|
|
none /proc/bus/usb usbfs defaults 0 0
|
|
.RE
|
|
.PP
|
|
The permissions for the device files used by libusb must be adjusted for user
|
|
access. Otherwise only root can use SANE devices. For
|
|
.IR Linux ,
|
|
the devices are located in /proc/bus/usb/. There are directories named
|
|
e.g. "001" (the bus name) containing files "001", "002" etc. (the device
|
|
files). The right device files can be found out by running scanimage -L as
|
|
root. Setting permissions with "chmod" is not permanent, however. They will be
|
|
resetted after reboot or replugging the scanner. It's also possible to mount
|
|
the usbfs with the option "devmode=0666", e.g. by using the following line in
|
|
/etc/fstab:
|
|
.PP
|
|
.RS
|
|
none /proc/bus/usb usbfs defaults,devmode=0666 0 0
|
|
.RE
|
|
.PP
|
|
However, this way everyone has access to all USB devices. Another way to set
|
|
permissions is to use the hotplug utilities
|
|
(http://linux-hotplug.sourceforge.net/), which support dynamic setting of
|
|
access permissions. Last, the frontends can be run as root. However, that's
|
|
not recommended for security reasons.
|
|
.PP
|
|
For the
|
|
.IR BSDs ,
|
|
the device files are named /dev/ugen*. Use chmod to apply appropriate
|
|
permissions.
|
|
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B SANE_DEBUG_SANEI_USB
|
|
If the library was compiled with debug support enabled, this
|
|
environment variable controls the debug level for the USB I/O
|
|
subsystem. E.g., a value of 128 requests all debug output to be
|
|
printed. Smaller levels reduce verbosity. Values greater than 4 enable
|
|
libusb debugging (if available).
|
|
.SH "SEE ALSO"
|
|
sane(7), sane\-find\-scanner(1), sane\-"backendname"(5), sane-scsi(5)
|
|
.SH AUTHOR
|
|
Henning Meier-Geinitz. Some parts were copied from the sane-scsi manual page.
|