[sane-devel] SCSI problems with a DMC

Andrew Kuchling akuchlin@mems-exchange.org
Tue, 29 Oct 2002 11:13:41 -0500


I'm using the sane-dmc backend to read from Polaroid DMC cameras
attached to several different machines.  Recently one camera can no
longer produce images; scanimage just dies with a "Error during device
I/O", and I don't think anything on the machine has changed recently
to trigger this.  It fails identically with both the Debian-packaged
SANE 1.0.1 and a freshly compiled SANE 1.0.9.

The last lines of the SCSI debug log are:

[sanei_debug] Setting debug level of sanei_scsi to 255.
[sanei_scsi] sanei_scsi_open: SG driver version: 20139
[sanei_scsi] sanei_scsi_open_extended: using 131072 bytes as SCSI buffer
[sanei_scsi] trying to enable low level command queueing
[sanei_scsi] sanei_scsi_open: Host adapter queue depth: 3
[sanei_scsi] sanei_scsi_open: SG driver can change buffer size at run time
[sanei_scsi] sanei_scsi_open: low level command queueing enabled
[sanei_scsi] scsi_req_enter: entered 0x4012c008
[sanei_scsi] sanei_scsi.issue: 0x4012c008
[sanei_scsi] scsi_req_enter: queue_used: 1, queue_max: 3
[sanei_scsi] sanei_scsi_req_wait: waiting for 0x4012c008
[sanei_scsi] sanei_scsi.issue: 0x4012c008
[sanei_scsi] sanei_scsi_req_wait: read 36 bytes
[sanei_scsi] sanei_scsi_req_wait: SCSI command complained: Success
[sanei_scsi] sense buffer: 70 00 04 00 00 00 00 0a 00 00 00 00 80 00 00 00
[sanei_scsi] target status: 00 host status: 00 driver status: 00

(Full SCSI log at http://www.mems-exchange.org/misc/files/scsi-log)

The SCSI error is being caught by the code around line 2085 of
sanei_scsi.c, in sanei_scsi_req_wait().  The conditional is:

             /* check for errors, but let the sense_handler decide.... */
              if ( (req->sgdata.cdb.hdr.result != 0) ||
                  ((req->sgdata.cdb.hdr.sense_buffer[0] & 0x7f) != 0))

hdr.result is zero, so it's the second condition that's true; the
first byte of the sense buffer is 0x70.  What does this mean?  And
does it provide a clue to the problem?

Thanks in advance for any suggestions...

--amk                                                             (www.amk.ca)
"Quite so," he answered, lighting a cigarette, and throwing himself down into
an armchair. "You see, but you do not observe. The distinction is clear."
      -- From "A Scandal in Bohemia"