[sane-devel] Mac OS X 10.3.3- Sane Backend 1.0.14 - Microtek ScanMaker II - New Information
David B Brown
david_b_brown@mac.com
Wed, 5 May 2004 15:01:18 +0100
--Apple-Mail-5-231779877
Content-Type: multipart/alternative; boundary=Apple-Mail-4-231779869
--Apple-Mail-4-231779869
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
format=flowed
Hi,
every time a new version of the Sane Backend's becomes available I
always have another go to see if anything has changed to make my
configuration work. I also find that when I come back to this afresh I
always get a little further forward.
When you run scanimage, the Microtek scanner incorretly reports itself
8 times, each under a different LUN, this has been consistent since the
new Max OSX SCSI code was implemented to support Mac OS X 10.3.
[MacCoylton:~] dave% scanimage -L
device `microtek:iokitscsi@<016333000000001e2a70b923>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<016338000000001e28c472d6>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<01633a000000001e18c239cd>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<0162c4000000001e05d02fe7>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<01633d000000001e0530106a>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<0162cc000000001e04869288>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<0162cf000000001e03c78ee9>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<0161e1000000001e02a59e9b>' is a Microtek
ScanMaker II/IIXE flatbed scanner
[MacCoylton:~] dave%
If you check using ioreg, each of these is on the same SCSI ID, but a
different LUN, the last one reported is actually on LUN 0.
If I run scanimage without specifically specifying a device, then I
always get and error about the scsi buffer being smaller than one scan
line. The error is a bit of a red herring, and the real issue is that
the code is trying to communicate with the scanner using the wrong LUN,
in this case on LUN 7 in the above example which is the first one
listed.
ISSUE: My coding is rusty and my knowledge of the SCSI API used for
Mac OS X is worse, but I believe that the Mac OS X scsi code doesn't
support specifying a LUN and SCSI ID in the microtek.conf file. From my
testing if the code has to search for the scanners it only uses the
vendor and device name, and ends up attached to the wrong LUN
If I run scanimage with the -d option set to the last device listed
ie the one thats LUN 0, the scan actually starts. I then have two
scenarios each with there own problems as follows
Scenario 1:- If I run with an unconstrained size, then the first pass
happens ok, and then scanimage exists with an error before the scanner
physically returns to the start for the second pass. Here's some debug
trace:-
[microtek] sane_read: buffsize: 130900, unscanned: 13
[microtek] pack_into_ring...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32768 sz: 130900 hc: 0
[microtek] sane_read...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32768 sz: 130900 hc: 32768
[microtek] sane_read...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32768 sz: 130900 hc: 65536
[microtek] sane_read...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32596 sz: 130900 hc: 98304
[microtek] sane_read...
[microtek] read_from_scanner...
[microtek] .get_scan_status 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:6 isWrite:0
[sanei_scsi] isRead dst_size:6
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 6 bytes
[microtek] get_scan_status(6): 0, 850, 13 -> #0
[microtek] > 0 52 3 d 0 0
[microtek] read_from_scanner: gss busy, linewidth, remaining: 0, 850,
13
[microtek] sane_read: max_scsi: 154, rem: 13, nlines: 13
[microtek] .read_scan_data...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:11050 isWrite:0
[sanei_scsi] isRead dst_size:11050
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 11050 bytes
[microtek] sane_read: buffsize: 11050, unscanned: 0
[microtek] pack_into_ring...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 11050 sz: 130900 hc: 0
[microtek] sane_read...
[microtek] end_scan...
[microtek] .stop_scan...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] sane_start...
[microtek] sane_get_parameters...
[microtek] sane_get_parameters: regular 3-pass color
[microtek] sane_get_parameters: res_code = 33 (21)
[microtek] sane_get_parameters: dots_per_mm: 3.937008
[microtek] sane_get_parameters: units_per_mm: 11.811024
[microtek] WIDTHPIX: before exp: 850
[microtek] sane_get_parameters: lines: 1400 ppl: 850 bpl: 850
[microtek] set_pass_parameters: three-pass, on 2
[sanei_debug] Setting debug level of sanei_scsi to 6.
[microtek] .wait_ready 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] finagle_precal...
[microtek] .scanning_frame...
[microtek] .scanning_frame: in- 0,0 2549,4199
[microtek] .scanning_frame: out- 0,0 2549,4199
[sanei_scsi] cmd2: cmd_size:6 src_size:9 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:9
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .accessory...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .download_gamma...
[microtek] .download_gamma: 256 entries of 1 bytes, max 255
[microtek] .download_gamma: by default
[sanei_scsi] cmd2: cmd_size:10 src_size:256 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:256
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .mode_select 0...
[microtek] .mode_select: pap_len: 4199
[sanei_scsi] cmd2: cmd_size:6 src_size:10 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:10
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .wait_ready 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .start_scan...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .get_scan_status 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:6 isWrite:0
[sanei_scsi] isRead dst_size:6
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] get_scan_status(0): 0, 0, 0 -> #0
[microtek] > 0 0 0 0 0 0
[microtek] sane_start: SCSI buffer smaller that one scan line!
[microtek] end_scan...
[microtek] .stop_scan...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
scanimage: sane_start: Out of memory
[microtek] sane_cancel...
[microtek] end_scan...
[microtek] sane_close...
[microtek] sane_exit...
[microtek] sane_exit: MICROTEK says goodbye.
[MacCoylton:~] dave%
Scenario 2 :- If I run with a constrained size, then the scanner
appears to have executed all three passes, or is at least coming to the
end of the third pass, but before the scanner physcially returns to the
start I get a kernal panic. The command I used for this test was
[MacCoylton:~] dave% scanimage -d
"microtek:iokitscsi@<0161e1000000001e02a59e9b>" -x 30 -y 30
here's the debug trace immediately before the kernal panic, I copied
this down by hand so forgive me if I have any typo's
[microtek] read_from_scanner...
[microtek] .get_scan_status 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:6 isWrite:0
[sanei_scsi] isRead dst_size:6
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Transferred 6 bytes
[microtek] get_scan_status(6): 0, 118, 118 -> #0
[microtek] > 0 76 0 76 0 0
[microtek] read_from_scanner: gss busy, linewidth, remaining: 0, 118,
118
[microtek] sane_read: max_scsi: 1110, rem: 118, nline: 118
[microtek] .read_scan_data...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:13924 isWrite:0
[sanei_scsi] isRead dst_size:13924
[sanei_scsi] Executing command
As you can see this stops on issuing a SCSI command, and the panic.log
show the panic was within the adaptec driver.
Cheers
David
--Apple-Mail-4-231779869
Content-Transfer-Encoding: 7bit
Content-Type: text/enriched;
charset=US-ASCII
Hi,
every time a new version of the Sane Backend's becomes available I
always have another go to see if anything has changed to make my
configuration work. I also find that when I come back to this afresh I
always get a little further forward.
When you run scanimage, the Microtek scanner incorretly reports
itself 8 times, each under a different LUN, this has been consistent
since the new Max OSX SCSI code was implemented to support Mac OS X
10.3.
[MacCoylton:~] dave% scanimage -L
device `microtek:iokitscsi@<<016333000000001e2a70b923>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<<016338000000001e28c472d6>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<<01633a000000001e18c239cd>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<<0162c4000000001e05d02fe7>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<<01633d000000001e0530106a>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<<0162cc000000001e04869288>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<<0162cf000000001e03c78ee9>' is a Microtek
ScanMaker II/IIXE flatbed scanner
device `microtek:iokitscsi@<<0161e1000000001e02a59e9b>' is a Microtek
ScanMaker II/IIXE flatbed scanner
[MacCoylton:~] dave%
If you check using ioreg, each of these is on the same SCSI ID, but a
different LUN, the last one reported is actually on LUN 0.
If I run scanimage without specifically specifying a device, then I
always get and error about the scsi buffer being smaller than one scan
line. The error is a bit of a red herring, and the real issue is that
the code is trying to communicate with the scanner using the wrong
LUN, in this case on LUN 7 in the above example which is the first one
listed.
<color><param>FFFD,0000,0000</param>ISSUE: My coding is rusty and my
knowledge of the SCSI API used for Mac OS X is worse, but I believe
that the Mac OS X scsi code doesn't support specifying a LUN and SCSI
ID in the microtek.conf file. From my testing if the code has to
search for the scanners it only uses the vendor and device name, and
ends up attached to the wrong LUN</color>
If I run scanimage with the -d option set to the last device listed
ie the one thats LUN 0, the scan actually starts. I then have two
scenarios each with there own problems as follows
<color><param>0000,0000,FFFE</param>Scenario 1:- If I run with an
unconstrained size, then the first pass happens ok, and then scanimage
exists with an error before the scanner physically returns to the
start for the second pass. Here's some debug trace:-
</color>
[microtek] sane_read: buffsize: 130900, unscanned: 13
[microtek] pack_into_ring...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32768 sz: 130900 hc: 0
[microtek] sane_read...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32768 sz: 130900 hc: 32768
[microtek] sane_read...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32768 sz: 130900 hc: 65536
[microtek] sane_read...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 32596 sz: 130900 hc: 98304
[microtek] sane_read...
[microtek] read_from_scanner...
[microtek] .get_scan_status 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:6 isWrite:0
[sanei_scsi] isRead dst_size:6
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 6 bytes
[microtek] get_scan_status(6): 0, 850, 13 -> #0
[microtek] > 0 52 3 d 0 0
[microtek] read_from_scanner: gss busy, linewidth, remaining: 0, 850,
13
[microtek] sane_read: max_scsi: 154, rem: 13, nlines: 13
[microtek] .read_scan_data...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:11050 isWrite:0
[sanei_scsi] isRead dst_size:11050
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 11050 bytes
[microtek] sane_read: buffsize: 11050, unscanned: 0
[microtek] pack_into_ring...
[microtek] pack_into_dest...
[microtek] pack_into_dest: rl: 11050 sz: 130900 hc: 0
[microtek] sane_read...
[microtek] end_scan...
[microtek] .stop_scan...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] sane_start...
[microtek] sane_get_parameters...
[microtek] sane_get_parameters: regular 3-pass color
[microtek] sane_get_parameters: res_code = 33 (21)
[microtek] sane_get_parameters: dots_per_mm: 3.937008
[microtek] sane_get_parameters: units_per_mm: 11.811024
[microtek] WIDTHPIX: before exp: 850
[microtek] sane_get_parameters: lines: 1400 ppl: 850 bpl: 850
[microtek] set_pass_parameters: three-pass, on 2
[sanei_debug] Setting debug level of sanei_scsi to 6.
[microtek] .wait_ready 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] finagle_precal...
[microtek] .scanning_frame...
[microtek] .scanning_frame: in- 0,0 2549,4199
[microtek] .scanning_frame: out- 0,0 2549,4199
[sanei_scsi] cmd2: cmd_size:6 src_size:9 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:9
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .accessory...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .download_gamma...
[microtek] .download_gamma: 256 entries of 1 bytes, max 255
[microtek] .download_gamma: by default
[sanei_scsi] cmd2: cmd_size:10 src_size:256 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:256
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .mode_select 0...
[microtek] .mode_select: pap_len: 4199
[sanei_scsi] cmd2: cmd_size:6 src_size:10 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:10
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .wait_ready 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .start_scan...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] .get_scan_status 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:6 isWrite:0
[sanei_scsi] isRead dst_size:6
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
[microtek] get_scan_status(0): 0, 0, 0 -> #0
[microtek] > 0 0 0 0 0 0
[microtek] sane_start: SCSI buffer smaller that one scan line!
[microtek] end_scan...
[microtek] .stop_scan...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:0 isWrite:1
[sanei_scsi] isWrite src_size:0
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Trasferred 0 bytes
scanimage: sane_start: Out of memory
[microtek] sane_cancel...
[microtek] end_scan...
[microtek] sane_close...
[microtek] sane_exit...
[microtek] sane_exit: MICROTEK says goodbye.
[MacCoylton:~] dave%
<color><param>0000,0000,FFFD</param>Scenario 2 :- If I run with a
constrained size, then the scanner appears to have executed all three
passes, or is at least coming to the end of the third pass, but before
the scanner physcially returns to the start I get a kernal panic. The
command I used for this test was
</color>[MacCoylton:~] dave%
<color><param>0000,0000,0000</param>scanimage -d
"microtek:iokitscsi@<<0161e1000000001e02a59e9b>" -x 30 -y 30
here's the debug trace immediately before the kernal panic, I copied
this down by hand so forgive me if I have any typo's
[microtek] read_from_scanner...
[microtek] .get_scan_status 0...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:6 isWrite:0
[sanei_scsi] isRead dst_size:6
[sanei_scsi] Executing command
[sanei_scsi] ExecuteTaskSync OK Transferred 6 bytes
[microtek] get_scan_status(6): 0, 118, 118 -> #0
[microtek] > 0 76 0 76 0 0
[microtek] read_from_scanner: gss busy, linewidth, remaining: 0, 118,
118
[microtek] sane_read: max_scsi: 1110, rem: 118, nline: 118
[microtek] .read_scan_data...
[sanei_scsi] cmd2: cmd_size:6 src_size:0 dst_size:13924 isWrite:0
[sanei_scsi] isRead dst_size:13924
[sanei_scsi] Executing command
As you can see this stops on issuing a SCSI command, and the panic.log
show the panic was within the adaptec driver.
Cheers
David </color>
--Apple-Mail-4-231779869--
--Apple-Mail-5-231779877
content-type: application/pgp-signature; x-mac-type=70674453;
name=PGP.sig
content-description: This is a digitally signed message part
content-disposition: inline; filename=PGP.sig
content-transfer-encoding: 7bit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (Darwin)
iD8DBQFAmPOv+6rGH1tFACgRAoswAKCVZkeoL54k2Cxi2fRE42UkjtIF+gCgwGgY
BCI4u7RKKrnj/thHFssoQlA=
=lg/8
-----END PGP SIGNATURE-----
--Apple-Mail-5-231779877--