Re: CD Lesefehler

From: J Wunsch <j(at)uriah.heep.sax.de>
Date: Mon, 10 Apr 2000 22:35:41 +0200

As Marc Santhoff wrote:

> Der Fehler tritt reproduzierbar auf verschiedenen Laufwerken auf,
> kann man dem CD-Treiber nicht sagen, er soll ohne Fehlerprobe
> einfach die Daten rausrücken?

Wahrscheinlich bekommt er sie schon nichtmal mehr vom Laufwerk.

Hier ein Ausschnitt aus SCSI-2 dazu:

  ``An L-EC uncorrectable data error is defined as a block which could
not be corrected by layered error correction within the read retry
count.''

Man kann das Laufwerk sicher auch umkonfigurieren, daß es den Block
dennoch zurückgibt (TB bit in Modepage 1), aber Du müßtest dem Treiber
auch noch begreiflich machen, daß er die Daten dann trotzdem in den
user buffer überträt. Dilemma: das verstößt gegen die Unix-Semantik.
Entweder gibst Du nämlich eine -1 zurück im Syscall (weil ja ein
Fehler aufgetreten ist), dann weiß der Aufrufer aber nicht, was im
Puffer passiert ist und muß ihn als ungültig ansehen, oder Du gibst
die Anzahl der tatsächlich übertragenen Bytes, aber dann sieht die
Applikation _gar keinen_ Fehler. That's not good... Es ist ja
ohnehin fraglich, ob jemand mit dem Datenschrott, der da rausgequollen
kommt, noch was Sinnvolles anfangen kann (die Daten sind ja definitiv
im Eimer, wenn bereits 288 ECC-Bytes pro 2048 Datenbytes nicht genügt
haben!). Da die Aufzeichnung selbst ein Bitstrom ist, mußt Du Dich
also auch auf sowas wie Bitverschiebungen bzw. -inversion gefaßt
machen, wenn Du das Resultat dann ansiehst. Is this really what you
want? ;-) Btw., es sollte auch möglich sein, diesen einen fehlerhaften
Block mit einem `camcontrol cmd' zu lesen.

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL
http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 10 Apr 2000 - 22:50:25 CEST

search this site