2000-08-12 15:11:46 +00:00
|
|
|
Information about SCSI scanners:
|
|
|
|
================================
|
|
|
|
|
|
|
|
Under Linux, your kernel must have generic SCSI support (sg) as well as a
|
|
|
|
driver for your SCSI adapter. You may want to increase the SCSI buffer size
|
|
|
|
to increase scan speed. Details on all of the above can be found in
|
|
|
|
sane-scsi(5).
|
|
|
|
|
|
|
|
If your SCSI and sg driver are build as moduls you will need to load them
|
|
|
|
with modprobe:
|
|
|
|
|
|
|
|
# modprobe your-driver-name
|
|
|
|
# modprobe sg
|
|
|
|
|
|
|
|
You may find error messages in /var/log/messages. Look at the documentation
|
|
|
|
for your SCSI driver. Maybe you need to add options like the io port.
|
|
|
|
|
|
|
|
Now the SCSI adapter and your scanner should be visible at /proc/scsi/scsi.
|
|
|
|
Example:
|
|
|
|
|
|
|
|
# cat /proc/scsi/scsi
|
|
|
|
Host: scsi0 Channel: 00 Id: 06 Lun: 00
|
|
|
|
Vendor: SCANNER Model: Rev: 2.02
|
|
|
|
Type: Scanner ANSI SCSI revision: 01 CCS
|
|
|
|
|
|
|
|
In this case the real vendor and scanner name are not shown (Mustek
|
|
|
|
Scannexpress 12000SP) but SANE will detect it nevertheless.
|
|
|
|
|
|
|
|
If your scanner is supported by SANE, scanimage -L will list it now:
|
|
|
|
|
|
|
|
# scanimage -L
|
|
|
|
device mustek:/dev/scanner' is a Mustek ScanExpress 12000SP flatbed scanner
|
|
|
|
|
|
|
|
If this doesn't work you may have to add the right SCSI generic device name
|
|
|
|
to the configuration file. This should be documented in the man page for
|
2001-12-25 12:44:05 +00:00
|
|
|
your backend. To find out about the right SCSI device use sane-find-scanner:
|
2000-08-12 15:11:46 +00:00
|
|
|
|
2001-12-25 12:44:05 +00:00
|
|
|
# sane-find-scanner
|
2003-04-20 13:56:26 +00:00
|
|
|
found SCSI scanner "SCANNER 2.02" at /dev/scanner
|
|
|
|
found SCSI scanner "SCANNER 2.02" at /dev/sg0
|
|
|
|
found SCSI scanner "SCANNER 2.02" at /dev/sga
|
2000-08-12 15:11:46 +00:00
|
|
|
|
2003-04-20 13:56:26 +00:00
|
|
|
It may help to set a symbolic link /dev/scanner to the respective device if
|
|
|
|
automatic detection does not work.
|
2000-08-12 15:11:46 +00:00
|
|
|
|
|
|
|
If you need more information on the Linux SCSI subsystem, look at
|
|
|
|
http://www.torque.net/scsi/linux_scsi_24/index.html. Although this
|
|
|
|
documentation is about the 2.4 kernels, large parts are also valid for
|
|
|
|
older kernels. One important exception is the section on "Device Names
|
|
|
|
in devfs".
|
|
|
|
|
|
|
|
Adaptec 1542 SCSI adapter:
|
2000-11-23 20:04:09 +00:00
|
|
|
Using buffer sizes of more than 32768 bytes with the aha1542 driver can
|
2001-12-28 13:26:12 +00:00
|
|
|
lead to kernel panic with older kernels. To avoid this, run configure with
|
|
|
|
the option --enable-scsibuffersize or set the environment variable
|
|
|
|
SANE_SG_BUFFERSIZE to 32768 before running scanimage or another frontend,
|
|
|
|
or download and install the SG driver 2.1.37 or newer from
|
|
|
|
http://www.torque.net/sg.
|
2000-11-23 20:04:09 +00:00
|
|
|
|
|
|
|
idescsi:
|
|
|
|
The Linux kernel "Emulation of a SCSI host adapter for IDE ATAPI
|
|
|
|
devices" (idescsi) is reported to cause problems in connection with
|
|
|
|
SANE. If your scanner isn't found or you encounter segmentation faults
|
|
|
|
try to disable idescsi.
|
|
|
|
|
2001-12-28 13:26:12 +00:00
|
|
|
SCSI Direct IO: Recent versions of the Linux SG driver for the 2.4 kernels
|
|
|
|
support direct IO, i.e., the SCSI adapter's DMA chip copies data directly
|
|
|
|
to/from user memory. Direct IO reduces memory usage, but it can lead to
|
|
|
|
access conflicts, if a backend uses shared memory. SANE does not use
|
|
|
|
direct IO by default. If you want to use it, run
|
2001-04-10 22:38:01 +00:00
|
|
|
|
2001-12-28 13:26:12 +00:00
|
|
|
configure --enable-scsi-directio=yes
|
2001-04-10 22:38:01 +00:00
|
|
|
|
2003-02-09 15:53:48 +00:00
|
|
|
Very old Linux distributions are missing the /usr/include/scsi directory. In
|
|
|
|
such a case, it is necessary to copy the relevant files from the kernel
|
|
|
|
distribution. Normally, the command:
|
|
|
|
|
|
|
|
cp -a /usr/src/linux/include/scsi /usr/include
|
|
|
|
|
|
|
|
should fix this problem. Don't do this if you don't get compilation errors
|
|
|
|
about missing SCSI headers.
|
|
|
|
|
2001-04-10 22:38:01 +00:00
|
|
|
|
2000-11-23 20:04:09 +00:00
|
|
|
Other Information
|
|
|
|
=================
|
|
|
|
|
2003-10-17 08:47:07 +00:00
|
|
|
Compilation errors in /usr/include/linux/videodev.h: These errors happen if
|
|
|
|
there is a link /usr/include/linux -> /usr/src/linux/include/linux. Most
|
|
|
|
distributions come with their own Linux-specific headers so this link is
|
|
|
|
ususally not a good idea (and frowned upon by the kernel hackers). As a
|
|
|
|
workaround, make sure that the link points to a Linux 2.4 kernel (not 2.6).
|
|
|
|
|
2000-11-23 20:04:09 +00:00
|
|
|
Excessive warnings "pointer of type `void *' used in arithmetic":
|
2001-12-25 12:44:05 +00:00
|
|
|
Some older versions of glibc generate these warnings not related to SANE
|
2000-11-23 20:04:09 +00:00
|
|
|
source code. To suppress these warnings do
|
|
|
|
|
|
|
|
export CFLAGS="-g -O2 -D__NO_STRING_INLINES"
|
|
|
|
|
|
|
|
and rerun configure.
|
2002-10-20 17:17:38 +00:00
|
|
|
|
2003-02-09 15:53:48 +00:00
|
|
|
Older gcc compilers may abort with error "virtual memory exhausted",
|
|
|
|
usually in canon.c. Try to compile with lower optimization levels:
|
|
|
|
make CFLAGS="-g -Wall -O1", make CFLAGS="-g -Wall -O", or
|
|
|
|
make CFLAGS="-g -Wall".
|
2002-10-20 17:17:38 +00:00
|
|
|
|
|
|
|
If you use DEC cc on Linux Alpha, you may need to set LDFLAGS="-N" to
|
|
|
|
be able to build sane-backends.
|
2003-01-26 14:51:56 +00:00
|
|
|
|
|
|
|
The Intel C++ Compiler for IA32 and IA64 isn't supported yet. If you want
|
|
|
|
to try nevertheless, you will experience undefined references to inb
|
|
|
|
and outb functions. To avoid those replace #include <sys/io.h> with
|
|
|
|
|
|
|
|
#if defined(__ICC) && __ICC >= 700
|
|
|
|
# define __GNUC__ 2
|
|
|
|
#endif
|
|
|
|
#include <sys/io.h>
|
|
|
|
#if defined(__ICC) && __ICC >= 700
|
|
|
|
# undef __GNUC__
|
|
|
|
#elif defined(__ICC) && defined(HAVE_ASM_IO_H)
|
|
|
|
# include <asm/io.h>
|
|
|
|
#endif
|