[sane-devel] old Agfa DuoScan / Floating point exception

Daniel Bauer linux at daniel-bauer.com
Mon Apr 17 16:08:06 UTC 2006


Am Montag, 17. April 2006 17:02 schrieb Matto Marjanovic:
> ...
>
> Ah... I think there is a little bug preventing you from getting more
>  debugging output --- fixing it will require modifying the code and
>  recompiling the backend.
>
> In this block in the function id_microtek():
>
>       if (forcewarn) {
>          /* force debugging on, to encourage user to send in a report */
>    #ifndef NDEBUG
>          DBG_LEVEL = 1;
>    #endif
>
> The "DBG_LEVEL = 1;" line should be changed to:
>
>    if (DBG_LEVEL < 1)
>      DBG_LEVEL = 1;
>
> (This little-exercised codepath is reseting the debugging level back
>  to 1 when it prints your "Congratualations" message.)
> ...
Hi Matto, 

I've added the above in "microtek.c" and compiled again. Now there's much more 
output (all done as root):

venus:~ # export SANE_DEBUG_MICROTEK=128
venus:~ # echo $SANE_DEBUG_MICROTEK
128
venus:~ # scanimage --device-name=microtek:/dev/sg0
[sanei_debug] Setting debug level of microtek to 128.
[microtek] sane_init:  MICROTEK says hello! (v0.13.1)
[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/sg0
[microtek] attach_scanner:  opening /dev/sg0
[microtek] attach_scanner:  sending INQUIRY
[microtek] id_microtek...
[microtek]
[microtek]
[microtek]
[microtek] ========== Congratulations! ==========
[microtek] Your scanner appears to be supported
[microtek] by the microtek backend.  However, it
[microtek] has never been tried before, and some
[microtek] parameters are bound to be wrong.
[microtek]
[microtek] Please send the scanner inquiry log in
[microtek] its entirety to mtek-bugs at mir.com and
[microtek] include a description of the scanner,
[microtek] including the base optical resolution.
[microtek]
[microtek] You'll find complete instructions for
[microtek] submitting an error/debug log in the
[microtek] 'sane-microtek' man-page.
[microtek]
[microtek]
[microtek]
[microtek] parse_inquiry...
[microtek] parse_inquiry:  Not an E6 -- pretend recal cannot be disabled.
[microtek] dump_inquiry...
[microtek]  === SANE/Microtek backend v0.13.1 ===
[microtek] ========== Scanner Inquiry Block ========mm
[microtek] 06 36 16 01 5b 00 00 00 41 47 46 41 20 20 20 20
[microtek] 44 55 4f 53 43 41 4e 20 20 20 20 20 20 20 20 20
[microtek] 31 2e 36 30 53 43 53 49 20 46 57 20 56 33 2e 36
[microtek] 20 43 54 4c 35 33 38 30 03 4f 8c c5 06 ee 5d 43
[microtek] 01 03 47 00 00 83 00 01 0e 4a 07 05 00 00 00 00
[microtek] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
[microtek] ========== Scanner Inquiry Report ==========
[microtek] ===== Scanner ID...
[microtek] Device Type Code: 0x06
[microtek] Model Code: 0x5d
[microtek] Vendor Name: 'AGFA    '   Model Name: 'DUOSCAN         '
[microtek] Vendor Specific String: 'SCSI FW V3.6 CTL5380'
[microtek] Firmware Rev: '1.60'
[microtek] SCSI F/W version: 3.6     Scanner F/W version: 1.6
[microtek] Response data format: 0x01
[microtek] ===== Imaging Capabilities...
[microtek] Modes:  Lineart Halftone Gray Color (OnePass)
[microtek] Resolution Step Sizes: 1% 5%    Expanded Resolution Support? yes
[microtek] Supported Bits Per Sample: 4 8 10 12
[microtek] Max. document size code: 0x06
[microtek] Max. document size:  8299 x 13499 pixels
[microtek] Frame units:  pixels  1/8"'s
[microtek] # of built-in halftones: 12   Downloadable patterns? Yes
[microtek] Data Compression:
[microtek] Contrast Settings: 14   Exposure Settings: 74
[microtek] Adjustable Shadow/Highlight? yes   Adjustable Midtone? yes
[microtek] Digital brightness/offset? yes
[microtek] Gamma Table Size: 4096 entries of 2 bytes (max. depth: 12)
[microtek] ===== Source Options...
[microtek] Feed type:  flatbed    ADF support? yes
[microtek] Document Feeder Support? yes   Feeder Backtracking? yes
[microtek] Feeder Installed? no           Feeder Ready? no
[microtek] Transparency Adapter Installed? yes
[microtek] Fast Color Prescan? no
[microtek] Selectable Transfer Format? no
[microtek] Color Transfer Sequence: line-by-line, non-sequential with headers
[microtek] Three pass scan support? no
[microtek] ModeSelect-1 and ModeSense-1 Support? yes
[microtek] Can Disable Linearization Table? no
[microtek] Can Disable Start-of-Scan Recalibration? no
[microtek] Internal expanded expansion? no
[microtek] ====== End of Scanner Inquiry Report =======
[microtek] attach_scanner:  happy.
[microtek] sane_init:  config-> /dev/scanner
[microtek] attach_scanner:  /dev/scanner
[microtek] attach_scanner:  opening /dev/scanner
[microtek] attach_scanner:  open failed
[microtek] sane_open
[microtek] sane_open:  find device...
[microtek] sane_open:  create scanner...
[microtek] sane_open:  initialize scanner dependent stuff...
[microtek] sane_open:  All calibration routines disabled.
[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.
[microtek] sane_control_option (opt=0,act=0,val=0xbfe44bc8,info=(nil))
[microtek] sane_control_option (opt=0,act=0,val=0xbfe43ae8,info=(nil))
[microtek] sane_get_option_descriptor (0)...
[microtek] sane_get_option_descriptor (1)...
[microtek] sane_get_option_descriptor (2)...
[microtek] sane_get_option_descriptor (3)...
[microtek] sane_get_option_descriptor (4)...
[microtek] sane_get_option_descriptor (5)...
[microtek] sane_get_option_descriptor (6)...
[microtek] sane_get_option_descriptor (7)...
[microtek] sane_get_option_descriptor (8)...
[microtek] sane_get_option_descriptor (9)...
[microtek] sane_get_option_descriptor (10)...
[microtek] sane_get_option_descriptor (11)...
[microtek] sane_get_option_descriptor (12)...
[microtek] sane_get_option_descriptor (13)...
[microtek] sane_get_option_descriptor (14)...
[microtek] sane_control_option (opt=14,act=0,val=0x8051668,info=(nil))
[microtek] sane_get_option_descriptor (15)...
[microtek] sane_control_option (opt=15,act=0,val=0x805166c,info=(nil))
[microtek] sane_get_option_descriptor (16)...
[microtek] sane_get_option_descriptor (17)...
[microtek] sane_get_option_descriptor (18)...
[microtek] sane_get_option_descriptor (19)...
[microtek] sane_get_option_descriptor (20)...
[microtek] sane_get_option_descriptor (21)...
[microtek] sane_get_option_descriptor (22)...
[microtek] sane_get_option_descriptor (23)...
[microtek] sane_get_option_descriptor (24)...
[microtek] sane_get_option_descriptor (25)...
[microtek] sane_get_option_descriptor (26)...
[microtek] sane_get_option_descriptor (27)...
[microtek] sane_get_option_descriptor (28)...
[microtek] sane_get_option_descriptor (29)...
[microtek] sane_get_option_descriptor (30)...
[microtek] sane_get_option_descriptor (31)...
[microtek] sane_get_option_descriptor (32)...
[microtek] sane_get_option_descriptor (33)...
[microtek] sane_control_option (opt=12,act=0,val=0xbfe43ae4,info=(nil))
[microtek] sane_control_option (opt=13,act=0,val=0xbfe43ae4,info=(nil))
[microtek] sane_control_option (opt=12,act=0,val=0xbfe44bbc,info=(nil))
[microtek] sane_get_option_descriptor (14)...
[microtek] sane_control_option (opt=14,act=1,val=0xbfe44bc0,info=0xbfe43ae8)
[microtek] sane_control_option (opt=13,act=0,val=0xbfe44bbc,info=(nil))
[microtek] sane_get_option_descriptor (15)...
[microtek] sane_control_option (opt=15,act=1,val=0xbfe44bc0,info=0xbfe43ae8)
[microtek] sane_start...
[microtek] sane_get_parameters...
[microtek] sane_get_parameters:  regular 1-pass color
[microtek] sane_get_parameters:  res_code = 10 ( a)
[microtek] bright_r of 0 set to 0x0
[microtek] sane_get_parameters:  dots_per_mm:  3.937008
[microtek] sane_get_parameters:  units_per_mm:  39.370079
[microtek] WIDTHPIX:  before exp: 830
[microtek] sane_get_parameters:  lines: 1350  ppl: 830  bpl: 2490
[microtek] .wait_ready 3...
[microtek] finagle_precal...
[microtek] .scanning_frame...
[microtek] .scanning_frame:  in- 0,0  8299,13499
[microtek] .scanning_frame: out- 0,0  8299,13499
[microtek] .accessory...
[microtek] .download_gamma...
[microtek] .download_gamma:  4096 entries of 2 bytes, max 255
[microtek] .download_gamma: by default
[microtek] .mode_select 3...
[microtek] .mode_select:  pap_len: 13499
[microtek] .mode_select_1 3...
[microtek] .wait_ready 3...
[microtek] .start_scan...
[microtek] .get_scan_status 3...
[microtek] SENSE!  fd = 3
[microtek] sense = 00 00 00 00.
[microtek] get_scan_status(6): 0, 0, 0  -> #0
[microtek] >  0  0  0  0  0  0
Floating point exception
venus:~ # 

does this better point to the problem?
>
>
> Oh, quirky, quirky firmware,
> -matt m.
>
>
> PS:  The microtek-class of firmware probably isn't much quirkier than
>      any other.  Why are so many device API's deigned "proprietary"?
>      Why won't device manufacturers publish their API's?  As anyone
>      who has written device drivers will know, it's not because they
>      are trying to protect their "intellectual property".  It is
>      usually a combination of:
>        a) having no documentation whatsoever to begin with;
>        b) old-fashioned fear of embarrassment.
          c) a contract with M$ to let them have at least one pro? ;-)

btw.: VueScan evaluation version works on this machine with this scanner, but 
it's not OpenSource, which I'd prefer (and it's not free - which I 
understand; everybody has to pay it's bills somehow...). But at least this 
tells me that the SCSI-card and the Scanner themselves _can_ work...

Daniel

-- 
Daniel Bauer photographer Basel Switzerland
professional photography: http://www.daniel-bauer.com
special interest site: http://www.bauer-nudes.com



More information about the sane-devel mailing list