1sane-pixma(5) SANE Scanner Access Now Easy sane-pixma(5)
2
3
4
6 sane-pixma - SANE backend for Canon Multi-Function Printers and
7 CanoScan Scanners
8
10 The sane-pixma library implements a SANE (Scanner Access Now Easy)
11 backend that provides access to Canon PIXMA / i-SENSYS / imageCLASS /
12 imageRUNNER multi-function devices (All-in-one printers) and the Canon
13 CanoScan Flatbed/TPU scanners. The backend implements both the USB
14 interface and network interface (using Canon's BJNP and MFNP proto‐
15 cols). The network interface supports scanners over IPv4 as well as
16 IPv6 (MFNP over IPv6 is untested).
17
18 Currently, the following models work with this backend:
19
20 PIXMA E510
21 PIXMA G2000, G2100
22 PIXMA MG2100, MG2200, MG2400, MG2500, MG2900, MG3100, MG3200
23 PIXMA MG3500, MG3600, MG4200, MG5100, MG5200, MG5300, MG5400
24 PIXMA MG5500, MG5600, MG5700, MG6100, MG6200, MG6300, MG6400
25 PIXMA MG7100, MG7500, MG7700, MG8200
26 PIXMA MP140, MP150, MP160, MP170, MP180, MP190
27 PIXMA MP210, MP220, MP230, MP240, MP250, MP260, MP270, MP280
28 PIXMA MP360, MP370, MP390
29 PIXMA MP450, MP460, MP470, MP480, MP490
30 PIXMA MP500, MP510, MP520, MP530, MP540, MP550, MP560
31 PIXMA MP600, MP600R, MP610, MP620, MP630, MP640
32 PIXMA MP700, MP710, MP730, PIXMA MP750 (no grayscale)
33 PIXMA MP800, MP800R, MP810, MP830
34 PIXMA MP960, MP970, MP980, MP990
35 PIXMA MX300, MX310, MX330, MX340, MX350, MX360, MX370
36 PIXMA MX410, MX420, MX470, MX510, MX520, MX530, MX700, MX720
37 PIXMA MX850, MX860, MX870, MX882, MX885, MX890, MX920, MX7600
38 PIXMA TS3100, TS5000, TS6100, TS8000, TS8200
39 PIXUS MP10
40 imageCLASS MF634Cdw, MF733Cdw
41 imageCLASS MF3110, MF3240, MF4010, MF4018
42 imageCLASS MF4120, MF4122, MF4140, MF4150
43 imageCLASS MF4270, MF4350d, MF4370dn, MF4380dn
44 imageCLASS MF4410, MF4430, MF4570dw, MF4660, MF4690
45 imageCLASS MF5730, MF5770, MF6550, MPC200, D420, D480, D530
46 i-SENSYS MF210, MF230, MF240, MF620, MF730, MF731/733, MF3010
47 i-SENSYS MF4320d, MF4330d, MF4500, MF4700, MF4800, MF6100
48 i-SENSYS MF8030, MF8200C, MF8300
49 imageRUNNER 1020/1024/1025, 1133
50 CanoScan 8800F, 9000F, 9000F Mark II
51 CanoScan LiDE 300, 400
52 MAXIFY MB2000, MB2100, MB2300, MB2700, MB5000
53
54 The following models are not well tested and/or the scanner sometimes
55 hangs and must be switched off and on.
56
57 PIXMA MP760, MP770, MP780, MP790
58
59 The following models may use the same Pixma protocol as those listed
60 above, but have not yet been reported to work (or not). They are
61 declared in the backend so that they get recognized and activated.
62 Feedback in the sane-devel mailing list welcome.
63
64 PIXMA E400, E410, E460, E470, E480, E500, E560, E600, E610
65 PIXMA E3100, E4200
66 PIXMA MG3000, MG4100, MG6500, MG6600, MG6800, MG6900, MG8100
67 PIXMA MP375R, MP493, MP495, MP740
68 PIXMA MX320, MX390, MX430, MX450, MX490, MX710
69 PIXMA G3000, G3010, G4000, G4010
70 PIXMA TR4500, TR7500, TR7530, TR8500, TR8530, TR8580, TR9530
71 PIXMA TS5100, TS6000, TS6130, TS6180, TS6200, TS6230, TS6280
72 PIXMA TS8100, TS8130, TS8180, TS8230, TS8280, TS9000, TS9100
73 PIXMA TS9180, TS9500, TS9580
74 PIXUS MP5, XK50, XK70, XK80
75 imageCLASS MF810/820, MF5630, MF5650, MF5750, MF8170c
76 imageCLASS MPC190, D550, D570
77 i-SENSYS MF110, MF220, MF260, MF410, MF420, MF510, MF520, MF630
78 i-SENSYS MF640, MF740, MF5880dn, MF5900, MF6680dn, MF8500C
79 MAXIFY MB5100, MB5300, MB5400
80
81 The backend supports:
82
83 * resolutions of 75, 150, 300, 600, 1200, 2400, 4800, and 9600
84 DPI (some maybe buggy),
85 * color and grayscale mode, as well as lineart on certain mod‐
86 els,
87 * a custom gamma table,
88 * Automatic Document Feeder, Simplex and Duplex.
89 * Transparency Unit, 24 or 48 bits depth. Infrared channel on
90 certain models.
91
92 The device name for USB devices is in the form pixma:xxxxyyyy_zzzzz
93 where x, y and z are vendor ID, product ID and serial number respec‐
94 tively.
95
96 Example: pixma:04A91709_123456 is a MP150.
97
98 Device names for BJNP/MFNP devices is in the form pixma:aaaa_bbbbb
99 where aaaa is the scanners model and bbbb is the hostname or ip-adress.
100
101 Example: pixma:MF4800_192.168.1.45 is a MF4800 Series multi-function
102 peripheral.
103
104 This backend, based on cloning original Canon drivers protocols, is in
105 a production stage. Designed has been carried out without any applica‐
106 ble manufacturer documentation, probably never available. However, we
107 have tested it as well as we could, but it may not work in all situa‐
108 tions. You will find an up-to-date status at the project homepage. (See
109 below). Users feedback is essential to help improve features and per‐
110 formances.
111
113 Besides "well-known" options (e.g. resolution, mode etc.) pixma backend
114 also provides the following options, i.e. the options might change in
115 the future.
116 The button status can be polled i.e. with 'scanimage -A'.
117 Button scan is disabled on MAC OS X due to darwin libusb not handling
118 timeouts in usb interrupt reads, but may work when using the network
119 protocol.
120
121 adf-wait
122 This option enables and sets the time in seconds waiting for a
123 document inserted into the Automatic Document Feeder. The maxi‐
124 mum allowed waiting time is 3600 sec (= 1 hour).
125
126 button-controlled
127 This option can be used by applications (like scanadf(1) and
128 scanimage(1)) in batch mode, for example when you want to scan
129 many photos or multiple-page documents. If it is enabled (i.e.
130 is set to true or yes), the backend waits before every scan
131 until the user presses the "SCAN" button (for MP150) or the
132 color-scan button (for other models). Just put the first page in
133 the scanner, press the button, then the next page, press the
134 button and so on. When you finished, press the gray-scan button.
135 (For MP150 you have to stop the frontend by pressing Ctrl-C for
136 example.)
137
138 button-update (deprecated)
139 (write only) In the past this option was required to be set to
140 force reading of the button status for button-1 and button-2.
141 The sane-pixma no longer requires this option to be used: if no
142 fresh data is available, it will be now requested automatically
143 from the scanner. This option is left for backward compatibility
144 reasons.
145
146 button-1 button-2
147 (read only) These options will return the value of the respec‐
148 tive buttons. value 0 means that the button was not pressed, 1
149 is returned when the button was pressed. Some scanners with more
150 than two buttons send the button number as target.
151
152 original
153 (read only) Returns the value of the type or size of original to
154 be scanned if the scanner provides that data. Known values of
155 type: 1 = document, 2 = foto, 5 = film. Known values of size: 1
156 = A4, 2 = Letter, 8 = 10x15, 9 = 13x18, b = auto. Not all scan‐
157 ners can provide this data.
158
159 target (read only) Returns the value of the target of the scan opera‐
160 tion if the scanner provides that data. The values depend on the
161 scanner type. Known values: 1 = save to disk, 2 = save to pdf, 3
162 = send to email, 4 = send to application or 1 = JPEG, 2 = TIFF,
163 3 = PDF, 4 = Compact PDF. For some scanners this value is equiv‐
164 alent to the number of the pressed button. Not all scanners can
165 provide this data.
166
167 scan-resolution
168 (read only) Returns the resolution of the scan operation if the
169 scanner provides that data. Known values: 1 = 75 dpi, 2 = 150
170 dpi, 3 = 300 dpi, 4 = 600 dpi. Not all scanners can provide this
171 data.
172
174 /usr/lib64/sane/libsane-pixma.a
175 The static library implementing this backend.
176
177 /usr/lib64/sane/libsane-pixma.so
178 The shared library implementing this backend (present on systems
179 that support dynamic loading).
180
181 /etc/sane.d/pixma.conf
182 The backend configuration file (see also description of
183 SANE_CONFIG_DIR below). The file contains an optional list of
184 networked scanners. Normally only scanners that cannot be auto-
185 detected because they are on a different subnet shall be listed
186 here. If your OS does not allow enumeration of interfaces (i.e.
187 it does not support the getifaddrs() function) you also may need
188 to add your scanner here as well.
189
190 Scanners shall be listed in the configuration file as follows:
191
192 <method>://<host>[:port][/timeout=<value>]
193
194 where method indicates the protocol used (bjnp is used for
195 inkjet multi-functionals and mfnp is used for laser multi-func‐
196 tionals).
197
198 host is the hostname or IP address of the scanner, e.g.
199 bjnp://10.0.1.4 for IPv4,
200 bjnp://[2001:888:118e:18e2:21e:8fff:fe36:b64a] for a literal
201 IPv6-address or bjnp://myscanner.mydomain.org for a hostname.
202
203 The port number is optional and in normally implied by the
204 method. Port 8610 is the standard port for mfnp, 8612 for bjnp.
205
206 A scanner specific timeout value for the network protocol can be
207 set using the bjnp-timeout parameter. The value is in ms.
208
209 Define scanners each on a new line.
210
211 More globally applicable timeouts can be set using the bjnp-
212 timeout parameter as follows:
213
214 bjnp-timeout=<value>
215
216 A timeout defined using bjnp-timeout will apply to the following
217 scanner definitions in the file. If required the bjnp-timeout
218 setting can be defined multiple times, where each settng will
219 apply only to the scanners that follow the setting. The last
220 setting is used for the auto discovered scanners. If not
221 explicitly set, the default 1000ms setting will apply.
222
223 Setting timeouts should only be required in exceptional cases.
224
226 USB scanners will be auto-detected and require no configuration.
227
229 The pixma backend supports network scanners using the so called Canon
230 BJNP protocol and MFNP protocol. Both IPv4 and IPv6 are supported, but
231 IPv6 is as yet untested with MFNP. Please report your results on the
232 mailing list.
233
234 Configuration is normally not required. The pixma backend will auto-
235 detect your scanner if it is within the same subnet as your computer if
236 your OS does support this.
237
238 If your scanner can not be auto-detected, you can add it to the pixma
239 configuration file (see above).
240
242 The sane pixma backend communicates with port 8610 for MFNP or port
243 8612 for BJNP on the scanner. So you will have to allow outgoing traf‐
244 fic TO port 8610 or 8612 on the common subnet for scanning.
245
246 Scanner detection is slightly more complicated. The pixma backend sends
247 a broadcast on all direct connected subnets it can find (provided your
248 OS allows for enumeration of all netowrk interfaces). The broadcast is
249 sent FROM port 8612 TO port 8610 or 8612 on the broadcast address of
250 each interface. The outgoing packets will be allowed by the rule
251 described above.
252
253 Responses from the scanner are sent back to the computer TO port 8612.
254 Connection tracking however does not see a match as the response does
255 not come from the broadcast address but from the scanners own address.
256 For automatic detection of your scanner, you will therefore have to
257 allow incoming packets TO port 8612 on your computer. This applies to
258 both MFNP and BJNP.
259
260 So in short: open the firewall for all traffic from your computer to
261 port 8610 (for MFNP) or 8612 (for BJNP) AND to port 8612 (for both BJNP
262 and MFNP) to your computer.
263
264 With the firewall rules above there is no need to add the scanner to
265 the pixma.conf file, unless the scanner is on a network that is not
266 directly connected to your computer.
267
269 SANE_DEBUG_PIXMA
270 If the library was compiled with debug support enabled, this
271 environment variable controls the debug level for this backend
272 itself. Higher value increases the verbosity and includes the
273 information printed at the lower levels.
274 0 print nothing (default)
275 1 print error and warning messages (recommended)
276 2 print informational messages
277 3 print debug-level messages
278 4 print verbose debug-level messages
279 11 dump USB traffic
280 21 full dump USB traffic
281
282 SANE_DEBUG_BJNP
283 If the library was compiled with debug support enabled, this
284 environment variable controls the debug level for the BJNP and
285 MFNP network protocols for this backend. Higher value increases
286 the verbosity and includes the information printed at the lower
287 levels.
288 0 print nothing (default)
289 1 Print error and warning messages (recommended)
290 2 Print high level function tracing information
291 3 Print more detailed protocol tracing information
292 4 Print protocol headers
293 5 Print full protocol contents
294
295 PIXMA_EXPERIMENT
296 Setting to a non-zero value will enable the support for experi‐
297 mental models. You should also set SANE_DEBUG_PIXMA to 11.
298
299 SANE_CONFIG_DIR
300 This environment variable specifies the list of directories that
301 may contain the configuration file. Under UNIX, the directories
302 are separated by a colon (`:'), under OS/2, they are separated
303 by a semi-colon (`;'). If this variable is not set, the config‐
304 uration file is searched in two default directories: first, the
305 current working directory (".") and then in /etc/sane.d. If the
306 value of the environment variable ends with the directory sepa‐
307 rator character, then the default directories are searched after
308 the explicitly specified directories. For example, setting
309 SANE_CONFIG_DIR to "/tmp/config:" would result in directories
310 "tmp/config", ".", and "/etc/sane.d" being searched (in this
311 order).
312
314 sane(7), sane-dll(5),
315
316 In case of trouble with a recent Pixma model, try the latest code for
317 the pixma backend, available in the Sane git repository at:
318 https://gitlab.com/sane-project/backends.git
319
320 You can also post into the Sane-devel mailing list for support.
321
322
324 Wittawat Yamwong, Nicolas Martin, Dennis Lou, Louis Lagendijk, Rolf
325 Bensch
326
327 We would like to thank all testers and helpers. Without them we could
328 not be able to write subdrivers for models we don't have. See also the
329 project homepage.
330
331
332
333 29 Jul 2019 sane-pixma(5)