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