Microtek Pagewiz with SANE 1.0.2

From: Marcel Pol (mpol@gmx.net)
Date: Tue Mar 28 2000 - 12:50:29 PST

  • Next message: Andrew Hutchings: "Mustek 6000CX with SCSI scanner"

    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