Date: Wed, 14 Jul 2004 03:31:21 +0400 From: Yar Tikhiy <yar@comp.chem.msu.su> To: Jean-Sebastien Roy <js@jeannot.org> Cc: freebsd-hackers@freebsd.org Subject: Re: Silent errors when reading CDs Message-ID: <20040713233120.GA79064@comp.chem.msu.su> In-Reply-To: <40EF172C.7020508@jeannot.org> References: <40EF172C.7020508@jeannot.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jul 10, 2004 at 12:07:40AM +0200, Jean-Sebastien Roy wrote: > > I'm currently using FreeBSD 4.10 on an HP D530 SFF. > The system is perfectly stable except for the following problem > I'm unable to understand : > > When I mount a cdrom (mount /cdrom), then calculate the MD5 hash > of a big file on a CD (md5 /cdrom/bigfile), the results are often random: > unmounting, mounting again and calculating again the MD5 often result in > a different value. What disturb me the most is that absolutely no errors > are reported in any log (no read errors for example). > > I thought the CDROM reader, a LITE-ON LTR-48327S PQS3, was the culprit, > so I replaced it with a PLEXTOR DVDR PX-712A and got the exact same > results (i.e. random MD5 values). I checked the RAM using memtest and > got no errors. The problem does not occur for files on the harddisk. Once I had an old noname PC (iP200 in an i430VX motherboard), and I installed a DVD+RW drive into it. Data read from a CD or DVD was damaged with high probability. With hw.ata.atapi_dma set to zero, the probability of data corruption was lower, but still noticable. That's while there were no corruption on burning in DMA or PIO mode. I got used to always checksumming data read or written; it was a real pain in the back. Finally, I dismantled the PC, but kept the DVD-RW drive for a new PC; thus I got rid of the problem once and for all. My conclusion was: If your hardware sucks, you may choose to work around the bugs, but it's usually easier to dump the POS and find a replacement. Of course, you may need to do some testing before you know which part sucks. > hw.ata.atapi_dma is set since both drives support it and it seems to be > required for proper CD/DVD burning. The CD drive is the master on its > own ATA bus. DMA mode on an ATAPI device might be the root of the evil. Alas, a lot of ATA controllers have bugs there. And you'll need DMA mode only for high-speed burning, when PIO mode cannot provide enough throughput--it's not required in general. E.g., I had DVD+Rs burned OK at 2.4x in PIO mode on the P200. Therefore you can at least see if disabling hw.ata.atapi_dma is a workaround for your problem. > While the problem occurs on multiple CDs (mostly RW), to my surprise, I > was not able to reproduce the problem by reading big files on DVDs. Are there CDs in your collection that produce no errors? > Could someone provide me a hint on what to check next or how to fix this > problem ? Can errors on CDs generate such a behavior ? Even a badly scratched CD won't produce damaged data unless read in a brain-dead drive. If your drives work OK with a different ATA controller, then it's probably your present ATA controller to blame. -- Yar
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040713233120.GA79064>