[sane-devel] UMAX Astra aborts in high resolution scans

Michael Stutz stutz@dsl.org
Mon, 14 Mar 2005 11:21:01 -0500


Oliver Rauch <Oliver.Rauch@Rauch-Domain.DE> wrote:

> May be your scsi controller or the driver of the scsi controller does
> not support scsi buffer sizes larger than 32768 bytes.
> 
> I suggest to edit /usr/local/etc/sane.d/umax.conf (may be
> /etc/saned./umax.conf) and set the scsi buffer sizes to smaller than
> 32768

Doesn't seem to do it. Adding "option scsi-buffer-size-max 32767" to
/etc/sane.d/umax.conf gives the following result:

# scanimage -v -y 165 -x 120 --resolution 300 > b                 
scanimage: sane_start: Out of memory
scanimage: read 0 bytes in total

Without setting the buffer size, here is what I get:

# scanimage -v -y 165 -x 120 --resolution 300 > b
scanimage: scanning image of size 1417x1948 pixels at 24 bits/pixel
scanimage: acquiring RGB frame
scanimage: min/max graylevel value = 255/0
scanimage: read 0 bytes in total
# ls -l b
-rw-r--r--    1 root     root           37 Mar 14 11:10 b
#

However, when the mode is specified as LineArt, it appears to work:

# scanimage -v -y 165 -x 120 --resolution 300 --mode LineArt > b
scanimage: scanning image of size 1416x1948 pixels at 1 bits/pixel
scanimage: acquiring gray frame
scanimage: read 344796 bytes in total
# ls -l b
-rw-r--r--    1 root     root       344829 Mar 14 11:17 b
#

When set to grayscale, it still bombs out but not as quickly as with a
color scan:

# scanimage -v -y 165 -x 120 --resolution 300 --mode Gray > c
scanimage: scanning image of size 1417x1948 pixels at 8 bits/pixel
scanimage: acquiring gray frame
scanimage: min/max graylevel value = 13/255
scanimage: read 56680 bytes in total
# ls -l c
-rw-r--r--    1 root     root        56717 Mar 14 11:18 c
#

The SCSI controller is a BusLogic BT-958 that has worked in the past in
conjunction with this scanner. The only conceivable change is that SANE
was upgraded.


