[summary] Re: burncd 'blank' not terminating ?
dmitry at atlantis.dp.ua
Wed Dec 27 01:11:49 PST 2006
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:
root at lion# burncd -f /dev/acd0 -s 10 blank
blanking CD - 17sec 0 % done -1 (interim status)
blanking CD - 39sec 0 % done 0 (final status)
root at lion#
but the operation finishes w/o pressing Ctrl-C. Now I can use aggregate
commands such as 'blank data xxx fixate':
root at lion# 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
root at lion#
Fixate still issues 'ioctl(CDRIOCFIXATE): Input/output error', but AFAICT
the resulting media is OK.
Thank you again for digging this problem!
Atlantis ISP, System Administrator
e-mail: dmitry at atlantis.dp.ua
More information about the freebsd-stable