1sane-apple(5) SANE Scanner Access Now Easy sane-apple(5)
2
3
4
6 sane-apple - SANE backend for Apple flatbed scanners
7
9 The sane-apple library implements a SANE (Scanner Access Now Easy)
10 backend that provides access to Apple flatbed scanners. At present, the
11 following scanners are supported from this backend:
12
13 --------------- ----- ------------------ ------
14 AppleScanner 4bit 16 Shades of Gray
15 OneScanner 8bit 256 Shades of Gray
16 ColorOneScanner 24bit RGB color 3-pass
17
18
19 If you own a Apple scanner other than the ones listed above that works
20 with this backend, please let us know by sending the scanner's model
21 name, SCSI id, and firmware revision to sane-devel@alioth-
22 lists.debian.net. See http://www.sane-project.org/mailing-lists.html
23 for details on how to subscribe to sane-devel.
24
25
27 This backend expects device names of the form:
28
29 special
30
31 Where special is either the path-name for the special device that cor‐
32 responds to a SCSI scanner. For SCSI scanners, the special device name
33 must be a generic SCSI device or a symlink to such a device. Under
34 Linux, such a device name could be /dev/sga or /dev/sge, for example.
35 See sane-scsi(5) for details.
36
37
39 The apple.conf file is a list of options and device names that corre‐
40 spond to Apple scanners. Empty lines and lines starting with a hash
41 mark (#) are ignored. See sane-scsi(5) on details of what constitutes
42 a valid device name.
43
44 Options come in two flavors: global and positional ones. Global
45 options apply to all devices managed by the backend, whereas positional
46 options apply just to the most recently mentioned device. Note that
47 this means that the order in which the options appear matters!
48
49
51 SCSI scanners are typically delivered with an ISA SCSI adapter. Unfor‐
52 tunately, that adapter is not worth much since it is not interrupt
53 driven. It is sometimes possible to get the supplied card to work, but
54 without an interrupt line, scanning will put so much load on the system
55 that it becomes almost unusable for other tasks.
56
58 /etc/sane.d/apple.conf
59 The backend configuration file (see also description of
60 SANE_CONFIG_DIR below).
61
62 /usr/lib64/sane/libsane-apple.a
63 The static library implementing this backend.
64
65 /usr/lib64/sane/libsane-apple.so
66 The shared library implementing this backend (present on systems
67 that support dynamic loading).
68
70 SANE_CONFIG_DIR
71 This environment variable is list of directories where SANE
72 looks for the configuration file. Under UNIX directory names
73 are separated by a colon (`:'), under OS/2 by a semi-colon
74 (`;'). If SANE_CONFIG_DIR is not set, SANE defaults to search‐
75 ing the current working directory (".") and then /etc/sane.d.
76 If the value of $SANE_CONFIG_DIR ends with the separator charac‐
77 ter, the default directories are searched after the directory
78 list. For example, setting SANE_CONFIG_DIR to "/tmp/config:"
79 would result in directories tmp/config, ., and /etc/sane.d being
80 searched (in that order).
81
82 SANE_DEBUG_APPLE
83 Controls the debug level. A value of 255 prints all debug out‐
84 put. Smaller values reduce verbosity. Requires a library com‐
85 piled with debug support.
86
87
89 The apple backend is now in version 0.3 (Tue Jul 21 1998). Since I only
90 have the AppleScanner and not the other models (OneScanner, ColorOneS‐
91 canner) I can only develop/test for the AppleScanner effectively. How‐
92 ever with this release I almost completed the GUI part of all scanners.
93 Most of the functionality is there. At least OneScanner should scan at
94 the AppleScanner's compatible modes (LineArt, HalfTone, Gray16). My
95 personal belief is that with a slight touch of debugging the OneScanner
96 could be actually usable. The ColorOneScanner needs more work. AppleS‐
97 canner is of course almost fully supported.
98
99
101 Currently all three models lack upload/download support.
102
103 AppleScanner
104 Cannot up/download a halftone pattern.
105
106 OneScanner
107 Cannot up/download halftone patterns or calibration vectors.
108
109 ColorOneScanner
110 Cannot up/download halftone patterns, calibration vectors, cus‐
111 tom Color Correction Tables (CCT) and of course custom gamma
112 tables.
113
114 Park/UnPark (OneScanner, ColorOneScanner)
115 Some capabilities are missing.
116
117 The above functionalities are missing because I don't have the hardware
118 to experiment on. Another reason is my lack of understanding as to how
119 or if the SANE API provide means to describe any array type besides
120 gamma.
121
122
123
125 The following "features" will never be supported, at least while I
126 maintain the sane-apple backend.
127
128 NoHome (AppleScanner)
129 The scanner lamp stays on and the carriage assembly remains
130 where it stops at the end of the scan. After two minutes, if the
131 scanner does not receive another SCAN command, the lamp goes off
132 and the carriage returns to the home position.
133
134 Compression (AppleScanner)
135 The Scanner can compress data with CCITT Group III one dimen‐
136 sional algorithm (fax) and the Skip White Line algorithm.
137
138 Multiple Windows (AppleScanner)
139 AppleScanner may support multiple windows. It would be a cool
140 feature and a challenge for me to code if it could intermix dif‐
141 ferent options for different windows (scan areas). This way it
142 could scan a document in LineArt mode but the figures in it in
143 Gray and at a different resolution. Unfortunately this is
144 impossible.
145
146 Scan Direction (OneScanner)
147 It controls the scan direction. (?)
148
149 Status/Reset Button (OneScanner)
150 This option controls the status of the button on the OneScanner
151 model. You can also reset the button status by software.
152
153
155 SANE backend bugs are divided in two classes. We have GUI bugs and
156 scanner specific bugs.
157
158 We know we have a GUI bug when a parameter is not showing up when it
159 should (active) or vice versa. Finding out which parameters are active
160 across various Apple modes and models from the documentation
161 ftp://ftpdev.info.apple.com/devworld/Technical_Documentation/Peripher‐
162 als_Documentation/ is an interesting exercise. I may have missed some
163 dependencies. For example of the threshold parameter the Apple Scanners
164 Programming Guide says nothing. I had to assume it is valid only in
165 LineArt mode.
166
167 Scanner specific bugs are mostly due to mandatory round-offs in order
168 to scan. In the documentation in one place states that the width of the
169 scan area should be a byte multiple. In another place it says that the
170 width of the scan area should be an even byte multiple. Go figure...
171
172 Other sources of bugs are due to scsi communication, scsi connects and
173 disconnects. However the classical bugs are still there. So you may
174 encounter buffer overruns, null pointers, memory corruption and SANE
175 API violations.
176
177 SIGSEGV on SliceBars
178 When you try to modify the scan area from the slice bar you have
179 a nice little cute core dump. I don't know why. If you select
180 the scan area from the preview window or by hand typing the num‐
181 bers everything is fine. The SIGSEGV happens deep in gtk library
182 (gdk). I really cannot debug it.
183
184 Options too much
185 It is possible, especially for the ColorOneScanner, for the
186 backend's options panel to extend beyond your screen. It happens
187 with mine and I am running my X Server at 1024x768. What can I
188 say? Try smaller fonts in the X server, or virtual screens.
189
190 Weird SCSI behaviour
191 I am quoting David Myers Here...
192
193 >> OS: FreeBSD 2.2.6
194 >> CC: egcs-1.02
195 Just wanted to follow up on this... I recently changed my SCSI
196 card from the Adaptec 2940UW to a dual-channel Symbios 786
197 chipset. When I started up SANE with your driver, I managed to
198 scan line art drawings okay, but Gray16 scans led to a stream of
199 SCSI error messages on the console, ultimately hanging with a
200 message saying the scanner wasn't releasing the SCSI bus. This
201 may be that the Symbios is simply less tolerant of ancient hard‐
202 ware, or may be bugs in your driver or in SANE itself...
203
204
206 If you encounter a GUI bug please set the environmental variable
207 SANE_DEBUG_APPLE to 255 and rerun the exact sequence of keystrokes and
208 menu selections to reproduce it. Then send me a report with the log
209 attached.
210
211 If you have an Apple Macintosh with the AppleScanners driver installed,
212 reporting to me which options are grayed out (inactive) in what modes
213 would be very helpful.
214
215 If you want to offer some help but you don't have a scanner, or you
216 don't have the model you would like to help with, or you are a SANE
217 developer and you just want to take a look at how the apple backend
218 looks like, goto to apple.h and #define the NEUTRALIZE_BACKEND macro.
219 You can select the scanner model through the APPLE_MODEL_SELECT macro.
220 Available options are APPLESCANNER, ONESCANNER, and COLORONESCANNER.
221
222 If you encounter a SCSI bus error or trimmed and/or displaced images
223 please set the environment variable SANE_DEBUG_SANEI_SCSI to 255 before
224 sending me the report.
225
226
228 Non Blocking Support
229 Make sane-apple a non blocking backend. Properly support
230 sane_set_io_mode() and sane_get_select_fd()
231
232 Scan Make scanning possible for all models in all supported modes.
233
234 Add other missing functionality
235
236
238 sane(7), sane-scsi(5)
239
240
242 The sane-apple backend was written not entirely from scratch by Milon
243 Firikis. It is mostly based on the sane-mustek(5) backend from David
244 Mosberger and Andreas Czechanowski
245
246
247
248 11 Jul 2008 sane-apple(5)