[sane-devel] Trouble with Artec AM12S

abel deuring adeuring at gmx.net
Wed Jan 23 22:17:12 GMT 2002


Jody Hay wrote:
> 
> I have been having an infrequent problem scanning
>         with my Artec AM12S.  Usually within the first ten
>         scans after a reboot, something seems to lock up
>         the computer.
> 
>         Here are some details:
>                 Debian "testing" distribution
>                 custom 2.4.16 kernel, patched with XFS
>                 SCSI module dmx3191d (card bundled with Scanner)
>                 libsane 1.0.6-0.1
> 
>         Here is an example of what happens when the computer locks up:
> 
> # scanimage -d  artec:/dev/sg0 > test.pnm
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_scsi] sanei_scsi_find_devices: vendor=(null) model=(null) type=Scanner
>         bus=0 chan=0 id=5 lun=0  num=0
> [sanei_scsi] lx_chk_id: 0,0  0,0  5,5  0,0
> [sanei_scsi] lx_chk_devicename: matched device(direct): /dev/sg0
> [sanei_scsi] get_max_buffer_size for /dev/sg0: 131072
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_scsi] sanei_scsi_open: sanei_scsi_max_request_size=131072 bytes
> [sanei_scsi] sanei_scsi_open: SG driver version: 30120
> [sanei_scsi] sanei_scsi_open_extended: using 16384 bytes as SCSI buffer
> [sanei_scsi] trying to enable low level command queueing
> [sanei_scsi] sanei_scsi_open: Host adapter queue depth: 2
> [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] sanei_scsi_open: using new SG header structure
> [sanei_scsi] scsi_req_enter: entered 0x8055ad0
> [sanei_scsi] sanei_scsi.issue: 0x8055ad0
> [sanei_scsi] scsi_req_enter: queue_used: 1, queue_max: 2
> [sanei_scsi] sanei_scsi_req_wait: waiting for 0x8055ad0
> [sanei_scsi] sanei_scsi.issue: 0x8055ad0
> [sanei_scsi] sanei_scsi_req_wait: read 64 bytes
> [sanei_scsi] scsi_req_enter: entered 0x8055ad0
> [sanei_scsi] sanei_scsi.issue: 0x8055ad0
> [sanei_scsi] scsi_req_enter: queue_used: 1, queue_max: 2
> [sanei_scsi] sanei_scsi_req_wait: waiting for 0x8055ad0
> [sanei_scsi] sanei_scsi.issue: 0x8055ad0
> [sanei_scsi] sanei_scsi_req_wait: read 64 bytes
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_scsi] sanei_scsi_find_devices: vendor=(null) model=(null) type=Scanner
>         bus=0 chan=0 id=5 lun=0  num=0
> [sanei_scsi] lx_chk_id: 0,0  0,0  5,5  0,0
> [sanei_scsi] lx_chk_devicename: matched device(direct): /dev/sg0
> [sanei_scsi] get_max_buffer_size for /dev/sg0: 131072
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_scsi] sanei_scsi_open: sanei_scsi_max_request_size=131072 bytes
> [sanei_scsi] sanei_scsi_open: SG driver version: 30120
> [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: 2
> [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] sanei_scsi_open: using new SG header structure
> [sanei_scsi] scsi_req_enter: entered 0x401d1008
> [sanei_scsi] sanei_scsi.issue: 0x401d1008
> [sanei_scsi] scsi_req_enter: queue_used: 1, queue_max: 2
> [sanei_scsi] sanei_scsi_req_wait: waiting for 0x401d1008
> [sanei_scsi] sanei_scsi.issue: 0x401d1008
> [sanei_scsi] sanei_scsi_req_wait: read 64 bytes
> [sanei_scsi] scsi_req_enter: entered 0x401d1008
> [sanei_scsi] sanei_scsi.issue: 0x401d1008
> [sanei_scsi] scsi_req_enter: queue_used: 1, queue_max: 2
> [sanei_scsi] sanei_scsi_req_wait: waiting for 0x401d1008
> [sanei_scsi] sanei_scsi.issue: 0x401d1008
> [sanei_scsi] sanei_scsi_req_wait: read 64 bytes
> [sanei_scsi]  SCSI command complained: Success
> [sanei_scsi] sense buffer: 70 00 06 00 00 00 00 14 00 00 00 00 00 00 00 00
> [sanei_scsi] target status: 00 host status: 0000 driver status: 0028
> [sanei_scsi] scsi_req_enter: entered 0x401d1008
> [sanei_scsi] sanei_scsi.issue: 0x401d1008
> [sanei_debug] Setting debug level of artec to 128.

Jody,

this looks really strange: After the "sanei_scsi.issue" line should
follow a line with "sanei_scsi_req_wait". 

> [artec] Artec/Ultima backend version 0.5.16, last mod: 05/26/2001 17:28 EST
> [artec] http://www4.infi.net/~cpinkham/sane-artec-doc.html
> [artec] sane_init()
> [artec] sane_init(), authorize callback specified as 0x80491c0
> [artec] artec.conf line: 'scsi ARTEC', len = 10
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_scsi] sanei_scsi_find_devices: vendor=ARTEC model=(null) type=(null)
>         bus=0 chan=0 id=5 lun=0  num=0
> [sanei_scsi] lx_scan_sg: k=0, exclude=0, missed=0
> [sanei_scsi] lx_scan_sg: k=1, exclude=0, missed=1
> [sanei_scsi] lx_scan_sg: k=2, exclude=0, missed=2
> [sanei_scsi] lx_scan_sg: k=3, exclude=0, missed=3
> [sanei_scsi] lx_scan_sg: k=4, exclude=0, missed=4
> [artec] artec.conf line: 'model AM12S', len = 11
> [artec] sane_init: Forced model string 'AM12S' in artec.conf.
> [artec] artec.conf line: '/dev/sg0', len = 8
> [artec] attach_one()
> [artec] attach()
> [artec] attach: opening /dev/sg0
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_scsi] sanei_scsi_find_devices: vendor=(null) model=(null) type=Scanner
>         bus=0 chan=0 id=5 lun=0  num=0
> [sanei_scsi] lx_scan_sg: k=0, exclude=0, missed=0
> [sanei_scsi] lx_scan_sg: k=1, exclude=0, missed=1
> [sanei_scsi] lx_scan_sg: k=2, exclude=0, missed=2
> [sanei_scsi] lx_scan_sg: k=3, exclude=0, missed=3
> [sanei_scsi] lx_scan_sg: k=4, exclude=0, missed=4
> [sanei_debug] Setting debug level of sanei_scsi to 128.
> [sanei_scsi] sanei_scsi_open: sanei_scsi_max_request_size=131072 bytes
> 
>         After the machine had been locked for 10 minutes, I powered
>         off the scanner.  The computer came back (I could type commands)
>         but the scanner was no longer shown.  Any ideas?

The missing "sanei_scsi_req_wait" line above is suspicious; perhaps a
SCSI command is stuck somewhere in Linux's SCSI drivers -- or you
discovered a bug in sanei_scsi.c; this might block further access to the
scanner. Is the above debug output from one run of
scanimage/xscanimage/xsane, or did you concatenate the output from two
or more runs?

Can you run another test with SANE_DEBUG_SANEI_SCSI=255 and sennd me the
output? (better not to the mailing list; the output will probably be
somewhat larger)

And does /var/log/messages contains anything related to the dmx3191d
driver?

Abel



More information about the sane-devel mailing list