Hello!
On Tue, 26 Dec 2006, Luigi Rizzo wrote:
I suggest the following two fixes:
1. change burncd.c as below, so that if CDRIOCGETPROGRESS does not return
anything good, it calls CDIOCRESET to determine when the command
is complete.
This can be improved by calling CDIOCRESET unconditionally as a
termination test
2. change atapi-cd.c to return something even if ATA_SENSE_VALID is
unset. Apparently there is a lot of non-complying hardware around
so restricting to what the spec says is like shooting ourselves
in the foot.
Again, if burncd.c uses CDIOCRESET to determine the completion
of the 'blank' operation, we don't care if the return value from
CDRIOCGETPROGRESS is incorrect, because we don't rely on it.
Patches below (to be improved to make CDIOCRESET unconditional).
Does this satisfy all ?
Thanks, Luigi, you rule OK! As I've said before, atapi-cd.c part of these
changes seems to be effectively NOOP with my TEAC's drive
acd0: CDRW <CD-W540E/1.0C> at ata1-master UDMA33
But burncd.c patch definitely works! It's output is somehow ugly:
[EMAIL PROTECTED] burncd -f /dev/acd0 -s 10 blank
blanking CD - 17sec 0 % done -1 (interim status)
blanking CD - 39sec 0 % done 0 (final status)
[EMAIL PROTECTED]
but the operation finishes w/o pressing Ctrl-C. Now I can use aggregate
commands such as 'blank data xxx fixate':
[EMAIL PROTECTED] burncd -f /dev/acd0 -s 10 blank data memtest86+-1.65.iso
fixate
blanking CD - 39sec 0 % done 0
next writeable LBA 0
writing from file memtest86+-1.65.iso size 900 KB
written this track 900 KB (100%) total 900 KB
fixating CD, please wait..
burncd: ioctl(CDRIOCFIXATE): Input/output error
[EMAIL PROTECTED]
Fixate still issues 'ioctl(CDRIOCFIXATE): Input/output error', but AFAICT
the resulting media is OK.
Thank you again for digging this problem!
cheers
luigi
Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail: [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"