On Monday 15 October 2001 02:37, Douglas Gilbert wrote: > Jose Paulo Moitinho de Almeida wrote: > > On Thursday 04 October 2001 21:01, abel deuring wrote: >...... > > > > masked_status 8 driver_status 0 > > Paulo, > The problem starts here, a masked_status of 8 corresponds > to a SCSI status of INTERMEDIATE. This implies the command > sent to the scanner had the link bit set in the control > field which is the last byte in every command descriptor > block. Perhaps the SANE backend driver wanted to invoke > linked commands, more likely, it is a mistake by the > backend driver.
I think that Ed Hamrick is the right person top clarify this. > ..... > > Perhaps you could look upstream and see if that link > bit on the SCSI command is being set for a good reason. > I can tell that it is a film scanner and it was positioning the head... > > Should sg.c be modified, so that when SG_INFO_CHECK is set, the > > initialisation of the sense_buffer is done? > > I have just put some more words in the sg documentation > (soon to be at: http://www.torque.net/sg/p/sg_v3_ho.html ) > to emphasize that SG_INFO_CHECK does not always imply that > there will be a sense buffer. > > The possibility that there may be a problem somewhere else should not be > > excluded either. I am using a driver which is "fresh from the oven". > I can add that I had exactly the same result using the now "officially experimental" version of hpusbscsi that is in 2.4.12. Just adding the following patch to drivers/scsi/sg.c vuescan works fine. I know that I am not correcting the true source of the error! ---------------------------------------------- >*** sg.c.orig Sun Oct 14 18:38:05 2001 --- sg.c Sun Oct 14 18:37:19 2001 *************** *** 477,482 **** --- 477,485 ---- goto err_out; } hp->sb_len_wr = 0; + #if 1 + memset(hp->sbp, 0, 8); + #endif if ((hp->mx_sb_len > 0) && hp->sbp) { if ((CHECK_CONDITION & hp->masked_status) || (DRIVER_SENSE & hp->driver_status)) { ---------------------------------------------- > abel deuring <adeur...@gmx.net> wrote: > > Maybe, but I think that older versions of the SG driver > > do not return the length of sense data read from a device. > > (Douglas, can you confirm this?) > > Abel, > Yes, that is correct. To get around this, apps like cdrecord > and paranoia would pre-fill the sense buffer with zeroes and > then look for a change when the command completed. > Would that be an alternative, or is it better to try Abel's patch? Regards Ze Paulo