hi there, i am getting the following error when using burncd to burn a regular data-iso: burncd: ioctl(CDRIOCFIXATE): Input/output error this is how i usually run burncd: burncd -s max -e -f /dev/acd0 data xyz.iso fixate however i'm able to mount the cd although fixation fails. running dd if=/dev/acd0 of=check.iso bs=2048 gives me this warning: dd: /dev/acd0: Input/output error doing a diff between xyz.iso and check.iso reveals no differences. so the only problem is the fixation of the cd. i believe this is a timeout problem, because if i run burncd with speed set to 1 the cd gets fixated just fine (no ioctl(CDRIOCFIXATE) error anymore). however the the dd-warning still comes up. i don't really know why the dd-warning doesn't dissapear. maybe this is a completly different issue? no idea. as far as i remember this issue (ioctl(CDRIOCFIXATE): Input/output error) has always been present in burncd (since RELENG4 oder RELENG5). i found a PR in feedback state dealing with this problem (http://www.freebsd.org/cgi/query-pr.cgi?pr=95979&cat=bin). the PR includes a patch which i applied. however that didn't solve the issue. the problem seems to be the timeout variable used in acd_fixate() in sys/dev/ata/atapi-cd.c. it get's set to: int timeout = 5*60*2; changing timeout to a higher value doesn't make much of a difference though, because it gets altered a bit further down in the src. that's the reason the patch didn't fix the issue for me. this is the code where timout gets altered again: /* some drives just return ready, wait for the expected fixate time */ if ((error = acd_test_ready(dev)) != EBUSY) { timeout = timeout / (cdp->cap.cur_write_speed / 177); pause("acdfix", timeout * hz / 2); return acd_test_ready(dev); } it seems my drive doesn't return EBUSY, although it's still busy. that's why burncd runs this delay block. the problem seems to be that timeout gets set to: timeout / (cdp->cap.cur_write_speed / 177) which in my case is too low. maybe somebody can take a brief look an growisofs to see which timeout values during fixation are being used. unfortunately running burncd in test mode doesn't perform a fixation-check. so to test any new timeout setting one has to actually burn a cd. maybe somebody else is having the same problem and wants to try setting timeout = timeout / (cdp->cap.cur_write_speed / 177); to timeout = timeout / ((cdp->cap.cur_write_speed / 177) / 2); or some other vlaue. cheers. alexReceived on Sun Dec 14 2008 - 13:40:30 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:38 UTC