README
1How to configure, build, and install SANE.
2
3
4Introduction:
5=============
6SANE stands for Scanner Access Now Easy.
7This package contains the SANE libraries (this means backends and
8network scanning parts) and the command line frontend scanimage.
9You always find the most recent version of SANE on:
10
11 http://www.sane-project.org/
12
13At the same location there are also links to snapshots of the Git server and
14sometimes beta releases of sane-backends. These are unstable development
15versions, so be careful when using them. Please report any problems to us. See
16contact section for details.
17
18There are several graphical frontends available for SANE, see the list at
19http://www.sane-project.org/sane-frontends.html.
20
21
22Quick install:
23==============
24
25./autogen.sh # only if you just cloned the git repository
26./configure
27make
28make install
29
30man sane
31
32Pre-built binaries:
33===================
34
35In addition to versions included in releases, some platforms have more current versions available.
36
37Ubuntu PPA https://launchpad.net/~sane-project/+archive/ubuntu/sane-release
38
39sudo add-apt-repository ppa:sane-project/sane-release
40sudo apt update
41apt install libsane libsane-common sane-utils
42
43
44Prerequisites
45=============
46
47In order to build SANE, the following tools and libraries are required:
48
49 - GNU make: version 3.70 or newer
50
51 - ISO C99 compiler: GNU C (gcc) is recommended for best results,
52 but any ISO C99 compliant compiler should do
53
54
55Some more libraries are not strictly necessary to compile SANE, but some
56functionality may be lost if they are not available. Make sure that these
57libraries and their respective header files are available before running
58configure. On some Linux distributions the header files are part of separate
59packages (e.g. usb.h in libusb-devel or libusb-dev). These must also be
60installed.
61
62 - libusb: Strongly recommended if you use a USB scanner.
63 Some backends won't work without libusb at all.
64
65 - libjpeg (>=6B): For the dc210, dc240, and gphoto2 backends.
66
67 - libieee1284 (>=0.1.5): For some parallel port backends.
68
69 - libgphoto2 (>=2.0): For the gphoto2 backend.
70
71 - a C++11 compliant C++ compiler for the genesys backend.
72
73If you got the source straight from the git repository, as opposed to
74a source tarball, you will need a few more utilities. These utilities
75should normally *not* be needed for source archives downloaded from
76the project's website at http://www.sane-project.org/.
77
78 - autoconf (>= 2.69) as well as the autoconf-archive (for the
79 AX_CXX_COMPILE_STDCXX and AX_CXX_COMPILE_STDCXX_11 macros)
80
81 - automake (>=1.15)
82
83 - libtool (>=2.4.6)
84
85 - gettext (>=0.19.8)
86
87 - git (>= 2.1.4)
88
89SANE should build on most Unix-like systems. Support for OS/2, MacOS X, BeOS,
90and Microsoft Windows is also available. For more details look at the
91operating system specific README.* files. For a detailed support matrix, see:
92
93 http://www.sane-project.org/sane-support.html
94
95This table may be out of date. Please tell us about any corrections or
96additions. Please mention your operating system and platform and all the other
97details mentioned in the table. See also the contact section.
98
99Please check that there aren't any older versions of SANE installed on your
100system. Especially if SANE libraries are installed in a different prefix
101directory (e.g. /usr/lib/) this may cause problems with external
102frontends. Please remove these libraries (libsane.*, sane/libsane-*) by using
103your package manager or manually before installing this version of SANE.
104
105
106Configuration
107=============
108
109Simply invoke configure in the top-level directory. Besides the usual GNU
110configure options, there are the following SANE specific options:
111
112 --disable-shared
113 Don't use shared libraries. Useful for debugging or when there
114 is a problem building shared libraries. This implicitly turns
115 on --disable-dynamic --enable-static as well.
116
117 --disable-dynamic
118 Disable dynamic loading of backends (in the dll backend).
119 configure normally turns on dynamic loading when it
120 can find the appropriate header files and libraries
121 (<dlfcn.h> and -ldl).
122
123 --enable-static
124 Use static libraries (turned off by default).
125
126 --enable-preload
127 Preload backends into DLL backend. This is useful for debugging,
128 when dynamic loading is unavailable, to reduce runtime linking
129 overheads, or when you only want to distribute a single DLL with
130 all backends available. If dynamic loading or shared libraries are
131 unavailable or disabled, this option is turned on automatically.
132
133 --enable-scsibuffersize=N
134 Specify the buffer size of the buffer for SCSI commands. The default
135 value is 131072 bytes (128 kb). This may be changed at runtime by
136 setting the environment variable SANE_SG_BUFFERSIZE to the desired
137 value. The option is Linux-only at this time.
138 --enable-scsibuffersize and SANE_SG_BUFFERSIZE have no effect for
139 the Mustek, Umax and Sharp backends. For these backends, the buffer
140 size is set automatically and/or can be specified in the backend's
141 configuration file. Please refer to the backend's man pages for
142 details.
143
144--enable-locking
145 Means, that some backends will use a lockfile for allowing multiple
146 access to one scanner. This is useful, i.e. one frontend is scanning
147 the button status and another one will scan. The path to the lock
148 files is defined by --localstatedir at the configure step and is
149 $localstatedir/lock. The default group is uucp and can be changed
150 by using --with-group=newgroup. If you do not want any backend to
151 use a lockfile, simply use --disable-locking.
152 Note: The Plustek backend is currently the only backend that makes
153 use of this feature.
154
155To limit the backends that are compiled, set the variable BACKENDS to
156the list of backends to compile. The following will limit compiling
157to the epson2 and fujitsu backends:
158
159 ./configure BACKENDS="epson2 fujitsu"
160
161To limit the backends that are preloaded into the DLL, set the variable
162PRELOADABLE_BACKENDS. The following will limit compiling to the epson2
163and fujitsu backends but only preloads the epson2 backend:
164
165 ./configure BACKENDS="epson2 fujitsu" PRELOADABLE_BACKENDS="epson2"
166
167In addition to these configuration options, there are some more SANE-specific
168options and many standard-options. To get a description of available options,
169invoke configure with option --help.
170
171If you plan on debugging one of the SANE programs, we recommend to run
172configure like this:
173
174 CFLAGS="-g -O -Wall" ./configure --disable-shared
175
176For operating system specific information, look at the README.* files.
177
178
179Build
180=====
181
182To build SANE, simply type "make" in the top-level directory.
183
184To clean up the executables and libraries in the source directory, type "make
185clean". To restore everything to the status after unpacking the package, type
186"make distclean".
187
188
189Installation and Configuration
190==============================
191
192Once the build has finished, install SANE with "make install". By
193default, this will place the SANE libraries in /usr/local/lib/, the
194configuration files in /usr/local/etc/sane.d/, and the manual pages in
195/usr/local/man/. The location of these directories can be overridden
196with configure options; see "configure --help" for details.
197
198Before running any SANE program, read the PROBLEMS file in this directory.
199
200For information on configuring and trouble-shooting the various SANE
201components, please refer to the manual page sane(7).
202
203The tools/ directory contains some small programs that may be helpful. They
204are described in tools/README.
205
206
207Removing
208========
209
210Type "make uninstall" to remove SANE from your system. This will also remove
211older versions of SANE if they have been installed at the same prefix.
212Warning: Your configuration files will be deleted also so make sure you have a
213backup. By default the configuration files are located in the directory
214/usr/local/etc/sane.d/.
215
216
217Contact
218=======
219
220For questions and general discussion about SANE contact the sane-devel mailing
221list. You must be subscribed to the list to send mail. See
222http://www.sane-project.org/mailing-lists.html for details.
223
224If you want to submit a bug report or feature request please use our bug
225tracking system. See http://www.sane-project.org/bugs.html for details. You
226may also contact the author of a specific backend directly. See the AUTHORS
227file for a list of addresses.
228
README.aix
README.beos
README.darwin
1SANE and Darwin (Mac OS X)
2--------------------------
3
4Building:
5---------
6You may get the message: "gcc: Internal compiler error: program cc1obj got
7fatal signal 11". That's not a bug in SANE. Probably a compiler or hardware
8problem. The error usually occurs in canon.c because that's the most complex
9backend (at least concerning compilation). If you can't update your compiler,
10try to reduce optimization (e.g. CFLAGS="-O1" ./configure). Another
11work-around: Disable the canon backend in backend/Makefile.in (look at
12PRELOADABLE_BACKENDS) and rerun configure.
13
14General:
15--------
16If scanimage -L (or any other frontend) stops with a segmentation fault in the
17sm3600 backend, disable sm3600 in dll.conf if you don't need it.
18
19Backends that use the function "fork" may not work at least with USB scanners.
20That's a limitation of MacOS X (doesn't use file descriptors for USB access).
21Most backends have been modified to use threads on MacOS X and should
22work. Others don't use fork at all. Both types of backends should work with
23MacOS X. Changing the backends to use threads is an ongoing effort.
24
25SCSI-scanners and Firewire scanners:
26------------------------------------
27There is support for SCSI and Firewire scanners but hasn't had much
28testing. Please send failure and success reports to the sane-devel mailing
29list. At least the Epson Perfection 1640SU and the CANON IX-06015C (CanoScan
30600) are reported to work.
31
32USB-scanners:
33-------------
34Work with libusb. Try "sane-find-scanner -v -v" and report success or
35failure to the SANE mailing list. At least the following scanners are
36known to work: UMAX Astra 1220U and 2000U, Epson Perfection 1640SU and
372450 Photo.
38
39Use libusb version 0.1.11 or later (or a cvs checkout from 2005-09-01
40or later). If you use earlier versions the libusb code needs to be
41patched.
42
43Parport-scanners:
44-----------------
45I don't have any information about these. Please contact me or the SANE mailing
46list if you succeeded in using one of these.
47
482003-12-26 Henning Meier-Geinitz <henning@meier-geinitz.de>
492005-05-07 Mattias Ellert <mattias.ellert@tsl.uu.se>
50
README.djpeg
1The JPEG decoder in SANE is taken mostly without change from The
2Independent JPEG Group's JPEG software, release 6a. Their "djpeg.README"
3file is included below. The only changes are to file names, e.g.
4djpeg.c -> sanei_jpeg.c, and function names,
5e.g. sanei_jpeg_start_output_ppm()
6
7
8The Independent JPEG Group's JPEG software
9==========================================
10
11README for release 6a of 7-Feb-96
12=================================
13
14This distribution contains the sixth public release of the Independent JPEG
15Group's free JPEG software. You are welcome to redistribute this software and
16to use it for any purpose, subject to the conditions under LEGAL ISSUES, below.
17
18Serious users of this software (particularly those incorporating it into
19larger programs) should contact IJG at jpeg-info@uunet.uu.net to be added to
20our electronic mailing list. Mailing list members are notified of updates
21and have a chance to participate in technical discussions, etc.
22
23This software is the work of Tom Lane, Philip Gladstone, Luis Ortiz, Jim
24Boucher, Lee Crocker, Julian Minguillon, George Phillips, Davide Rossi,
25Ge' Weijers, and other members of the Independent JPEG Group.
26
27IJG is not affiliated with the official ISO JPEG standards committee.
28
29
30DOCUMENTATION ROADMAP
31=====================
32
33This file contains the following sections:
34
35OVERVIEW General description of JPEG and the IJG software.
36LEGAL ISSUES Copyright, lack of warranty, terms of distribution.
37REFERENCES Where to learn more about JPEG.
38ARCHIVE LOCATIONS Where to find newer versions of this software.
39RELATED SOFTWARE Other stuff you should get.
40FILE FORMAT WARS Software *not* to get.
41TO DO Plans for future IJG releases.
42
43Other documentation files in the distribution are:
44
45User documentation:
46 install.doc How to configure and install the IJG software.
47 usage.doc Usage instructions for cjpeg, djpeg, jpegtran,
48 rdjpgcom, and wrjpgcom.
49 *.1 Unix-style man pages for programs (same info as usage.doc).
50 wizard.doc Advanced usage instructions for JPEG wizards only.
51 change.log Version-to-version change highlights.
52Programmer and internal documentation:
53 libjpeg.doc How to use the JPEG library in your own programs.
54 example.c Sample code for calling the JPEG library.
55 structure.doc Overview of the JPEG library's internal structure.
56 filelist.doc Road map of IJG files.
57 coderules.doc Coding style rules --- please read if you contribute code.
58
59Please read at least the files install.doc and usage.doc. Useful information
60can also be found in the JPEG FAQ (Frequently Asked Questions) article. See
61ARCHIVE LOCATIONS below to find out where to obtain the FAQ article.
62
63If you want to understand how the JPEG code works, we suggest reading one or
64more of the REFERENCES, then looking at the documentation files (in roughly
65the order listed) before diving into the code.
66
67
68OVERVIEW
69========
70
71This package contains C software to implement JPEG image compression and
72decompression. JPEG (pronounced "jay-peg") is a standardized compression
73method for full-color and gray-scale images. JPEG is intended for compressing
74"real-world" scenes; line drawings, cartoons and other non-realistic images
75are not its strong suit. JPEG is lossy, meaning that the output image is not
76exactly identical to the input image. Hence you must not use JPEG if you
77have to have identical output bits. However, on typical photographic images,
78very good compression levels can be obtained with no visible change, and
79remarkably high compression levels are possible if you can tolerate a
80low-quality image. For more details, see the references, or just experiment
81with various compression settings.
82
83This software implements JPEG baseline, extended-sequential, and progressive
84compression processes. Provision is made for supporting all variants of these
85processes, although some uncommon parameter settings aren't implemented yet.
86For legal reasons, we are not distributing code for the arithmetic-coding
87variants of JPEG; see LEGAL ISSUES. We have made no provision for supporting
88the hierarchical or lossless processes defined in the standard.
89
90We provide a set of library routines for reading and writing JPEG image files,
91plus two sample applications "cjpeg" and "djpeg", which use the library to
92perform conversion between JPEG and some other popular image file formats.
93The library is intended to be reused in other applications.
94
95In order to support file conversion and viewing software, we have included
96considerable functionality beyond the bare JPEG coding/decoding capability;
97for example, the color quantization modules are not strictly part of JPEG
98decoding, but they are essential for output to colormapped file formats or
99colormapped displays. These extra functions can be compiled out of the
100library if not required for a particular application. We have also included
101"jpegtran", a utility for lossless transcoding between different JPEG
102processes, and "rdjpgcom" and "wrjpgcom", two simple applications for
103inserting and extracting textual comments in JFIF files.
104
105The emphasis in designing this software has been on achieving portability and
106flexibility, while also making it fast enough to be useful. In particular,
107the software is not intended to be read as a tutorial on JPEG. (See the
108REFERENCES section for introductory material.) Rather, it is intended to
109be reliable, portable, industrial-strength code. We do not claim to have
110achieved that goal in every aspect of the software, but we strive for it.
111
112We welcome the use of this software as a component of commercial products.
113No royalty is required, but we do ask for an acknowledgement in product
114documentation, as described under LEGAL ISSUES.
115
116
117LEGAL ISSUES
118============
119
120In plain English:
121
1221. We don't promise that this software works. (But if you find any bugs,
123 please let us know!)
1242. You can use this software for whatever you want. You don't have to pay us.
1253. You may not pretend that you wrote this software. If you use it in a
126 program, you must acknowledge somewhere in your documentation that
127 you've used the IJG code.
128
129In legalese:
130
131The authors make NO WARRANTY or representation, either express or implied,
132with respect to this software, its quality, accuracy, merchantability, or
133fitness for a particular purpose. This software is provided "AS IS", and you,
134its user, assume the entire risk as to its quality and accuracy.
135
136This software is copyright (C) 1991-1996, Thomas G. Lane.
137All Rights Reserved except as specified below.
138
139Permission is hereby granted to use, copy, modify, and distribute this
140software (or portions thereof) for any purpose, without fee, subject to these
141conditions:
142(1) If any part of the source code for this software is distributed, then this
143README file must be included, with this copyright and no-warranty notice
144unaltered; and any additions, deletions, or changes to the original files
145must be clearly indicated in accompanying documentation.
146(2) If only executable code is distributed, then the accompanying
147documentation must state that "this software is based in part on the work of
148the Independent JPEG Group".
149(3) Permission for use of this software is granted only if the user accepts
150full responsibility for any undesirable consequences; the authors accept
151NO LIABILITY for damages of any kind.
152
153These conditions apply to any software derived from or based on the IJG code,
154not just to the unmodified library. If you use our work, you ought to
155acknowledge us.
156
157Permission is NOT granted for the use of any IJG author's name or company name
158in advertising or publicity relating to this software or products derived from
159it. This software may be referred to only as "the Independent JPEG Group's
160software".
161
162We specifically permit and encourage the use of this software as the basis of
163commercial products, provided that all warranty or liability claims are
164assumed by the product vendor.
165
166
167ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
168sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
169ansi2knr.c is NOT covered by the above copyright and conditions, but instead
170by the usual distribution terms of the Free Software Foundation; principally,
171that you must include source code if you redistribute it. (See the file
172ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
173of any program generated from the IJG code, this does not limit you more than
174the foregoing paragraphs do.
175
176The configuration script "configure" was produced with GNU Autoconf. It
177is copyright by the Free Software Foundation but is freely distributable.
178
179It appears that the arithmetic coding option of the JPEG spec is covered by
180patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot
181legally be used without obtaining one or more licenses. For this reason,
182support for arithmetic coding has been removed from the free JPEG software.
183(Since arithmetic coding provides only a marginal gain over the unpatented
184Huffman mode, it is unlikely that very many implementations will support it.)
185So far as we are aware, there are no patent restrictions on the remaining
186code.
187
188WARNING: Unisys has begun to enforce their patent on LZW compression against
189GIF encoders and decoders. You will need a license from Unisys to use the
190included rdgif.c or wrgif.c files in a commercial or shareware application.
191At this time, Unisys is not enforcing their patent against freeware, so
192distribution of this package remains legal. However, we intend to remove
193GIF support from the IJG package as soon as a suitable replacement format
194becomes reasonably popular.
195
196We are required to state that
197 "The Graphics Interchange Format(c) is the Copyright property of
198 CompuServe Incorporated. GIF(sm) is a Service Mark property of
199 CompuServe Incorporated."
200
201
202REFERENCES
203==========
204
205We highly recommend reading one or more of these references before trying to
206understand the innards of the JPEG software.
207
208The best short technical introduction to the JPEG compression algorithm is
209 Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
210 Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
211(Adjacent articles in that issue discuss MPEG motion picture compression,
212applications of JPEG, and related topics.) If you don't have the CACM issue
213handy, a PostScript file containing a revised version of Wallace's article
214is available at ftp.uu.net, graphics/jpeg/wallace.ps.gz. The file (actually
215a preprint for an article that appeared in IEEE Trans. Consumer Electronics)
216omits the sample images that appeared in CACM, but it includes corrections
217and some added material. Note: the Wallace article is copyright ACM and
218IEEE, and it may not be used for commercial purposes.
219
220A somewhat less technical, more leisurely introduction to JPEG can be found in
221"The Data Compression Book" by Mark Nelson, published by M&T Books (Redwood
222City, CA), 1991, ISBN 1-55851-216-0. This book provides good explanations and
223example C code for a multitude of compression methods including JPEG. It is
224an excellent source if you are comfortable reading C code but don't know much
225about data compression in general. The book's JPEG sample code is far from
226industrial-strength, but when you are ready to look at a full implementation,
227you've got one here...
228
229The best full description of JPEG is the textbook "JPEG Still Image Data
230Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published
231by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95, 638 pp.
232The book includes the complete text of the ISO JPEG standards (DIS 10918-1
233and draft DIS 10918-2). This is by far the most complete exposition of JPEG
234in existence, and we highly recommend it.
235
236The JPEG standard itself is not available electronically; you must order a
237paper copy through ISO or ITU. (Unless you feel a need to own a certified
238official copy, we recommend buying the Pennebaker and Mitchell book instead;
239it's much cheaper and includes a great deal of useful explanatory material.)
240In the USA, copies of the standard may be ordered from ANSI Sales at (212)
241642-4900, or from Global Engineering Documents at (800) 854-7179. (ANSI
242doesn't take credit card orders, but Global does.) It's not cheap: as of
2431992, ANSI was charging $95 for Part 1 and $47 for Part 2, plus 7%
244shipping/handling. The standard is divided into two parts, Part 1 being the
245actual specification, while Part 2 covers compliance testing methods. Part 1
246is titled "Digital Compression and Coding of Continuous-tone Still Images,
247Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS
24810918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of
249Continuous-tone Still Images, Part 2: Compliance testing" and has document
250numbers ISO/IEC IS 10918-2, ITU-T T.83.
251
252Extensions to the original JPEG standard are defined in JPEG Part 3, a new ISO
253document. Part 3 is undergoing ISO balloting and is expected to be approved
254by the end of 1995; it will have document numbers ISO/IEC IS 10918-3, ITU-T
255T.84. IJG currently does not support any Part 3 extensions.
256
257The JPEG standard does not specify all details of an interchangeable file
258format. For the omitted details we follow the "JFIF" conventions, revision
2591.02. A copy of the JFIF spec is available from:
260 Literature Department
261 C-Cube Microsystems, Inc.
262 1778 McCarthy Blvd.
263 Milpitas, CA 95035
264 phone (408) 944-6300, fax (408) 944-6314
265A PostScript version of this document is available at ftp.uu.net, file
266graphics/jpeg/jfif.ps.gz. It can also be obtained by e-mail from the C-Cube
267mail server, netlib@c3.pla.ca.us. Send the message "send jfif_ps from jpeg"
268to the server to obtain the JFIF document; send the message "help" if you have
269trouble.
270
271The TIFF 6.0 file format specification can be obtained by FTP from sgi.com
272(192.48.153.1), file graphics/tiff/TIFF6.ps.Z; or you can order a printed
273copy from Aldus Corp. at (206) 628-6593. The JPEG incorporation scheme
274found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
275IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
276Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
277(Compression tag 7). Copies of this Note can be obtained from sgi.com or
278from ftp.uu.net:/graphics/jpeg/. It is expected that the next revision of
279the TIFF spec will replace the 6.0 JPEG design with the Note's design.
280Although IJG's own code does not support TIFF/JPEG, the free libtiff library
281uses our library to implement TIFF/JPEG per the Note. libtiff is available
282from sgi.com:/graphics/tiff/.
283
284
285ARCHIVE LOCATIONS
286=================
287
288The "official" archive site for this software is ftp.uu.net (Internet
289address 192.48.96.9). The most recent released version can always be found
290there in directory graphics/jpeg. This particular version will be archived
291as graphics/jpeg/jpegsrc.v6a.tar.gz. If you are on the Internet, you
292can retrieve files from ftp.uu.net by standard anonymous FTP. If you don't
293have FTP access, UUNET's archives are also available via UUCP; contact
294help@uunet.uu.net for information on retrieving files that way.
295
296Numerous Internet sites maintain copies of the UUNET files. However, only
297ftp.uu.net is guaranteed to have the latest official version.
298
299You can also obtain this software in DOS-compatible "zip" archive format from
300the SimTel archives (ftp.coast.net:/SimTel/msdos/graphics/), or on CompuServe
301in the Graphics Support forum (GO CIS:GRAPHSUP), library 12 "JPEG Tools".
302Again, these versions may sometimes lag behind the ftp.uu.net release.
303
304The JPEG FAQ (Frequently Asked Questions) article is a useful source of
305general information about JPEG. It is updated constantly and therefore is
306not included in this distribution. The FAQ is posted every two weeks to
307Usenet newsgroups comp.graphics.misc, news.answers, and other groups.
308You can always obtain the latest version from the news.answers archive at
309rtfm.mit.edu. By FTP, fetch /pub/usenet/news.answers/jpeg-faq/part1 and
310.../part2. If you don't have FTP, send e-mail to mail-server@rtfm.mit.edu
311with body
312 send usenet/news.answers/jpeg-faq/part1
313 send usenet/news.answers/jpeg-faq/part2
314
315
316RELATED SOFTWARE
317================
318
319Numerous viewing and image manipulation programs now support JPEG. (Quite a
320few of them use this library to do so.) The JPEG FAQ described above lists
321some of the more popular free and shareware viewers, and tells where to
322obtain them on Internet.
323
324If you are on a Unix machine, we highly recommend Jef Poskanzer's free
325PBMPLUS image software, which provides many useful operations on PPM-format
326image files. In particular, it can convert PPM images to and from a wide
327range of other formats. You can obtain this package by FTP from ftp.x.org
328(contrib/pbmplus*.tar.Z) or ftp.ee.lbl.gov (pbmplus*.tar.Z). There is also
329a newer update of this package called NETPBM, available from
330wuarchive.wustl.edu under directory /graphics/graphics/packages/NetPBM/.
331Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software
332is; you are likely to have difficulty making it work on any non-Unix machine.
333
334A different free JPEG implementation, written by the PVRG group at Stanford,
335is available from havefun.stanford.edu in directory pub/jpeg. This program
336is designed for research and experimentation rather than production use;
337it is slower, harder to use, and less portable than the IJG code, but it
338is easier to read and modify. Also, the PVRG code supports lossless JPEG,
339which we do not.
340
341
342FILE FORMAT WARS
343================
344
345Some JPEG programs produce files that are not compatible with our library.
346The root of the problem is that the ISO JPEG committee failed to specify a
347concrete file format. Some vendors "filled in the blanks" on their own,
348creating proprietary formats that no one else could read. (For example, none
349of the early commercial JPEG implementations for the Macintosh were able to
350exchange compressed files.)
351
352The file format we have adopted is called JFIF (see REFERENCES). This format
353has been agreed to by a number of major commercial JPEG vendors, and it has
354become the de facto standard. JFIF is a minimal or "low end" representation.
355We recommend the use of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF
356Technical Note #2) for "high end" applications that need to record a lot of
357additional data about an image. TIFF/JPEG is fairly new and not yet widely
358supported, unfortunately.
359
360The upcoming JPEG Part 3 standard defines a file format called SPIFF.
361SPIFF is interoperable with JFIF, in the sense that most JFIF decoders should
362be able to read the most common variant of SPIFF. SPIFF has some technical
363advantages over JFIF, but its major claim to fame is simply that it is an
364official standard rather than an informal one. At this point it is unclear
365whether SPIFF will supersede JFIF or whether JFIF will remain the de-facto
366standard. IJG intends to support SPIFF once the standard is frozen, but we
367have not decided whether it should become our default output format or not.
368(In any case, our decoder will remain capable of reading JFIF indefinitely.)
369
370Various proprietary file formats incorporating JPEG compression also exist.
371We have little or no sympathy for the existence of these formats. Indeed,
372one of the original reasons for developing this free software was to help
373force convergence on common, open format standards for JPEG files. Don't
374use a proprietary file format!
375
376
377TO DO
378=====
379
380In future versions, we are considering supporting some of the upcoming JPEG
381Part 3 extensions --- principally, variable quantization and the SPIFF file
382format.
383
384Tuning the software for better behavior at low quality/high compression
385settings is also of interest. The current method for scaling the
386quantization tables is known not to be very good at low Q values.
387
388As always, speeding things up is high on our priority list.
389
390Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net.
391
README.freebsd
1SANE and FreeBSD
2----------------
3
4Building:
5---------
6Don't forget to use GNU make (gmake). E.g. "MAKE=gmake ./configure".
7SANE should compile and install out-of-the-box.
8
9If you've installed some of the optional libraries that sane-backends
10can make use of (see README for list) using Ports then you will need to
11let configure know about their locations:
12
13MAKE=gmake CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure
14
15SCSI-scanners:
16--------------
17If the SCSI host adapter is supported, there are no known problems.
18
19USB-scanners:
20-------------
21USB-Scanners are supported by FreeBSD. The USB scanner driver "uscanner" and
22access over libusb can be used.
23
24For some backends (e.g. gt68xx) you MUST use libusb. The uscanner driver won't
25work because it doesn't support control messages or interrupt endpoints.
26
27If you want to use libusb, your scanner should *not* be claimed by the uscanner
28driver. Make sure, that /dev/ugen* and /dev/usb* devices are available. Use
29/dev/MAKEDEV to create them, if necessary. Make sure that the user has write
30access to the appropriate device files.
31
32To get your scanner detected by the uscanner driver, it may be necessary to add
33its vendor and device ids to the kernel and recompile. Use MAKEDEV to generate
34the /dev/uscanner* files if they are not already there. Use sane-find-scanner to
35find your scanner. scanimage -L should find it automatically. Make sure that the
36user has read access to /dev/usb* and read and write access to /dev/uscanner*.
37
38Parport-scanners:
39-----------------
40I don't have much information about these. The Mustek 600 II N scanner seems to
41work, others may or may not work. Please contact me or the SANE mailing list if
42you succeeded in using a parport scanner.
43
442005-11-01 Henning Meier-Geinitz <henning@meier-geinitz.de>
45
README.hp-ux
1Building and Installing SANE on HP-UX
2-------------------------------------
3
4This file contains some notes on building and installing SANE on
5HP-UX. It tells you which compiler switches to use, how to find out
6to which controller card your scanner is connected, and how to create
7a device file for it.
8
9Building SANE
10-------------
11
12On HP-UX, SANE can be built using either the HP ANSI C compiler or
13GCC. For GCC, no special arguments to configure are necessary. For
14the HP compiler, invoke configure like this:
15
16 CC=cc CFLAGS="-Ae -O" ./configure
17
18Higher optimization levels than -O (equivalent to +O2) may fail
19to compile correctly.
20
21If you're using the HP compiler on 64-bit HP-UX 11, you must build
2264-bit executables:
23
24 CC=cc CFLAGS="-Ae +DA2.0W -O" ./configure
25
26
27
28Some of the make files use GNU extensions, so you have to use gmake
29(GNU make). Gmake binaries are available from the HP-UX Porting and
30Archive Centre <http://hpux.connect.org.uk> and its mirror sites.
31
32Installing SANE
33---------------
34
35The SCSI pass-through driver (sctl) must be enabled in your kernel,
36but it is by default.
37
38Naturally, the scanner must have a non-conflicting SCSI address and it
39must be connected to the right SCSI bus to work.
40
41You'll probably need to create a device file for your scanner. To do
42this, you'll need to know its SCSI address, and, if your machine has
43multiple SCSI controllers, the number of the one it's connected to.
44As root, you can use ioscan -f to find this information.
45
46For example, here's the partial ioscan output for a C200:
47
48Class I H/W Path Driver S/W State H/W Type Description
49==============================================================================
50[...]
51ext_bus 0 8/0/19/0 c720 CLAIMED INTERFACE Ultra Wide SCSI
52target 0 8/0/19/0.6 tgt CLAIMED DEVICE
53disk 0 8/0/19/0.6.0 sdisk CLAIMED DEVICE IBM DDYS-T09170N
54target 1 8/0/19/0.7 tgt CLAIMED DEVICE
55ctl 0 8/0/19/0.7.0 sctl CLAIMED DEVICE Initiator
56[...]
57ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI
58target 4 8/16/5.1 tgt CLAIMED DEVICE
59unknown -1 8/16/5.1.0 UNCLAIMED UNKNOWN EPSON Perfection1640
60target 2 8/16/5.2 tgt CLAIMED DEVICE
61disk 1 8/16/5.2.0 sdisk CLAIMED DEVICE TOSHIBA CD-ROM XM-5401TA
62target 3 8/16/5.7 tgt CLAIMED DEVICE
63ctl 1 8/16/5.7.0 sctl CLAIMED DEVICE Initiator
64[...]
65
66You can see that there are two SCSI controllers, Ultra Wide SCSI and
67Built-in SCSI (narrow single-ended). The I column shows the number of
68the controller card. Our scanner, an Epson Perfection 1640, is
69connected to controller 1, and has SCSI address 1 (that's the 1 in the
70H/W Path number).
71
72You can now create the device file using mknod(1M). In this example,
73the command would be:
74
75 mknod /dev/rscsi/c1t1d0 c 203 0x011000
76
77In the filename, c1 specifies controller 1, t1 is target 1 (i.e., the
78SCSI address), d0 (device 0) because it's the only device at that
79address. 203 is the major number of the sctl driver. In the minor
80number (0x011000), 01 again means controller 1, and the second one
81means SCSI address 1. See scsi_ctl(7) for details.
82
83For ease of use with SANE, I'd recommend to create a link to
84/dev/scanner, e.g.,
85
86 ln -s /dev/rscsi/c1t1d0 /dev/scanner
87
88To allow normal users to access the scanner, the best approach is
89probably to create a new group, say, "scanner", and make the scanner
90device file readable and writable for the group, e.g.,
91
92 chown bin:scanner /dev/rscsi/c1t1d0
93 chmod g+rw /dev/rscsi/c1t1d0
94
95You would then add all users that are allowed to use the scanner to
96that group. If you haven't already done so, you should do
97
98 ln -s /etc/group /etc/logingroup
99
100so that users are automatically in all groups to which they belong
101(and don't have to use newgrp(1)).
102
README.linux
1Information about USB scanners:
2================================
3
4With Linux 2.4.* you could either use the kernel scanner module or libusb to
5access USB scanners. In Linux 2.6.4 the kernel scanner module was removed.
6Therefore with this and later kernels libusb must be used.
7
8Permissions:
9------------
10While SANE automatically uses libusb when the library and its header file were
11present during the build of sane-backends, setting permissions will require some
12attention. So if scanimage -L lists your scanner as root but not as normal user
13read on this text.
14
15Most distributions support setting permissions without much manual
16configuration. Usually you must just add the users that are allowed to access
17the scanner to group "scanner". To make that change active, the user must login
18again. For more details, see your distribution's documentation e.g. for Debian:
19README.debian.gz. If this doesn't work you you want to know more, read on.
20
21The device files used by libusb are located in /proc/bus/usb/
22(e.g. /proc/bus/usb/001/003) or in /dev/bus/usb/ (e.g. /dev/bus/usb/001/003), if
23you use udev. The exact file name can be found out by running sane-find-scanner
24which would print "libusb:001:003" in this case. While setting permissions with
25e.g. "chmod a+rw /proc/bus/usb/001/003" works, this change is not permanent.
26The permissions will be reset when the scanner is replugged or Linux is
27rebooted.
28
29One solution to set permissions on-the-fly is Linux udev which comes with
30current distributions. SANE comes with a udev rules file in the tools/udev
31directory which may be used by distributions or can be copied to
32/etc/udev/rules.d manually. The file format is explained on top of the file
33itself. Either you need libusb 0.1.12 or newer or USB_DEVFS_PATH=/dev/bus/usb
34must be exported as a system-wide environment variable.
35
36Older distributions may use the Linux hot-plug tools (or hotplug-ng). Your
37distribution should have set up the scripts to automatically change permissions
38correctly. Look for "libsane.usermap" and "libusbscanner" in /etc/hotplug/usb.
39If you build SANE from source you can use the hotplug script that comes with
40SANE. See the tools/hotplug/ directory in the source distribution. Please refer
41to the README in that directory for the details.
42
43Gentoo information:
44-------------------
45Gentoo users: If your USB scanner is not detected at all check that USE=usb is
46set when emerging.
47
48Information about SCSI scanners:
49================================
50
51Under Linux, your kernel must have generic SCSI support (sg) as well as a
52driver for your SCSI adapter. You may want to increase the SCSI buffer size
53to increase scan speed. Details on all of the above can be found in
54sane-scsi(5).
55
56If your SCSI and sg driver are build as moduls you will need to load them
57with modprobe:
58
59# modprobe your-driver-name
60# modprobe sg
61
62You may find error messages in /var/log/messages. Look at the documentation
63for your SCSI driver. Maybe you need to add options like the io port.
64
65Now the SCSI adapter and your scanner should be visible at /proc/scsi/scsi.
66Example:
67
68# cat /proc/scsi/scsi
69Host: scsi0 Channel: 00 Id: 06 Lun: 00
70 Vendor: SCANNER Model: Rev: 2.02
71 Type: Scanner ANSI SCSI revision: 01 CCS
72
73In this case the real vendor and scanner name are not shown (Mustek
74Scannexpress 12000SP) but SANE will detect it nevertheless.
75
76If your scanner is supported by SANE, scanimage -L will list it now:
77
78# scanimage -L
79device mustek:/dev/scanner' is a Mustek ScanExpress 12000SP flatbed scanner
80
81If this doesn't work you may have to add the right SCSI generic device name
82to the configuration file. This should be documented in the man page for
83your backend. To find out about the right SCSI device use sane-find-scanner:
84
85# sane-find-scanner
86found SCSI scanner "SCANNER 2.02" at /dev/scanner
87found SCSI scanner "SCANNER 2.02" at /dev/sg0
88found SCSI scanner "SCANNER 2.02" at /dev/sga
89
90It may help to set a symbolic link /dev/scanner to the respective device if
91automatic detection does not work.
92
93If you need more information on the Linux SCSI subsystem, look at
94http://www.torque.net/scsi/linux_scsi_24/index.html. Although this
95documentation is about the 2.4 kernels, large parts are also valid for
96older kernels. One important exception is the section on "Device Names
97in devfs".
98
99Adaptec 1542 SCSI adapter:
100 Using buffer sizes of more than 32768 bytes with the aha1542 driver can
101 lead to kernel panic with older kernels. To avoid this, run configure with
102 the option --enable-scsibuffersize or set the environment variable
103 SANE_SG_BUFFERSIZE to 32768 before running scanimage or another frontend,
104 or download and install the SG driver 2.1.37 or newer from
105 http://www.torque.net/sg.
106
107idescsi:
108 The Linux kernel "Emulation of a SCSI host adapter for IDE ATAPI
109 devices" (idescsi) is reported to cause problems in connection with
110 SANE. If your scanner isn't found or you encounter segmentation faults
111 try to disable idescsi.
112
113SCSI Direct IO: Recent versions of the Linux SG driver for the 2.4 kernels
114 support direct IO, i.e., the SCSI adapter's DMA chip copies data directly
115 to/from user memory. Direct IO reduces memory usage, but it can lead to
116 access conflicts, if a backend uses shared memory. SANE does not use
117 direct IO by default. If you want to use it, run
118
119 configure --enable-scsi-directio=yes
120
121Very old Linux distributions are missing the /usr/include/scsi directory. In
122such a case, it is necessary to copy the relevant files from the kernel
123distribution. Normally, the command:
124
125 cp -a /usr/src/linux/include/scsi /usr/include
126
127should fix this problem. Don't do this if you don't get compilation errors
128about missing SCSI headers.
129
130
131Other Information
132=================
133
134ld.so.conf configuration:
135 "/usr/local/lib/sane" or "/usr/lib/sane" MUST NOT be listed in
136 /etc/ld.so.conf. If your scanner is not detected or only Video for Linux
137 devices are found, check for one of the above lines in ld.so.conf.
138 A line "/usr/local/lib" or "/usr/lib" in ld.so.conf is ok, however.
139
140Excessive warnings "pointer of type `void *' used in arithmetic":
141 Some older versions of glibc generate these warnings not related to SANE
142 source code. To suppress these warnings do
143
144 export CFLAGS="-g -O2 -D__NO_STRING_INLINES"
145
146 and rerun configure.
147
148If you use DEC cc on Linux Alpha, you may need to set LDFLAGS="-N" to
149 be able to build sane-backends.
150
151The Intel C++ Compiler for IA32 and IA64 isn't supported yet. If you want
152 to try nevertheless, you will experience undefined references to inb
153 and outb functions. To avoid those replace #include <sys/io.h> with
154
155 #if defined(__ICC) && __ICC >= 700
156 # define __GNUC__ 2
157 #endif
158 #include <sys/io.h>
159 #if defined(__ICC) && __ICC >= 700
160 # undef __GNUC__
161 #elif defined(__ICC) && defined(HAVE_ASM_IO_H)
162 # include <asm/io.h>
163 #endif
164
165Have a lot of fun with the latest SANE backend.
166
README.md
1# SANE
2## Introduction
3SANE is an application programming interface (API) that provides standardized access to any raster image scanner hardware (flatbed scanner, hand-held scanner, video- and still-cameras, frame-grabbers, etc.).
4
5You can also learn more about the SANE project through [the official website](http://sane-project.org/)
6
7## Background Brief
8In the process of OpenHarmony's southward ecological development, it is necessary to be compatible with printers in the stock market. The use of CUPS printing system can directly connect with most printers in the market, which also reduces the difficulty for printer manufacturers to adapt to OpenHarmony.
9
10## Directory structure
11```
12- LICENSE Copyright File
13- OAT.xml OAT.XML filtering configuration file
14- README.OpenSource Project README OpenSource files
15- README.md English Description
16- README_zh.md Chinese Description
17- backend scanning device backend source code
18- include SANE API interface
19- lib SANE library source code
20- sanei SANE internal utility functions and tools
21- doc documents and instruction files
22```
23
24## How to use
25### 1、Header file import
26```c
27#include <sane/sane.h>
28```
29### 2、Add Compilation Dependency
30Add in the bundle. json file
31```json
32"deps": {
33 "third_party": [
34 "backends"
35 ]
36}
37```
38Add dependencies where needed in BUILD.gn
39
40```json
41deps += [ "//third_party/backends:third_sane" ]
42```
43### 3、Example of interface usage
44```c
45SANE_Status status;
46SANE_Handle handle;
47
48// Initialize SANE
49status = sane_init(NULL, NULL);
50if (status != SANE_STATUS_GOOD) {
51 fprintf(stderr, "Failed to initialize SANE: %s\n", sane_strstatus(status));
52 return 1;
53}
54
55// Open the first scanner device
56status = sane_open("your_scanner_device_name", &handle);
57if (status != SANE_STATUS_GOOD) {
58 fprintf(stderr, "Failed to open scanner: %s\n", sane_strstatus(status));
59 return 1;
60}
61
62// Get scanner device information
63const SANE_Device *device_info;
64status = sane_get_devices(&device_info, SANE_FALSE);
65if (status != SANE_STATUS_GOOD) {
66 fprintf(stderr, "Failed to get scanner device information: %s\n", sane_strstatus(status));
67 return 1;
68}
69
70// Set scan parameters
71SANE_Parameters parameters;
72status = sane_get_parameters(handle, ¶meters);
73if (status != SANE_STATUS_GOOD) {
74 fprintf(stderr, "Failed to get scan parameters: %s\n", sane_strstatus(status));
75 return 1;
76}
77
78// Start scanning
79SANE_Image image;
80status = sane_start(handle);
81if (status != SANE_STATUS_GOOD) {
82 fprintf(stderr, "Failed to start scanning: %s\n", sane_strstatus(status));
83 return 1;
84}
85
86// Read scan data
87do {
88 status = sane_read(handle, &image);
89 if (status != SANE_STATUS_GOOD) {
90 fprintf(stderr, "Failed to read scan data: %s\n", sane_strstatus(status));
91 break;
92 }
93
94} while (status == SANE_STATUS_GOOD);
95
96// Finish scanning
97status = sane_cancel(handle);
98if (status != SANE_STATUS_GOOD) {
99 fprintf(stderr, "Failed to cancel scanning: %s\n", sane_strstatus(status));
100 return 1;
101}
102
103// Close the scanner device
104status = sane_close(handle);
105if (status != SANE_STATUS_GOOD) {
106 fprintf(stderr, "Failed to close scanner: %s\n", sane_strstatus(status));
107 return 1;
108}
109
110// Exit SANE
111sane_exit();
112```
113
114### 相关仓
115[print_print_fwk](https://gitee.com/openharmony/print_print_fwk)
116
117### 参与贡献
118[How to involve](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/contribute/参与贡献.md)
119
120[Commit message spec](https://gitee.com/openharmony/device_qemu/wikis/Commit%20message%E8%A7%84%E8%8C%83)
README.netbsd
1SANE and NetBSD
2----------------
3
4Building:
5---------
6Don't forget to use GNU make (gmake). E.g. "MAKE=gmake ./configure".
7SANE should compile and install out-of-the-box.
8
9SCSI-scanners:
10--------------
11SANE only supports the generic /dev/uk? devices. /dev/ss? won't work. If your
12scanner is detected by the ss driver, disable the driver with the "config"
13utility or compile a new kernel without ss. Set a link /dev/scanner to /dev/uk0
14(or whatever you use) and/or edit your backend's config file
15appropriately. Don't forget to set up permissions to the device file correctly
16for access by a non-root user (read/write). Auto-configuration using the "scsi
17*" lines in the config files doesn't work.
18
19Scanners with higher resolutions need bigger SCSI buffers. Therefore, edit
20sanei/sanei_scsi.c and look for these lines:
21
22#ifndef MAX_DATA
23# define MAX_DATA (32*1024)
24#endif
25
26Increase the buffer size to e.g. 128 * 1024. Recompile.
27
28USB-scanners:
29-------------
30
31USB-Scanners are supported in principle. Using libusb is recommended.
32
33Problems when using libusb:
34
35Older kernels may need to be compiled WITHOUT DIAGNOSTIC. Disable it in the
36config file or use a GENERIC kernel without DIAGNOSTIC. If it is, you will get
37errors like "ugenioctl: USB_SET_TIMEOUT, no pipe".
38
39When using libusb, make sure, that /dev/ugen* and /dev/usb* devices are
40available. Use /dev/MAKEDEV to create them, if necessary.
41
42If you want to use libusb, disable the uscanner driver.
43
44Problems with uscanner driver:
45
46The uscanner driver also works (tested with the plustek backend). As the
47uscanner driver can't detect the vendor and product ids automatically, it's
48necessary to add the name of the device file to the backends's configuration
49file. Some backends also need the vendor and product id of the scanner.
50
51Some backends won't work with the uscanner driver because they need USB
52control messages. Use libusb instead.
53
54Parport-scanners:
55-----------------
56I don't have any information about these. Please contact me or the SANE mailing
57list if you succeeded in using one of these.
58
592003-04-24 Henning Meier-Geinitz <henning@meier-geinitz.de>
60
README.openbsd
1SANE and OpenBSD
2----------------
3
4Building:
5---------
6Don't forget to use GNU make (gmake). E.g. "MAKE=gmake ./configure".
7SANE should compile and install out-of-the-box.
8
9If some libraries and headers (like libjpeg) are installed in /usr/local/, adding
10"-I/usr/local/include/ -L/usr/local/lib/" to the CPPFLAGS environment variable
11before running configure may be necessary to get them detected.
12
13Since release 3.9, SANE is available from OpenBSD ports.
14
15SCSI-scanners:
16--------------
17SANE only supports the generic /dev/uk? devices. /dev/ss? won't work. If your
18scanner is detected by the ss driver, disable the driver with the "config"
19utility or compile a new kernel without ss. Set a link /dev/scanner to
20/dev/uk0 (or whatever you use) and/or edit your backend's config file
21appropriately. Don't forget to set up permissions to the device file correctly
22for access by a non-root user (read/write).
23
24USB-scanners:
25-------------
26USB-Scanners are supported in principle since OpenBSD 2.9. The USB scanner
27driver "uscanner" and access over libusb is supported.
28
29To get your scanner detected by the uscanner driver, it may be necessary to
30add its vendor and device ids to the kernel and recompile
31(sys/devs/usb/uscanner.c). With OpenBSD 3.0 there is also a bug concerning
32uscanner that prevents accessing the /dev/uscanner devices. Get a newer
33kernel in this case. If your MAKEDEV won't make /dev/uscanner0 do it manually:
34"mknod /dev/uscanner0 c 77 0" for the first scanner. Edit your backend's
35configuration file appropriately.
36
37If you want to use libusb, your scanner should *not* be claimed by the
38uscanner driver. Also make sure that the ugen driver is NOT compiled with
39DIAGNOSTIC. If it is, you will get errors like "ugenioctl: USB_SET_TIMEOUT,
40no pipe". Make sure, that /dev/ugen* and /dev/usb* devices are available. Use
41/dev/MAKEDEV to create them, if necessary.
42
43For some backends you must use libusb. The uscanner driver won't work because
44automatic detection, control messages, or interrupt endpoints are needed.
45
46When using libusb, you need read/write permissions to ugen(4) (/dev/ugen*.*) and
47the usb(4) controller (/dev/usb*) your scanner is connected to. Consider adding
48a group usb and setting the device permissions using the hotplugd(8) attach
49and detach scripts. See tools/openbsd for an example.
50
51Parport-scanners:
52-----------------
53I don't have any information about these. Please contact me or the SANE mailing
54list if you succeeded in using one of these.
55
562005-12-23 Henning Meier-Geinitz <henning@meier-geinitz.de>
57
README.OpenSource
1[
2 {
3 "Name" : "sane-backends",
4 "License" : "GPL v2",
5 "License File" : "LICENSE",
6 "Version Number" : "1.2.1",
7 "Owner" : "guoshengbang@huawei.com",
8 "Upstream URL" : "https://gitlab.com/sane-project/backends/-/releases/1.1.1",
9 "Description" : "SANE stands is an application programming interface (API) that provides standardized access to any raster image scanner hardware. "
10 }
11]
12
README.os2
12002-01-03
2
3Look at http://home.tiscalinet.de/fbakan/sane-os2.htm for information about
4compiling SANE on OS/2 (from Franz Bakan).
5
6
7The following text was for 1.0.3, but it may help nevertheless.
8
9
10 SANE 1.03 for OS/2 - build 1
11 ----------------------------
12 09 Jul 2000, Yuri Dario <mc6530@mclink.it>
13
14
15WARNING:
16--------
17This release of has been compiled with EMX 0.9D, so it doesn't work with
18the previous runtime. You must upgrade to the latest runtime before running
19SANE (actually EMX 0.9D fix 03).
20
21
22SANE (Scanner Access Now Easy)
23------------------------------
24For more info about the SANE Project, please visit
25
26 http://www.sane-project.org/
27
28You should also check the main site for an updated list of supported scanners.
29
30Note that I can't say you if your scanner is supported; check SANE homepage
31instead.
32
33
34SUPPORT
35-------
36I'm sorry to tell you that it is hard for me to help you: if your scanner
37doesn't work or your problem can't be reproduced on my pc, there are high
38choices that I can't fix the bug. Most problems are specific to same PC/scanner
39combinations, and can't be solved without having a full development environment
40and programming experience.
41
42I have setup a mailing list for users, where I hope most people can find an
43answer to their questions. You will find that I answer only sometimes, because
44I'm too busy.
45To subscribe please visit
46
47 http://www.egroups.com
48
49and look for sane-os2, or fill the form available on my site.
50
51
52DOCUMENTATION
53-------------
54To read docs with correct format, you should type
55
56 more < doc\sane-epson.txt
57
58If someone has more ideas on how to get a correct .txt starting from a .man
59file, he is welcome (actually I'm using groff).
60
61
62INSTALLATION
63------------
64If you already didn't it, install the correct driver for your scsi adapter.
65The drivers has usually a .ADD extension and looks like
66
67 BASEDEV=AHA154X.ADD
68
69Then you need the ASPI driver: this driver is already in your OS2\BOOT
70directory, so you have only to add
71
72 BASEDEV=OS2ASPI.DMD /ALL
73
74The /ALL switch is required only if you need to use other devices with
75aspirout.sys, e.g. if you have a CD-RW and CDRecord/2 installed.
76
77Last, add aspirout.sys to your config.sys
78
79 DEVICE=D:\OS2\BOOT\ASPIROUT.SYS
80
81N.B. you can change the path to other directories.
82Now reboot.
83
84To run scanimage.exe you need also to download the latest EMX runtime,
85available on Hobbes or Leo as emxrt.zip.
86
87find-scanner.exe can be used to recognize a scanner on the scsi bus. Then
88you should edit your xxx.conf file and add the scanner address, a string like
89b0t4l0. This can be simplified using autodetection: with autodetection you can
90use a string like
91
92 scsi EPSON
93
94in your xxx.conf file; the autodection will enable the backend that recognize
95'EPSON' in the scanner id.
96
97To test scanimage, run
98
99 scanimage --help
100
101you should see your scanner following the list of internal devices:
102
103 List of available devices:
104 pnm:0 pnm:1
105
106If it is not present, check your scsi driver, the aspi driver OS2ASPI.DMD and
107aspirout.sys; on Warp4 you can use the Hardware Manager to check scanner
108presence. Then look at your xxx.conf, maybe there is something wrong in the
109text.
110
111
112USAGE:
113------
114Once configured your system, create a proper .conf file (edit one of the
115supplied templates) and run
116
117 scanimage -L
118
119The output should be like
120
121 device `umax:b0t3l0' is a UMAX Vista-S8 flatbed scanner
122 device `pnm:0' is a Noname PNM file reader virtual device
123 device `pnm:1' is a Noname PNM file reader virtual device
124
125The pnm devices are always available, while on the first line you should
126read the id of your scanner.
127
128A simple scan
129
130 scanimage -d umax > test.pnm
131
132will do a scan with default parameters. Run
133
134 scanimage -d umax --help
135
136to get a full list of available switches.
137
138
139SANED:
140------
141In this release the SANE network daemon can be used (with a limit).
142First edit your \mptn\etc\services and add
143
144sane 6566/tcp # SANE network scanner daemon
145
146(maybe a reboot is required to apply that change).
147Create a saned.conf in the same directory of saned.exe and add a list of valid
148client addresses; the clients are allowed to access the local scanner.
149Now run the server in debug mode
150
151 saned -d
152
153On the client side, you need to create a net.conf file in the same directory
154of scanimage.exe: here you have to add a list of valid saned servers.
155Run
156
157 scanimage -L
158
159The output is like this
160
161device `umax:b0t3l0' is a UMAX Vista-S8 flatbed scanner
162device `pnm:0' is a Noname PNM file reader virtual device
163device `pnm:1' is a Noname PNM file reader virtual device
164device `net:pippo.intranet:umax:b0t3l0' is a UMAX Vista-S8 flatbed scanner
165device `net:pippo.intranet:pnm:0' is a Noname PNM file reader virtual device
166device `net:pippo.intranet:pnm:1' is a Noname PNM file reader virtual device
167
168Then saned will quit. To run it forever, you have to configure the INETD
169daemon: create a \mptn\etc\inetd.lst with the following line
170
171 sane tcp /rd/sane/sane-1.0.1/frontend/saned.exe
172
173Be aware that this configuration shouldn't work: I have been unable to get it
174working on my PC without running saned under the debugger PMGDB.
175The correct syntax for running scanimage over the net is
176
177 scanimage -d net:HOSTNAME:umax:b0t3l0 > test.pnm
178
179where HOSTNAME is a valid DNS host name.
180You can log server access using syslogd: if syslogd is running, saned will
181send to it all messages.
182
183
184HOW TO COMPILE:
185---------------
186To compile SANE with emx, you need
187
188- EMX 0.9D
189- GNU Make 3.75 (rename to make.exe)
190- GNU Patch 2.5
191- KSH 5.2.13 (rename to sh.exe)
192- GNU Bison
193- GNU File utilities
194- GNU SED (stream editor)
195- Autoconf 2.13
196
197Steps:
198- untar the original Unix distribution;
199- unzip this file somewhere;
200- copy src\* into sane-1.0.1;
201- enter sane-1.0.1 directory;
202- apply patches to original distribution:
203 [...\sane-1.0.1]gnupatch -p 0 < patch.os2
204- run autoconf to rebuild the configure script
205- edit configure and change autoconf default optimization flags;
206 search for -O2 -m486 and change to your preferred settings;
207- add the following line after :${LDFLAGS="...."}
208 : ${LIBS="-lsocket"}
209- run configure.os2 to build all installation files;
210- add -Zexe to LDFLAGS in frontend\Makefile and tools\Makefile;
211- run make (compiler warnings are ok);
212- wait to complete all makes;
213
214Remember to install a Unix like shell in your path; I use ksh.exe
215renamed to sh.exe, and saved in d:\bin
216(that's because most unix scripts uses SHELL=/bin/sh)
217
218You need also a compatible dl.a and syslog.a library; look in .\contrib
219for a couple of simple sources.
220
221Flags needed under EMX:
222-Zsysv-signals enables signal management as in SystemV, otherwise emx
223 convention is used (and it is different from sysv).
224-Zcrtdll link dynamically with EMXLIBCM.DLL;
225
226
227PARALLEL PORT
228-------------
229This release has support for parallel port enabled: actually only the Epson
230backend makes uses of such support; the Epson GT-300 can be recognized, but
231scanning can't be completed.
232
233Also HP-5100C parallel scanner can be run under OS/2: you need to download
234the EPST driver from Shuttle Tech. homepage (www.shuttletech.com); follow the
235instruction for installation. Then the scanner is seen as a scsi HP, so the
236HP backend can work with it.
237
238The Quickcam backend is also included with lpt support, but I can't say how it
239is working.
240
241History:
242--------
24309 Jul 2000 release 1.03
244
24520 Jun 1999 release 1.01
246 - changed runtime to EMX 0.9D
247 - fixed: find-scanner should now work correctly.
248 - added: how to compile instructions.
249
25007 Mar 1999 release 1.01 pre-test3
251 no OS/2 specific fixes
252
25320 Oct 1998 release 0.74
254 fixed fork()ing backends with new sanei_thread api.
255 fixed scsi autodetection
256 added parallel port support
257
258===============================================================================
259Yuri Dario <mc6530@mclink.it>
260http://www.quasarbbs.com/yuri
261
README.solaris
1This is a report on how to build SANE on Solaris/x86 using a USB scanner. See
2below for SCSI.
3
4Another report for SANE on OpenSolaris can be found here:
5http://ginfo.egim-mrs.fr/article.php3?id_article=44
6
7From: Tomasz Orlinski <tomasz.orlinski@wp.pl>
8To: sane-devel@lists.alioth.debian.org
9Subject: [sane-devel] USB scanners DO work on Solaris 10 x86
10Date: Thu, 7 Oct 2004 20:26:50 +0200
11
12I would like to inform you, that I have compiled SANE on Sun Solaris 10 x86
13with built-in USB scanner support. It was possible, because Sun had prepared
14libusb library wrapper for Solaris 10. I know, that Solaris 10 Software
15Express Release 08/04 is required. I have done it in that way:
16LD_LIBRARY_PATH=/usr/sfw/lib:$LD_LIBRARY_PATH
17CFLAGS="-I/usr/sfw/include"
18CPPFLAGS="-I/usr/sfw/include"
19LDFLAGS="-L/usr/sfw/lib -R/usr/sfw/lib -lusb"
20export LD_LIBRARY_PATH CFLAGS CPPFLAGS LDFLAGS
21./configure --prefix=/opt/sane --disable-fork-process
22make
23make install
24It was also required to add a generic USB kernel driver. I had to look for
25my scanner device name in output of
26prtconf -D -v
27command. My scanner is Plustek UT24 and the appropriate part of output looked
28like this:
29name='compatible' type=string items=8 value='usb7b3,17.100' + ...
30I had to remove the not used kernel driver
31rem_drv ugen
32And add it again:
33add_drv -i 'usb7b3,17.100' ugen
34Then, /opt/sane/bin/sane-find-scanner detected my scanner and everything
35worked fine. I to add " " signs around usb7b3,17.100 name in
36/etc/driver_aliases to have the scanner working after reboot.
37To compile this packages SUNWlibusb and SUNWlibusbugen were needed. I used
38Solaris Software Companion CD gcc 2.95.3 compiler and Sun's /usr/ccs/bin/ld
39linker. USB support DOES NOT work in Solaris 9 and earlier versions.
40I hope, that this information would be useful for other USB scanner users.
41
42From: Tomasz Orlinski <tomasz.orlinski@wp.pl>
43To: sane-devel@lists.alioth.debian.org
44Subject: Re: [sane-devel] USB scanners DO work on Solaris 10 x86
45Date: Fri, 8 Oct 2004 16:06:14 +0200
46
47[...]
48
49Sun in Driver Development Kit v. 0.9 writes how to compile SANE, but it does not
50really work :) They write about compiling with gcc and give options for Sun
51Forte compiler (cc) and forget about attaching a kernel driver. But they write,
52that versions earlier than 1.0.14 cannot be used. They want also to build SANE
53with Posix threads enabled. So I think that can be true. Sun writes also, that
54Solaris Software Express release at least S10_62 is needed to use
55libusb. Release number can be checked in /etc/release. The newest version can be
56downloaded from www.sun.com/solaris for free.
57
58In my opinion it is important to be cautious when using scanner or just libusb
59on important Solaris machines (especially multi-processor ones), because unlike
60in other systems, Solaris kernel is fully preemtible, what means, that many
61instances of the same driver can run simultaneously - it's dangerous, when
62drivers are not perfect. And Solaris USB framework is absolutely new, so it can
63contain bugs. I tried to crash my Solaris using USB subsystem and SANE, I didn't
64manage to, but it doesn't mean, it's impossible.
65
66SANE frontends work without any problems with Xsun and GIMP included in Solaris
67Software Companion CD.
68
69---------------------------------------------------------------------------
70The following text describes, how to use a SCSI scanner (2002-06-11).
71
72You need a generic SCSI driver to run SANE on Solaris. There are at
73least three such drivers: the scg driver by Joerg Schillig, the
74sg driver by Kevin Sheehan, and starting with Solaris 8 Sun's own
75sgen(7D) driver.
76
77NOTE: You should install the SCSI generic driver BEFORE you run
78`configure' in the sane directory---otherwise configure won't set up
79SANE to work with the generic scsi driver.
80
81*** scg driver
82
83The SCSI general driver scg is
84
85 Copyright 1986-1995 Joerg Schilling,
86
87It is supplied binary in pkgadd(1m) format and is tested from Solaris
882.3 to Solaris 2.6 (sparc) and Solaris 2.3 to Solaris 2.5.1 (x86). It
89can be found in
90
91 ftp://ftp.fokus.gmd.de/pub/unix/kernel/scg/
92
93To install it on a SPARC do:
94
95 cd /tmp
96 get SCHILYscg.sparc.tar.Z
97 uncompress SCHILYscg.sparc.tar.Z
98 tar -xvf SCHILYscg.sparc.tar
99as root:
100 pkgadd -d .
101
102NOTE: Be very careful with pkgadd as it does not check for the correct
103 target architecture. Do not install drivers for x86 on sparc
104 and vice versa. You will get a corrupt system otherwise.
105
106For Solaris on an x86 do:
107
108 cd /tmp
109 get SCHILYscg.i386.tar.Z
110 uncompress SCHILYscg.i386.tar.Z
111 tar -xvf SCHILYscg.i386.tar
112as root:
113 pkgadd -d .
114
115Then do a reboot --r
116
117Once the system has rebooted, there should be a device node /dev/scgXX
118for each of your SCSI adapters (/dev/scg0 for the first adapter,
119/dev/scg1 for the second, and so on...)
120
121Because the device name specifies a SCSI adapter, you need to use a
122special device naming syntax so SANE can tell which device you want to
123talk to. If the device is at SCSI id 0, the character 'a' should be
124appended, character 'b' should be used for SCSI id 1, and so on
125(see also the Solaris section in sane-scsi(5)).
126
127E.g., to configure an HP scanner, configuration file
128/opt/local/etc/sane.d/hp.conf might contain:
129
130 /dev/scg0c if the scanner has the SCSI target id 2
131
132WARNING! Everybody who can read/write a generic SCSI device can do
133with all your disks whatever he/she wants. It takes only a few lines
134of code to send a FORMAT control block... Rather than giving users
135access to the SCSI adapter special device, it may be a better idea to
136install scanimage/xscanimage setgid to a special "scanner" group and
137then turn on write permission for the scanner group.
138
139*** sg driver
140
141Another solution to the permission problem is to use the generic SCSI
142driver sg by Kevin Sheehan. This driver is not free but uses separate
143device node for each SCSI target:
144
145 /dev/sg/0, /dev/sg/1, ...
146
147This allows to control device access on a per-device basis.
148
149*** sgen driver
150
151The solaris 8 sgen driver must be configured before it can be used.
152See /kernel/drv/sgen.conf and the manual page sgen(7D).
153
154The minimal config includes defining the correct
155"device-type-config-list" property in /kernel/drv/sgen.conf. The
156typical SCSI device type for a scanner is either "scanner" or
157"processor". You can optionally restrict the devices sgen attaches to,
158by defining the "inquiry-config-list" property. You also have to
159uncomment the scanner's "target/lun" entry, so that the sgen driver is
160allowed to attach to the SCSI scanner hardware.
161
162After the configuration file /kernel/drv/sgen.conf is set up for the
163scanner, run the command "devfsadm -v -i sgen" to create sgen device
164nodes for the scanner. In case you need to rerun devfsadm to
165incorporate changes to the sgen.conf file, make sure the sgen driver
166is unloaded from the kernel before you re-run devfsadm. The driver is
167unloaded using the "modunload -i {id}" command; the {id} of the sgen
168driver can be determined with the modinfo command.
169
170
171The device nodes use names of the following form:
172
173 /dev/scsi/device-type/cXtXdX
174
175Example: A HP Scanjet 4c (SCSI device type: "processor") on controller
176#1, target #6, lun #0 uses the device name
177
178 /dev/scsi/processor/c1t6d0
179
180/kernel/drv/sgen.conf contains:
181
182 device-type-config-list="processor";
183 name="sgen" class="scsi" target=6 lun=0;
184
185
186
187If you have questions or problems with the Solaris support in SANE,
188send mail to:
189
190 hu@garfield.m.isar.de
191
README.unixware2
1UNIXWARE PORT of SANE - HOWTO build and what you need to run
2
3You need a sane SCSI driver to run SANE on Unixware 2.x. There is at
4least one such driver: the sane driver by R=I+S.
5
6The Unixware sane driver is a binary loadable module driver for UW2.x.
7Please send Email to wolfgang@rapp-informatik.de to receive.
8
9What you need to build xane on Unixware 2.x
10- gnu make
11
12You don't need gcc. All is build with the standard Unixware cc and
13libs!!
14
15For the X-frontends xscanimage and xsane (separately distributed) you need
16libs like libgtk libgimp and the image libs for jpeg, tiff and png. It is
17also good to have gettext with libintl installed. Most of the libs are
18available on the Skunkware CD's from SCO in pkgadd format. If you build the
19frontends with this libs gimp plugin is also supported by xscanimage and
20xsane. Latest xsane version tested was 0.48.
21
22With the following configure should run an build shared libs with
23libtool 1.3.4
24
25LD_RUN_PATH=/usr/local/lib CPPFLAGS="-I/usr/local/include -I/isr/X/include" CFLAGS="-I/usr/local/include -I/usr/X/include
26-I/usr/ucbinclude -L/usr/local/lib -L/usr/ucblib -l ucb" LIBS="-lsocket -lnsl -lgen -I/opt/include -L/usr/ucblib -lucb" ./configure
27
28After running configure you have to edit the generated file libtool
29
30Append to the line
31archive_cmds="\$LD -G -o \$lib \$libobjs \$deplibs \$linkopts
32
33so that it looks like this.
34archive_cmds="\$LD -G -o \$lib \$libobjs \$deplibs \$linkopts -B bind_now -L/usr/local/lib -lintl -L/usr/ucblib -lucb -lm"
35
36This is a must to link the libucb.a , libintl.a in when the sane libs
37are build.It's also necessary for mathematic lib -lm . Not doing this
38will bring runtime errors like missimg usleep or pow function.
39
40ATTENTION:!!! libucb.a of Unixware 2.x has a buggy readdir function so
41it is recommended to remove readdir.o from libucb.a with ar -d
42readdir.o libucb.a Often used and needed functions from libucb.a are
43strncasecmp or getpagesize.
44
45If you use -I/usr/ucbinclude it is also a good idea to move
46/usr/ucbinlcude/unistd.h to another file, because it will be included
47first and some sources will not compile.
48
49Then you can run make with GNU make.
50
51After this say su and then it's good to say
52LD_RUN_PATH=/usr/local/lib export LD_RUN_PATH
53
54after this you can install with
55make install
56
57Tested on Unixware 2.0.x with Umax Astra 1220S and HP C5100A with
58sane-1.0.1. With Microtek backend earlier on sane-0.74.
59
60If you use the net backend you do not need the Unixware sanedrv.
61
62The driver is a shareware product.
63
64The driver is supplied binary in pkgadd(1m) format and is tested from
65UW2.0x. Please send Email to wolfgang@rapp-informatik.de to get the
66driver in binary pkgadd package.
67
68To install it on a Unixware do:
69
70 cd /tmp
71 get sanedrv.pkg.tgz
72 gunzip sanedrv.pkg.tgz
73 tar xvf sanedrv.pkg.tar
74as root:
75 pkgadd -d /tmp/sanedrv
76
77Once the driver is installed, there should be a device nodes /dev/sane
78and /dev/scanner /dev/scanner1 for the second, and so on...)
79
80The scanner my be connected to any SCSI controller in the system, also
81if you have additional devices like disks or cdroms on the same
82controller. The UW2.x sane driver do not block the controller. The
83scanner must be switched on to be recognized by UW, if the low level
84driver p.e. adsl is loaded.
85
86To configure an UMAX scanner, configuration file
87/usr/local/etc/sane.d/umax.conf might contain:
88
89 /dev/scanner
90
91The driver is configured to recognice all scsi scanners with ID
92SCANNER and all HP Scsi scanners with ID Processor and Inquiry string
93starting with "HP" string. For details have a look to
94/etc/conf/pack.d/sane/space.c.
95
96If you change this then you must unload the sane driver modadmin -U
97sane, build the new module by /etc/conf/bin/idbuild -M sane and the
98install the driver with modadmin -l sane.
99
100If you have questions or problems with the Unixware support in SANE,
101send mail to:
102
103wolfgang@rapp-informatik.de
104
README.unixware7
1SANE on UnixWare 7
2==================
3
4The easiest way to get SANE working on a UnixWare 7.1.X system (UW 7.0.0
5and 7.0.1 are not supported) is to download and install the SANE binary
6distribution from SCOs Skunkware web site. The URL is:
7
8 ftp://ftp.sco.com/skunkware/uw7/Packages
9
10Use the pkgadd command to install the files, e.g.:
11
12 # pkgadd -d `pwd`/sane-1.0.2.pkg
13
14A web page with further information specific to SANE on UnixWare 7 can be
15found here:
16
17 http://www.sco.com/skunkware/sane/index.html
18
19However, please note that the SANE package that is available from the
20Skunkware server will most likely contain the latest stable version of
21SANE. Since SANE is continuously being worked on, you might want to download
22the latest source from the Git repository and build the source yourself.
23
24To build SANE on a UnixWare 7.1.X system the following packages are required:
25
26 * make (GNU make)
27 * glibs (contains gtk, glib, libjpeg, libpnm, libtiff etc.; only
28 necessary for frontends xscanimage, xcam, and xsane which are
29 distributed separately)
30
31The packages can be downloaded from the Skunkware ftp server (see URL above).
32I've used the following versions to build sane-1.0.2:
33
34 * make-3.78.1.pkg
35 * glibs-2.0.3.pkg
36
37If you want to include support for The Gimp (this is optional), you need to
38install the gimp package, too. This is the version I've used:
39
40 * gimp-1.0.4.pkg
41
42GCC is not required. SANE compiles quite happily (and faster) with UnixWares
43native C compiler.
44
45Set the LD_RUN_PATH variable to add /usr/local/lib to the list of directories
46to be searched by the dynamic linker:
47
48 $ LD_RUN_PATH=/usr/local/lib
49 $ export LD_RUN_PATH
50
51Run the configure script as following:
52
53 $ LIBS="-lsdi" ./configure
54
55(The sdi library contains the SCSI passthrough functions the UW7 port of SANE
56uses to access the scanner from user space.)
57
58Run gmake to build SANE:
59
60 $ gmake
61
62SCSI access from user space requires special privileges. If you want users
63without root perms to be able to use the scanner you can use the filepriv
64command to change the privileges that are associated with the SANE
65applications:
66
67 # /sbin/filepriv -f driver -f sysops /usr/local/bin/scanimage
68 # /sbin/filepriv -f driver -f sysops /usr/local/bin/xscanimage
69 # /sbin/filepriv -f sysops /usr/local/bin/xcam
70
71If you have built SANE with support for The Gimp you might want to create
72a symlink from the plug-in directory to the xscanimage and xcam binaries,
73e.g.:
74
75 # ln -s /usr/local/bin/xscanimage \
76 /usr/local/lib/gimp/1.0/plug-ins/xscanimage
77 # ln -s /usr/local/bin/xcam /usr/local/lib/gimp/1.0/plug-ins/xcam
78
79Questions? Comments? Please send e-mail to jenss@sco.com or skunkware@sco.com!
80
README.windows
1SANE on Windows
2
3Prerequisites
4=============
5
6To be able to compile sane-backends, you need to have either Cygwin
7or Mingw compilers and a suitable POSIX compatible environment.
8
9You can get the Cygwin POSIX compatible environment for Windows
10Windows and the Cygwin gcc compiler at http://www.cygwin.com
11
12You can get the MSYS POSIX compatible environment for Windows and the
13MinGW gcc compiler at http://www.mingw.org/wiki/MSYS
14
15The scanner must be detected by Windows and not be disabled. Check
16with the hardware manager.
17
18
19Building
20========
21
22See general README for build basics. If a given backend fails to
23compile, you can use the BACKENDS variable to limit compilation
24to backends your interested in:
25
26 ./configure BACKENDS=epson2
27
28
29Configuring
30===========
31
32If you have more than one scanner, you should do the following:
33
34 - run sane-find-scanner to get the device name of the scanner. The
35 name for scsi devices is something like h0b0t6l0, meaning hba 0, bus 0,
36 scsi id 6 and lun 0.
37
38 - edit the config file for the backend
39 (/path/to/sane/etc/sane.d/xxxx.conf) and add the scanner device name on
40 an empty line.
41
42 - Set environment variable SANE_CONFIG_DIR to point to the directory
43 where the config files are located.
44
45Run "scanimage > out.pnm" to get a scan.
46
47xscanimage and XSane have been reported to compile and run in the past
48under Cygwin.
49
50Notes
51=====
52
53- Only SCSI, USB (with libusb-win32), and network scanners may work. No
54 FireWire/Parallel. The Cygwin libusb port can be installed
55 with Cygwin setup.exe or can be compiled manually under cygwin
56 or mingw using the libusb-win32 port:
57 http://sourceforge.net/apps/trac/libusb-win32/wiki
58
59- Tested on Windows XP, 7, and using Wine on Linux.
60
61- Some scanners' backend may not work because of requirement not
62 supported by Cygwin or MinGW.
63
64
652011/10/08
66
README.zeta
1SANE and Zeta
2-------------
3
4The Zeta port is based on existing BeOS port, with some changes
5to accommodate yellowTAB's internal build procedure, and some new
6conventions brought up by Zeta.
7
8Cf. README.beos for more historical stuff.
9
10SANE 1.0.9 was updated for Zeta by Ithamar Adema for yellowTAB.
11
12SANE 1.0.15 was updated for BeOS and Zeta by François Revol for yellowTAB.
13
14Zeta uses a modified version of Philippe Houdoin's Sanity GUI frontend.
15http://philippe.houdoin.free.fr/phil/beos/sanity/index-en.html
16
17SANE was reported to work with the following configuration and features:
18
19Platform: Zeta R1 (== BeOS R6.x) ix86
20Latest SANE version tested: 1.0.15
21Compiler: gcc 2.95.3
22User-level SCSI support: yes
23USB support: yes
24Shared library support: yes
25Dynamic loading support: yes
26X11 clients: no
27