> Am Fre, 2005-03-11 um 17.32 schrieb Michael Stutz:
> > I have a UMAX Astra 1220S scanner connected to a BusLogic SCSI card that
> > I've used with SANE for years, but recently (possibly after a software
> > upgrade) it has been giving me headache & trouble, and I have just about
> > lost my wits.
> > 
> > I am suddenly unable to scan images at higher resolutions. Without
> > specifying the resolution, the scanner works flawlessly ... at the
> > default of 100 dpi. But when the resolution is specified with
> > "--resolution" just as I've always done it, and I give any value greater
> > than about 150, the scanner will begin to scan (and produce output) but
> > then exit almost immediately, and only a tiny portion of the specified
> > area is actually scanned.
> > 
> > Typescript follows ... assistance is greatly appreciated.
> > 
> > 
> > Script started on Fri Mar 11 10:14:41 2005
> > gatsby:/home/m#  export SANE_DEBUG_UMAX=12
> > gatsby:/home/m# echo $SANE_DEBUG_UMAX
> > 12
> > gatsby:/home/m# scanimage -d umax:/dev/sg1 -v -y 165 -x 120 --resolution 300 > b
> > [sanei_debug] Setting debug level of umax to 12.
> > [umax] sane_init
> > [umax] This is sane-umax version 1.0 build 32
> > [umax] compiled with pipe for inter-process-data-transfer
> > [umax] (C) 1997-2001 by Oliver Rauch
> > [umax] EMAIL: Oliver.Rauch@rauch-domain.de
> > [umax] reading configure file umax.conf
> > [umax] attach_matching_devices(scsi UMAX * Scanner)
> > [umax] attach_scanner: /dev/sg1
> > [umax] attach_scanner: opening /dev/sg1
> > [umax] attach_scanner: sanei_scsi_open_extended returned scsi buffer size = 16384
> > [umax] attach_scanner: allocating SCSI buffer[0]
> > [umax] init
> > [umax] request_scsi_maxqueue    = 2
> > [umax] request_preview_lines    = 10
> > [umax] request_scan_lines       = 40
> > [umax] handle_bad_sense_error   = 0
> > [umax] execute_request_sense    = 0
> > [umax] scsi_buffer_size_min     = 32768
> > [umax] scsi_buffer_size_max     = 131072
> > [umax] force_preview_bit_rgb    = 0
> > [umax] slow                     = -1
> > [umax] smear                    = -1
> > [umax] calibration_area         = -1
> > [umax] calibration_width_offset = -99999
> > [umax] calibration_bytespp      = -1
> > [umax] invert_shading_data      = -1
> > [umax] lamp_control_available   = 0
> > [umax] backend runs on little endian machine
> > [umax] variable scsi buffer size (usage of sanei_scsi_open_extended)
> > [umax] initialize_values
> > [umax] identify_scanner
> > [umax] do_inquiry
> > [umax] Found UMAX  scanner Astra 1220S version V1.1 on device /dev/sg1
> > [umax] umax_correct_inquiry("UMAX  Astra 1220S  V1.1")
> > [umax] setting up special options for Astra 1220S 
> > [umax]  - 16 bit gamma table is created lsb padded
> > [umax] get_inquiry_values
> > [umax] INQUIRY:
> > [umax] ========
> > [umax] 
> > [umax] vendor........................: 'UMAX    '
> > [umax] product.......................: 'Astra 1220S     '
> > [umax] version.......................: 'V1.1'
> > [umax] peripheral qualifier..........: 0
> > [umax] peripheral device type........: 6
> > [umax] 
> > [umax] CBHS value range..............: 0-255
> > [umax] scanmode......................: flatbed (FB)
> > [umax] inquiry block length..........: 160 bytes
> > [umax] 
> > [umax] ISO  Version (reserved).......: 0
> > [umax] ECMA Version (reserved).......: 0
> > [umax] ANSI Version .................: 2
> > [umax] 
> > [umax] reserved byte 0x05 = 0
> > [umax] reserved byte 0x06 = 0
> > [umax] 
> > [umax] scsi features (00):
> > [umax] -------------------
> > [umax] 
> > [umax] f/w support function:
> > [umax] ---------------------
> > [umax]  - quality calibration
> > [umax]  - fast preview function
> > [umax] 
> > [umax] reserved byte 0x36 = 0
> > [umax] reserved byte 0x37 = 0
> > [umax] 
> > [umax] scan modes (76):
> > [umax] ----------------
> > [umax]  - single pass color mode
> > [umax]  - lineart mode
> > [umax]  - gray mode
> > [umax]  - color mode
> > [umax]  - transparency (UTA)
> > [umax] 
> > [umax] scanner capability (be, 00, 00):
> > [umax] --------------------------------
> > [umax]  - send high byte first
> > [umax]  - bi-level image reverse
> > [umax]  - multi-level image reverse
> > [umax]  - paper length can reach to 14 inch
> > [umax] 
> > [umax] gamma download available
> > [umax] gamma download type 2
> > [umax] lines of gamma curve: one line (gray), three lines (color) download
> > [umax] gamma input   8 bits/pixel support
> > [umax] gamma input  12 bits/pixel support
> > [umax] gamma output  8 bits/pixel support
> > [umax] gamma output 12 bits/pixel support
> > [umax] 
> > [umax] reserved byte 0x65 = 0
> > [umax] reserved byte 0x67 = 0
> > [umax] 
> > [umax] reserved byte 0x6b = 0
> > [umax] reserved byte 0x6c = 0
> > [umax] 
> > [umax] color sequence............................: all supported
> > [umax] color ordering support....................: pixel
> > [umax] 
> > [umax] maximum video memory......................: 223 KB
> > [umax] 
> > [umax] reserved byte 0x72 = 0
> > [umax] 
> > [umax] optical resolution........................: 600 dpi
> > [umax] maximum x-resolution......................: 600 dpi
> > [umax] maximum y-resolution......................: 1200 dpi
> > [umax] 
> > [umax] FB (flatbed-mode):
> > [umax] FB maximum scan width.....................: 8.50 inch
> > [umax] FB maximum scan length....................: 11.70 inch
> > [umax] 
> > [umax] UTA (transparency-mode):
> > [umax] UTA x-original point......................: 0.00 inch
> > [umax] UTA y-original point......................: 0.00 inch
> > [umax] UTA maximum scan width....................: 8.50 inch
> > [umax] UTA maximum scan length...................: 10.60 inch
> > [umax] 
> > [umax] reserved byte 0x82 = 0
> > [umax] 
> > [umax] DOR (double optical resolution-mode):
> > [umax] DOR optical resolution....................: 0 dpi
> > [umax] DOR maximum x-resolution..................: 0 dpi
> > [umax] DOR maximum y-resolution..................: 0 dpi
> > [umax] DOR x-original point......................: 0.00 inch
> > [umax] DOR y-original point......................: 0.00 inch
> > [umax] DOR maximum scan width....................: 0.00 inch
> > [umax] DOR maximum scan length...................: 0.00 inch
> > [umax] 
> > [umax] reserved byte 0x8e = 0
> > [umax] 
> > [umax] last calibration lamp density.............: 0
> > [umax] 
> > [umax] reserved byte 0x90 = 0
> > [umax] 
> > [umax] lamp warmup maximum time..................: 0 sec
> > [umax] window descriptor block length............: 82 bytes
> > [umax] no analog gamma function
> > [umax] 
> > [umax] reserved byte 0x98 = 0
> > [umax] reserved byte 0x99 = 0
> > [umax] 
> > [umax] maximum calibration data lines for shading: 64
> > [umax] fb/uta: color line arrangement mode.......: 0
> > [umax] adf:    color line arrangement mode.......: 0
> > [umax] CCD line distance.........................: 8
> > [umax] 
> > [umax] reserved byte 0x9e = 0
> > [umax] 
> > [umax] ==================== end of inquiry ====================
> > [umax] 
> > [umax] x_range.max     = 215.899994
> > [umax] y_range.max     = 297.179993
> > [umax] x_dpi_range.max = 600.000000
> > [umax] y_dpi_range.max = 1200.000000
> > [umax] attach_matching_devices(scsi LinoHell JADE)
> > [umax] attach_matching_devices(scsi LinoHell Office)
> > [umax] attach_matching_devices(scsi LinoHell Office2)
> > [umax] attach_matching_devices(scsi LinoHell SAPHIR2)
> > [umax] attach_matching_devices(scsi HDM LS4H1S)
> > [umax] attach_matching_devices(scsi Nikon AX-110)
> > [umax] attach_matching_devices(scsi Nikon AX-210)
> > [umax] attach_matching_devices(scsi KYE ColorPage-HR5)
> > [umax] attach_matching_devices(scsi EPSON Perfection600)
> > [umax] attach_matching_devices(scsi ESCORT "Galleria 600S")
> > [umax] attach_matching_devices(/dev/sg1)
> > [umax] attach_scanner: /dev/sg1
> > [umax] attach_scanner: opening /dev/sg1
> > [umax] attach_scanner: sanei_scsi_open_extended returned scsi buffer size = 16384
> > [umax] attach_scanner: allocating SCSI buffer[0]
> > [umax] init
> > [umax] request_scsi_maxqueue    = 2
> > [umax] request_preview_lines    = 10
> > [umax] request_scan_lines       = 40
> > [umax] handle_bad_sense_error   = 0
> > [umax] execute_request_sense    = 0
> > [umax] scsi_buffer_size_min     = 32768
> > [umax] scsi_buffer_size_max     = 131072
> > [umax] force_preview_bit_rgb    = 0
> > [umax] slow                     = -1
> > [umax] smear                    = -1
> > [umax] calibration_area         = -1
> > [umax] calibration_width_offset = -99999
> > [umax] calibration_bytespp      = -1
> > [umax] invert_shading_data      = -1
> > [umax] lamp_control_available   = 0
> > [umax] backend runs on little endian machine
> > [umax] variable scsi buffer size (usage of sanei_scsi_open_extended)
> > [umax] initialize_values
> > [umax] identify_scanner
> > [umax] do_inquiry
> > [umax] Found UMAX  scanner Astra 1220S version V1.1 on device /dev/sg1
> > [umax] umax_correct_inquiry("UMAX  Astra 1220S  V1.1")
> > [umax] setting up special options for Astra 1220S 
> > [umax]  - 16 bit gamma table is created lsb padded
> > [umax] get_inquiry_values
> > [umax] INQUIRY:
> > [umax] ========
> > [umax] 
> > [umax] vendor........................: 'UMAX    '
> > [umax] product.......................: 'Astra 1220S     '
> > [umax] version.......................: 'V1.1'
> > [umax] peripheral qualifier..........: 0
> > [umax] peripheral device type........: 6
> > [umax] 
> > [umax] CBHS value range..............: 0-255
> > [umax] scanmode......................: flatbed (FB)
> > [umax] inquiry block length..........: 160 bytes
> > [umax] 
> > [umax] ISO  Version (reserved).......: 0
> > [umax] ECMA Version (reserved).......: 0
> > [umax] ANSI Version .................: 2
> > [umax] 
> > [umax] reserved byte 0x05 = 0
> > [umax] reserved byte 0x06 = 0
> > [umax] 
> > [umax] scsi features (00):
> > [umax] -------------------
> > [umax] 
> > [umax] f/w support function:
> > [umax] ---------------------
> > [umax]  - quality calibration
> > [umax]  - fast preview function
> > [umax] 
> > [umax] reserved byte 0x36 = 0
> > [umax] reserved byte 0x37 = 0
> > [umax] 
> > [umax] scan modes (76):
> > [umax] ----------------
> > [umax]  - single pass color mode
> > [umax]  - lineart mode
> > [umax]  - gray mode
> > [umax]  - color mode
> > [umax]  - transparency (UTA)
> > [umax] 
> > [umax] scanner capability (be, 00, 00):
> > [umax] --------------------------------
> > [umax]  - send high byte first
> > [umax]  - bi-level image reverse
> > [umax]  - multi-level image reverse
> > [umax]  - paper length can reach to 14 inch
> > [umax] 
> > [umax] gamma download available
> > [umax] gamma download type 2
> > [umax] lines of gamma curve: one line (gray), three lines (color) download
> > [umax] gamma input   8 bits/pixel support
> > [umax] gamma input  12 bits/pixel support
> > [umax] gamma output  8 bits/pixel support
> > [umax] gamma output 12 bits/pixel support
> > [umax] 
> > [umax] reserved byte 0x65 = 0
> > [umax] reserved byte 0x67 = 0
> > [umax] 
> > [umax] reserved byte 0x6b = 0
> > [umax] reserved byte 0x6c = 0
> > [umax] 
> > [umax] color sequence............................: all supported
> > [umax] color ordering support....................: pixel
> > [umax] 
> > [umax] maximum video memory......................: 223 KB
> > [umax] 
> > [umax] reserved byte 0x72 = 0
> > [umax] 
> > [umax] optical resolution........................: 600 dpi
> > [umax] maximum x-resolution......................: 600 dpi
> > [umax] maximum y-resolution......................: 1200 dpi
> > [umax] 
> > [umax] FB (flatbed-mode):
> > [umax] FB maximum scan width.....................: 8.50 inch
> > [umax] FB maximum scan length....................: 11.70 inch
> > [umax] 
> > [umax] UTA (transparency-mode):
> > [umax] UTA x-original point......................: 0.00 inch
> > [umax] UTA y-original point......................: 0.00 inch
> > [umax] UTA maximum scan width....................: 8.50 inch
> > [umax] UTA maximum scan length...................: 10.60 inch
> > [umax] 
> > [umax] reserved byte 0x82 = 0
> > [umax] 
> > [umax] DOR (double optical resolution-mode):
> > [umax] DOR optical resolution....................: 0 dpi
> > [umax] DOR maximum x-resolution..................: 0 dpi
> > [umax] DOR maximum y-resolution..................: 0 dpi
> > [umax] DOR x-original point......................: 0.00 inch
> > [umax] DOR y-original point......................: 0.00 inch
> > [umax] DOR maximum scan width....................: 0.00 inch
> > [umax] DOR maximum scan length...................: 0.00 inch
> > [umax] 
> > [umax] reserved byte 0x8e = 0
> > [umax] 
> > [umax] last calibration lamp density.............: 0
> > [umax] 
> > [umax] reserved byte 0x90 = 0
> > [umax] 
> > [umax] lamp warmup maximum time..................: 0 sec
> > [umax] window descriptor block length............: 82 bytes
> > [umax] no analog gamma function
> > [umax] 
> > [umax] reserved byte 0x98 = 0
> > [umax] reserved byte 0x99 = 0
> > [umax] 
> > [umax] maximum calibration data lines for shading: 64
> > [umax] fb/uta: color line arrangement mode.......: 0
> > [umax] adf:    color line arrangement mode.......: 0
> > [umax] CCD line distance.........................: 8
> > [umax] 
> > [umax] reserved byte 0x9e = 0
> > [umax] 
> > [umax] ==================== end of inquiry ====================
> > [umax] 
> > [umax] x_range.max     = 215.899994
> > [umax] y_range.max     = 297.179993
> > [umax] x_dpi_range.max = 600.000000
> > [umax] y_dpi_range.max = 1200.000000
> > [umax] finished reading configure file
> > [umax] sane_open
> > [umax] sane_open: devicename=/dev/sg1
> > [umax] Using 12 bits for gamma input
> > [umax] init_options
> > [umax] sane_start
> > [umax] initialize_values
> > [umax] Using 12 bits for gamma input
> > [umax] Using 8 bits for output
> > [umax] check_values
> > [umax] using one pass scanning mode
> > [umax] scanner uses color-pixel-ordering
> > [umax] sane_get_parameters
> > [umax] x_resolution (dpi)      = 300
> > [umax] y_resolution (dpi)      = 300
> > [umax] x_coordinate_base (dpi) = 1200
> > [umax] y_coordinate_base (dpi) = 1200
> > [umax] upper_left_x (xbase)    = 0
> > [umax] upper_left_y (ybase)    = 0
> > [umax] scanwidth    (xbase)    = 5669
> > [umax] scanlength   (ybase)    = 7795
> > [umax] width in pixels         = 1417
> > [umax] length in pixels        = 1948
> > [umax] bits per pixel/color    = 8
> > [umax] bytes per line          = 4251
> > [umax] pixels_per_line         = 1417
> > [umax] lines                   = 1948
> > [umax] negative                = 0
> > [umax] threshold  (lineart)    = 127
> > [umax] brightness (halftone)   = 127
> > [umax] contrast   (halftone)   = 127
> > [umax] analog_gamma            = 0 0 0
> > [umax] highlight               = 255 255 255
> > [umax] shadow                  = 0 0 0
> > [umax] calibrat. exposure time = 0 0 0
> > [umax] scan exposure time      = 0 0 0
> > [umax] calibration mode number = 0
> > [umax] quality calibration     = 0
> > [umax] fast preview function   = 0
> > [umax] DOR                     = 0
> > [umax] ADF                     = 0
> > [umax] manual focus            = 0
> > [umax] fix focus position      = 0
> > [umax] disable pre focus       = 0
> > [umax] lens cal in doc pos     = 0
> > [umax] holder focus pos 0mm    = 0
> > [umax] sane_start: sanei_scsi_open_extended returned scsi buffer size = 56680
> > [umax] sane_start: buffer size has changed, reallocating buffer
> > [umax] sane_start: freeing SCSI buffer[0]
> > [umax] sane_start: allocating SCSI buffer[0]
> > [umax] grab_scanner
> > [umax] wait_scanner
> > [umax] scanner ready
> > [umax] scanner reserved
> > [umax] set_window_param
> > [umax] window descriptor block created with 82 bytes
> > [umax] window(s) set
> > [umax] start_scan
> > [umax] starting scan
> > [umax] do_calibration
> > [umax] wait_scanner
> > [umax] scanner reports Device busy, waiting ...
> > [umax] scanner ready
> > [umax] sane_get_parameters
> > scanimage: scanning image of size 1417x1948 pixels at 24 bits/pixel
> > scanimage: acquiring RGB frame
> > [umax] reader_process started
> > [umax] reader_process: allocating SCSI buffer[1]
> > [umax] reader_process: starting to READ data
> > [umax] trim_rowbufsize: row_bufsize = 55263 bytes = 13 lines
> > [umax] reading 8280948 bytes in blocks of 55263 bytes
> > [umax] wait_scanner
> > [umax] scanner ready
> > [umax] umax_queue_read_image_data_req for buffer[0]
> > [umax] umax_queue_read_image_data_req: id for buffer[0] is 0x8079360
> > [umax] umax_reader_process: read image data queued for buffer[0] 
> > [umax] umax_queue_read_image_data_req for buffer[1]
> > [umax] umax_queue_read_image_data_req: id for buffer[1] is 0x8094ee8
> > [umax] umax_reader_process: read image data queued for buffer[1] 
> > [umax] umax_wait_queued_image_data for buffer[0] (id=0x8079360)
> > [umax] umax_wait_queued_image_data: wait returned status Error during device I/O
> > [umax] ERROR: umax_reader_process: unable to get image data from scanner!
> > [umax] reader_process: freeing SCSI buffer[1]
> > [umax] reader_process: finished reading data
> > [umax] sane_read: read 0 bytes
> > [umax] do_cancel
> > [umax] killing reader_process
> > [umax] reader_process killed
> > [umax] trying to release scanner ...
> > [umax] umax_give_scanner: command returned status Error during device I/O
> > [umax] trying to reposition scanner ...
> > [umax] not waiting for finishing reposition scanner
> > [umax] closing scannerdevice filedescriptor
> > [umax] closing pipe
> > scanimage: min/max graylevel value = 255/0
> > [umax] sane_cancel
> > scanimage: read 0 bytes in total
> > [umax] sane_close
> > [umax] sane_exit
> > gatsby:/home/m# 
> > Script done on Fri Mar 11 10:29:48 2005