Hi,
I'm using a Microtek Pagewiz scanner with the microtek backend on SANE.
It worked with a modified 0.10 backend; thanks to Matt Marjanovic.
This modification has been added to the 0.12 backend, but strangely enough it
doesn't work.
I mailed the programmer of the backend, but maybe he was on a holiday or
just busy.
I hope someone knows what the problem is and how to solve it.
Thanks in advance,
Marcel Pol
mpol@gmx.net
This is wat I did;
(I also used the last command in combination with the strace command.
If interested, it's at the end of the mail.)
export SANE_DEBUG_MICROTEK=128
export SANE_DEBUG_DLL=7
export SANE_DEBUG_SANEI=128
scanimage -d microtek:/dev/sg2
[sanei_init_debug]: Setting debug level of dll to 7.
[dll] adding backend microtek
[dll] loading backend microtek
[dll] dlopen()ing `/usr/local/lib/sane/libsane-microtek.so.1'
[dll] init: initializing backend `microtek'
[sanei_init_debug]: Setting debug level of microtek to 128.
[microtek] sane_init: MICROTEK says hello! (v0.12.0)
[microtek] sane_init: config- # Uncomment following line to disable "real
calibration" routines...
[microtek] sane_init: config- #norealcal
[microtek] sane_init: config- # Uncomment following line to disable "clever
precalibration" routines...
[microtek] sane_init: config- #noprecal
[microtek] sane_init: config- # Using "norealcal" will revert backend to
pre-0.11.0 calibration code.
[microtek] sane_init: config- scsi * * Scanner
[microtek] attach_scanner: /dev/sgc
[microtek] attach_scanner: opening /dev/sgc
[microtek] attach_scanner: sending INQUIRY
[microtek] id_microtek...
[microtek] parse_inquiry...
[microtek] dump_inquiry...
=== SANE/Microtek backend v0.12.0 ===
========== Scanner Inquiry Block ========mm
06 31 23 01 5b 00 00 00 20 20 20 20 20 20 20 20
53 63 61 6e 6e 65 72 20 33 30 30 53 20 20 20 20
31 2e 33 30 53 43 53 49 20 46 2f 57 56 33 2e 34
20 43 54 4c 35 33 38 30 03 4f 8c c5 00 ee 65 0b
01 01 01 00 00 03 00 01 00 4a 01 04 00 01 04 01
0b 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
========== Scanner Inquiry Report ==========
===== Scanner ID...
Device Type Code: 0x06
Model Code: 0x65
Vendor Name: ' ' Model Name: 'Scanner 300S '
Vendor Specific String: 'SCSI F/WV3.4 CTL5380'
Firmware Rev: '1.30'
SCSI F/W version: 3.1 Scanner F/W version: 2.3
Response data format: 0x01
===== Imaging Capabilities...
Modes: Lineart Halftone Gray Color (OnePass)
Resolution Step Sizes: 1% 5% Expanded Resolution Support? yes
Supported Bits Per Sample: 4 8
Max. document size code: 0x00
Max. document size: 2549 x 4199 pixels
Frame units: pixels 1/8"'s
# of built-in halftones: 12 Downloadable patterns? Yes
Data Compression:
Contrast Settings: 14 Exposure Settings: 14
Adjustable Shadow/Highlight? yes Adjustable Midtone? no
Digital brightness/offset? no
Gamma Table Size: 256 entries of 1 bytes (max. depth: 8)
===== Source Options...
Feed type: flatbed ADF support? yes
Document Feeder Support? yes Feeder Backtracking? yes
Feeder Installed? no Feeder Ready? yes
Transparency Adapter Installed? no
Fast Color Prescan? no
Selectable Transfer Format? no
Color Transfer Sequence: line-by-line, non-sequential with headers
Three pass scan support? yes
ModeSelect-1 and ModeSense-1 Support? yes
Can Disable Linearization Table? no
Can Disable Start-of-Scan Recalibration? yes
Internal expanded expansion? no
[microtek] attach_scanner: happy.
[microtek] attach_scanner: /dev/sgc
[microtek] sane_init: config- /dev/scanner
[microtek] attach_scanner: /dev/scanner
[microtek] attach_scanner: opening /dev/scanner
[microtek] attach_scanner: sending INQUIRY
[microtek] id_microtek...
[microtek] parse_inquiry...
[microtek] dump_inquiry...
=== SANE/Microtek backend v0.12.0 ===
========== Scanner Inquiry Block ========mm
06 31 23 01 5b 00 00 00 20 20 20 20 20 20 20 20
53 63 61 6e 6e 65 72 20 33 30 30 53 20 20 20 20
31 2e 33 30 53 43 53 49 20 46 2f 57 56 33 2e 34
20 43 54 4c 35 33 38 30 03 4f 8c c5 00 ee 65 0b
01 01 01 00 00 03 00 01 00 4a 01 04 00 01 04 01
0b 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
========== Scanner Inquiry Report ==========
===== Scanner ID...
Device Type Code: 0x06
Model Code: 0x65
Vendor Name: ' ' Model Name: 'Scanner 300S '
Vendor Specific String: 'SCSI F/WV3.4 CTL5380'
Firmware Rev: '1.30'
SCSI F/W version: 3.1 Scanner F/W version: 2.3
Response data format: 0x01
===== Imaging Capabilities...
Modes: Lineart Halftone Gray Color (OnePass)
Resolution Step Sizes: 1% 5% Expanded Resolution Support? yes
Supported Bits Per Sample: 4 8
Max. document size code: 0x00
Max. document size: 2549 x 4199 pixels
Frame units: pixels 1/8"'s
# of built-in halftones: 12 Downloadable patterns? Yes
Data Compression:
Contrast Settings: 14 Exposure Settings: 14
Adjustable Shadow/Highlight? yes Adjustable Midtone? no
Digital brightness/offset? no
Gamma Table Size: 256 entries of 1 bytes (max. depth: 8)
===== Source Options...
Feed type: flatbed ADF support? yes
Document Feeder Support? yes Feeder Backtracking? yes
Feeder Installed? no Feeder Ready? yes
Transparency Adapter Installed? no
Fast Color Prescan? no
Selectable Transfer Format? no
Color Transfer Sequence: line-by-line, non-sequential with headers
Three pass scan support? yes
ModeSelect-1 and ModeSense-1 Support? yes
Can Disable Linearization Table? no
Can Disable Start-of-Scan Recalibration? yes
Internal expanded expansion? no
[microtek] attach_scanner: happy.
[microtek] sane_open
[microtek] sane_open: find device...
[microtek] attach_scanner: /dev/sg2
[microtek] attach_scanner: opening /dev/sg2
[microtek] attach_scanner: sending INQUIRY
[microtek] id_microtek...
[microtek] parse_inquiry...
[microtek] dump_inquiry...
=== SANE/Microtek backend v0.12.0 ===
========== Scanner Inquiry Block ========mm
06 31 23 01 5b 00 00 00 20 20 20 20 20 20 20 20
53 63 61 6e 6e 65 72 20 33 30 30 53 20 20 20 20
31 2e 33 30 53 43 53 49 20 46 2f 57 56 33 2e 34
20 43 54 4c 35 33 38 30 03 4f 8c c5 00 ee 65 0b
01 01 01 00 00 03 00 01 00 4a 01 04 00 01 04 01
0b 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
========== Scanner Inquiry Report ==========
===== Scanner ID...
Device Type Code: 0x06
Model Code: 0x65
Vendor Name: ' ' Model Name: 'Scanner 300S '
Vendor Specific String: 'SCSI F/WV3.4 CTL5380'
Firmware Rev: '1.30'
SCSI F/W version: 3.1 Scanner F/W version: 2.3
Response data format: 0x01
===== Imaging Capabilities...
Modes: Lineart Halftone Gray Color (OnePass)
Resolution Step Sizes: 1% 5% Expanded Resolution Support? yes
Supported Bits Per Sample: 4 8
Max. document size code: 0x00
Max. document size: 2549 x 4199 pixels
Frame units: pixels 1/8"'s
# of built-in halftones: 12 Downloadable patterns? Yes
Data Compression:
Contrast Settings: 14 Exposure Settings: 14
Adjustable Shadow/Highlight? yes Adjustable Midtone? no
Digital brightness/offset? no
Gamma Table Size: 256 entries of 1 bytes (max. depth: 8)
===== Source Options...
Feed type: flatbed ADF support? yes
Document Feeder Support? yes Feeder Backtracking? yes
Feeder Installed? no Feeder Ready? yes
Transparency Adapter Installed? no
Fast Color Prescan? no
Selectable Transfer Format? no
Color Transfer Sequence: line-by-line, non-sequential with headers
Three pass scan support? yes
ModeSelect-1 and ModeSense-1 Support? yes
Can Disable Linearization Table? no
Can Disable Start-of-Scan Recalibration? yes
Internal expanded expansion? no
[microtek] attach_scanner: happy.
[microtek] sane_open: create scanner...
[microtek] sane_open: initialize scanner dependent stuff...
[microtek] sane_open: Real calibration enabled.
[microtek] sane_open: init gamma tables...
[microtek] sane_open: init pass-time variables...
[microtek] sane_open: init clever cache...
[microtek] sane_open: initialize options:
[microtek] init_options...
[microtek] init_options: quant yes
[microtek] init_options: done.
[dll]
control_option(handle=0x804dd20,option=0,action=0,value=0xbffff43c,info=(nil))
[microtek] sane_control_option (opt=0,act=0,val=0xbffff43c,info=(nil))
[dll]
control_option(handle=0x804dd20,option=0,action=0,value=0xbffff3fc,info=(nil))
[microtek] sane_control_option (opt=0,act=0,val=0xbffff3fc,info=(nil))
[dll] get_option_descriptor(handle=0x804dd20,option=0)
[microtek] sane_get_option_descriptor (0)...
[dll] get_option_descriptor(handle=0x804dd20,option=1)
[microtek] sane_get_option_descriptor (1)...
[dll] get_option_descriptor(handle=0x804dd20,option=2)
[microtek] sane_get_option_descriptor (2)...
[dll] get_option_descriptor(handle=0x804dd20,option=3)
[microtek] sane_get_option_descriptor (3)...
[dll] get_option_descriptor(handle=0x804dd20,option=4)
[microtek] sane_get_option_descriptor (4)...
[dll] get_option_descriptor(handle=0x804dd20,option=5)
[microtek] sane_get_option_descriptor (5)...
[dll] get_option_descriptor(handle=0x804dd20,option=6)
[microtek] sane_get_option_descriptor (6)...
[dll] get_option_descriptor(handle=0x804dd20,option=7)
[microtek] sane_get_option_descriptor (7)...
[dll] get_option_descriptor(handle=0x804dd20,option=8)
[microtek] sane_get_option_descriptor (8)...
[dll] get_option_descriptor(handle=0x804dd20,option=9)
[microtek] sane_get_option_descriptor (9)...
[dll] get_option_descriptor(handle=0x804dd20,option=10)
[microtek] sane_get_option_descriptor (10)...
[dll] get_option_descriptor(handle=0x804dd20,option=11)
[microtek] sane_get_option_descriptor (11)...
[dll] get_option_descriptor(handle=0x804dd20,option=12)
[microtek] sane_get_option_descriptor (12)...
[dll] get_option_descriptor(handle=0x804dd20,option=13)
[microtek] sane_get_option_descriptor (13)...
[dll] get_option_descriptor(handle=0x804dd20,option=14)
[microtek] sane_get_option_descriptor (14)...
[dll]
control_option(handle=0x804dd20,option=14,action=0,value=0x804d878,info=(nil))
[microtek] sane_control_option (opt=14,act=0,val=0x804d878,info=(nil))
[dll] get_option_descriptor(handle=0x804dd20,option=15)
[microtek] sane_get_option_descriptor (15)...
[dll]
control_option(handle=0x804dd20,option=15,action=0,value=0x804d87c,info=(nil))
[microtek] sane_control_option (opt=15,act=0,val=0x804d87c,info=(nil))
[dll] get_option_descriptor(handle=0x804dd20,option=16)
[microtek] sane_get_option_descriptor (16)...
[dll] get_option_descriptor(handle=0x804dd20,option=17)
[microtek] sane_get_option_descriptor (17)...
[dll] get_option_descriptor(handle=0x804dd20,option=18)
[microtek] sane_get_option_descriptor (18)...
[dll] get_option_descriptor(handle=0x804dd20,option=19)
[microtek] sane_get_option_descriptor (19)...
[dll] get_option_descriptor(handle=0x804dd20,option=20)
[microtek] sane_get_option_descriptor (20)...
[dll] get_option_descriptor(handle=0x804dd20,option=21)
[microtek] sane_get_option_descriptor (21)...
[dll] get_option_descriptor(handle=0x804dd20,option=22)
[microtek] sane_get_option_descriptor (22)...
[dll] get_option_descriptor(handle=0x804dd20,option=23)
[microtek] sane_get_option_descriptor (23)...
[dll] get_option_descriptor(handle=0x804dd20,option=24)
[microtek] sane_get_option_descriptor (24)...
[dll] get_option_descriptor(handle=0x804dd20,option=25)
[microtek] sane_get_option_descriptor (25)...
[dll] get_option_descriptor(handle=0x804dd20,option=26)
[microtek] sane_get_option_descriptor (26)...
[dll] get_option_descriptor(handle=0x804dd20,option=27)
[microtek] sane_get_option_descriptor (27)...
[dll] get_option_descriptor(handle=0x804dd20,option=28)
[microtek] sane_get_option_descriptor (28)...
[dll] get_option_descriptor(handle=0x804dd20,option=29)
[microtek] sane_get_option_descriptor (29)...
[dll] get_option_descriptor(handle=0x804dd20,option=30)
[microtek] sane_get_option_descriptor (30)...
[dll] get_option_descriptor(handle=0x804dd20,option=31)
[microtek] sane_get_option_descriptor (31)...
[dll] get_option_descriptor(handle=0x804dd20,option=32)
[microtek] sane_get_option_descriptor (32)...
[dll] get_option_descriptor(handle=0x804dd20,option=33)
[microtek] sane_get_option_descriptor (33)...
[dll]
control_option(handle=0x804dd20,option=12,action=0,value=0xbffff3f8,info=(nil))
[microtek] sane_control_option (opt=12,act=0,val=0xbffff3f8,info=(nil))
[dll]
control_option(handle=0x804dd20,option=13,action=0,value=0xbffff3f8,info=(nil))
[microtek] sane_control_option (opt=13,act=0,val=0xbffff3f8,info=(nil))
[dll]
control_option(handle=0x804dd20,option=12,action=0,value=0xbffff438,info=(nil))
[microtek] sane_control_option (opt=12,act=0,val=0xbffff438,info=(nil))
[dll] get_option_descriptor(handle=0x804dd20,option=14)
[microtek] sane_get_option_descriptor (14)...
[dll]
control_option(handle=0x804dd20,option=14,action=1,value=0xbffff434,info=0xbffff
3f4)
[microtek] sane_control_option (opt=14,act=1,val=0xbffff434,info=0xbffff3f4)
[dll]
control_option(handle=0x804dd20,option=13,action=0,value=0xbffff438,info=(nil))
[microtek] sane_control_option (opt=13,act=0,val=0xbffff438,info=(nil))
[dll] get_option_descriptor(handle=0x804dd20,option=15)
[microtek] sane_get_option_descriptor (15)...
[dll]
control_option(handle=0x804dd20,option=15,action=1,value=0xbffff434,info=0xbffff
3f4)
[microtek] sane_control_option (opt=15,act=1,val=0xbffff434,info=0xbffff3f4)
[dll] start(handle=0x804dd20)
[microtek] sane_start...
[microtek] sane_get_parameters...
[microtek] sane_get_parameters: regular 1-pass color
[microtek] sane_get_parameters: res_code = 33 (21)
[microtek] sane_get_parameters: dots_per_mm: 3.937008
[microtek] sane_get_parameters: units_per_mm: 11.811024
[microtek] WIDTHPIX: before exp: 850
[microtek] sane_get_parameters: lines: 1400 ppl: 850 bpl: 2550
[microtek] .wait_ready 4...
[microtek] finagle_precal...
[microtek] .compare_mode_sense 4...
[microtek] finagle_precal: must precalibrate!
[microtek] do_real_calibrate...
[microtek] .start_calibrate...
[microtek] SENSE! fd = 4
[microtek] sense = 81 01 00 00.
[microtek] sense: ERR_SCSICMD
[microtek] end_scan...
scanimage: sane_start: Error during device I/O
[dll] cancel(handle=0x804dd20)
[microtek] sane_cancel...
[microtek] end_scan...
[dll] close(handle=0x804dd20)
[microtek] sane_close...
[dll] exiting
[dll] calling backend `microtek's exit function
[microtek] sane_exit...
[microtek] sane_exit: MICROTEK says goodbye.
strace scanimage -d microtek:/dev/sg2
(The last 79 lines of 1129 lines)
write(2, "[microtek] .wait_ready 4...\n", 28[microtek] .wait_ready 4...
) = 28
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40191000
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
write(4, "*\0\0\0$\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 42) = 42
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
select(5, [4], NULL, NULL, NULL) = 1 (in [4])
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
read(4, "$\0\0\0$\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 36) = 36
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(2, "[microtek] finagle_precal...\n", 29[microtek] finagle_precal...
) = 29
write(2, "[microtek] .compare_mode_sense 4"..., 36[microtek]
.compare_mode_sense 4...
) = 36
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
write(4, "*\0\0\0007\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 42) = 42
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
select(5, [4], NULL, NULL, NULL) = 1 (in [4])
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
read(4, "7\0\0\0007\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 55) = 55
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(2, "[microtek] finagle_precal: must"..., 47[microtek] finagle_precal:
must precalibrate!
) = 47
write(2, "[microtek] do_real_calibrate...\n", 32[microtek] do_real_calibrate...
) = 32
write(2, "[microtek] .start_calibrate...\n", 31[microtek] .start_calibrate...
) = 31
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
write(4, ",\0\0\0$\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 44) = 44
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
select(5, [4], NULL, NULL, NULL) = 1 (in [4])
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
read(4, "$\0\0\0$\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\201\1\0\0\0\0\0"..., 36) = 36
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(2, "[microtek] SENSE! fd = 4\n", 26[microtek] SENSE! fd = 4
) = 26
write(2, "[microtek] sense = 81 01 00 00.\n", 32[microtek] sense = 81 01 00 00.
) = 32
write(2, "[microtek] sense: ERR_SCSICMD\n", 31[microtek] sense: ERR_SCSICMD
) = 31
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(2, "[microtek] end_scan...\n", 23[microtek] end_scan...
) = 23
munmap(0x40191000, 135168) = 0
close(4) = 0
write(2, "scanimage: sane_start: Error dur"..., 47scanimage: sane_start: Error
during device I/O
) = 47
write(2, "[dll] cancel(handle=0x804dd20)\n", 31[dll] cancel(handle=0x804dd20)
) = 31
write(2, "[microtek] sane_cancel...\n", 26[microtek] sane_cancel...
) = 26
write(2, "[microtek] end_scan...\n", 23[microtek] end_scan...
) = 23
write(2, "[dll] close(handle=0x804dd20)\n", 30[dll] close(handle=0x804dd20)
) = 30
write(2, "[microtek] sane_close...\n", 25[microtek] sane_close...
) = 25
write(2, "[dll] exiting\n", 14[dll] exiting
) = 14
write(2, "[dll] calling backend `microtek\'"..., 48[dll] calling backend
`microtek's exit function
) = 48
write(2, "[microtek] sane_exit...\n", 24[microtek] sane_exit...
) = 24
write(2, "[microtek] sane_exit: MICROTEK "..., 46[microtek] sane_exit:
MICROTEK says goodbye.
) = 46
munmap(0x4017b000, 87564) = 0
_exit(9) = ?
----------------
Marcel Pol
mpol@gmx.net
http://www.angelfire.com/scifi/marcelpol
-- Source code, list archive, and docs: http://www.mostang.com/sane/ To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com
This archive was generated by hypermail 2b29 : Tue Mar 28 2000 - 11:35:23 PST