Aus LinuxUser 05/2001

Burn-Proof unter Linux

Heiße Scheiben sicher hergestellt

CD-Brennen ist schon lange kein Hexenwerk mehr, seit immer schnellere Festplatten und Computer eingesetzt werden. Aber auch in der heutigen Zeit der Gigahertz-CPUs bricht hin und wieder der Brennvorgang verfrüht ab, weil das System nebenher noch andere Aufgaben erfüllt. Mit BURN-Proof-Technik sollen verbrannte Rohlinge der Vergangenheit angehören.

Ursache für die meisten Brennabbrüche sind sogenannte Buffer-Underruns. Dabei hat der CD-Brenner alle im Schreib-Puffer (Write-Buffer) gespeicherten Daten auf die CD gebracht und wartet nun auf Daten vom Computer. Wird der Puffer nicht rechtzeitig wieder gefüllt, bricht der Brenner den Schreibvorgang ab.

Der Grund dafür ist, dass die Daten der CD mit konstanter Geschwindigkeit geschrieben werden müssen. Ein Absetzen und späteres Fortführen war bislang nicht möglich. Entscheidend für eine konstante Geschwindigkeit ist dabei nicht die Drehgeschwindigkeit der CD, sondern der Weg des Lasers auf der CD-Oberfläche. Innen sind die Spuren kürzer, außen länger. Um mit einer konstanten Datenrate lesen zu können, dreht das CD-ROM beim Lesen der inneren Spuren hörbar schneller als im Außenbereich. Man spricht von CLV (Constant Linear Velocity), der Laser überstreicht also immer den selben Weg pro Zeit. Im Falle von Single-Speed-Geräten beträgt die Datenrate 2352 mal 75 = 176400 Bytes pro Sekunde. Ein Brenner mit zwölffacher Beschleunigung schreibt folglich 12 mal 176400 Bytes pro Sekunde, das sind etwas mehr als 2 MByte pro Sekunde. Diese Datenmenge muss der Computer stets liefern.

Sobald der Computer die Daten nicht mehr schnell genug zum CD-Brenner transportieren kann, zum Beispiel weil die CPU gerade ausgelastet ist, kommt es zu einem Buffer-Underrun – der interne Pufferspeicher des CD-Brenners ist leer, und der Brennvorgang muss abgebrochen werden. Die entstandene CD-ROM ist unvollständig und in der Regel unbrauchbar.

Lösungsansätze

Da dieses Problem schon länger bekannt ist, wurden mehrere Verfahren zur Vermeidung entwickelt. Als erstes ist der vorher schon angesprochene Puffer im CD-Brenner selbst zu nennen. Er hat bei den neueren Brennern eine Kapazität von 2–4 MB und reicht so bei maximaler Brenngeschwindigkeit für etwa 1,5 bis 2 Sekunden. Auch die Brenner-Software baut im Speicher einen Puffer auf. Beim Brenn-Programm cdrecord kann man die Größe frei wählen, standardmäßig sind es 4 MB.

Das neueste Verfahren zur Vermeidung von Buffer Underruns kommt von Sanyo und nennt sich BURN-Proof (Buffer Under RuN error Proof, http://www.sannet.ne.jp/BURN-Proof/). Diese Methode versucht nicht, die Buffer Underruns zu verhindern, sondern deren Folgen. Ein kleiner Mikrokontroller direkt im CD-Brenner überprüft ständig den Füllstand des eingebauten Puffers und leitet im Falle eines drohenden Buffer Underruns (Puffer weniger als 10% gefüllt) ein geordnetes Verfahren zum Beenden des Brennvorganges ein. Sind die letzten Daten auf die CD-R geschrieben, merkt sich der Chip, wo sich diese befinden. Sobald der Puffer wieder voll ist, muss die CD-Brenn-Software den Brennvorgang wieder starten, d. h. auch die Software muss BURN-Proof unterstützen. Darauf startet der Mikrokontroller den Brennvorgang wieder direkt dort, wo die letzen Daten gebrannt wurden. Ähnliche Verfahren gibt es noch von Ricoh, wo sich das ganze „JustLink“ nennt, und auch Yamaha hat etwas entsprechendes mit dem Namen „Wast-Proof Write Strategy“ angekündigt. Auf dem Markt hat sich bis jetzt aber nur BURN-Proof durchgesetzt, und auch Linux unterstützt bei Verwendung von cdrecord oder cdrdao ab Version 1.1.5 bis jetzt nur diese Technologie.

BURN-Proof verwenden

Ob ein Laufwerk BURN-Proof unterstützt, kann man einfach mit dem Kommando

# cdrecord -checkdrive dev=0,X,0 driveropts=help
 Cdrecord 1.10a16 (i586-pc-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling
 […]
 Driver options:
 burnproof      Prepare writer to use Sanyo BURN-Proof technology
 noburnproof    Disable using Sanyo BURN-Proof technology

feststellen (das X kann via cdrecord -scanbus bestimmt werden – im Kasten IDE Brenner unter Linux finden Sie ein Beispiel). Aktiviert wird BURN-Proof dann einfach, indem man zu dem normalen cdrecord-Befehl den Parameter driveropts=burn-proof hinzufügt.

Und funktioniert’s?

Aber jetzt mal zur Praxis: Wir hatten fünf Laufwerke mit BURN-Proof und ein Laufwerk mit JustLink von Ricoh im Test. Mit Hilfe des Ricoh-Laufwerks konnten wir feststellen, dass JustLink nicht einfach ein anderer Name für BURN-Proof ist – es muss auch anderes aktiviert werden; cdrecord kann das nicht. Bei allen anderen Laufwerken kam es dagegen zu keinen Problemen – weder mit SCSI noch mit ATAPI. Es war jedoch deutlich schwieriger als erwartet, die CD-Brenner auf BURN-Proof zu testen. Da cdrecord die POSIX-Echtzeit-Erweiterung nutzt, hat es eine höhere Priorität als alle anderen Prozesse; nur der Kernel steht noch darüber – hier kann man also nicht ansetzen. Auch ist es illusorisch, den IDE-Bus so zu blockieren, dass die Daten nicht mehr schnell genug zum Brenner kommen – kein aktuelles IDE-Gerät schafft es, den IDE-Bus dauerhaft zu überfordern. Bleibt nur noch, die Daten, welche auf die CD gebrannt werden sollen, zu behindern, bevor sie zu cdrecord kommen. So haben wir die Daten „on the fly“ (also ohne Zwischenspeicherung auf Festplatte) mit mkisofs erzeugt und diesen Prozess durch Erniedrigen seiner Priorität und Starts vieler anderer Prozesse zum Stillstand gebracht. So haben wir es dann schließlich bei allen Laufwerken geschafft, einen Buffer-Underrun zu fabrizieren, und BURN-Proof hat sie stets abgefangen (cdrecord gibt dabei keine Meldung aus).

Fazit

Alle Brenner mit BURN-Proof funktionierten einwandfrei, die Unterbrechung des Datenstroms hatte auf die Lesbarkeit der CDs keine Auswirkungen. Sanyo gibt jedoch an, dass mit BURN-Proof erstellte CDs besser mit einem 4x-CD-ROM oder einem CD-Player mit Baujahr nach 1995 gelesen werden sollten. Jede Schreibunterbrechung hat eine kurze Lücke zur Folge, die ältere Laufwerke unter Umständen außer Tritt bringen könnte.

Einzig das Ricoh-Laufwerk produzierte unlesbare Rohlinge im Test, weil das notwendige JustLink-Feature zur Zeit von keinem Linux-Brennprogramm unterstützt wird. Im Falle einer Anschaffung sollten Sie deshalb vorher nachsehen, ob cdrecord oder cdrdao mit dem jeweiligen Brenner klar kommt – und im Zweifel auf BURN-Proof-Laufwerke zurückgreifen. Angesichts der Leistungsfähigkeit heutiger Rechner stellt sich allerdings die Frage, ob man wirklich ein Gerät mit dieser Technik benötigt. Zumindest unter Linux stellen „verbrannte“ CDs doch eher eine Rarität dar.

Übersicht

 
Hersteller Lite-On Plextor Plextor Plextor Ricoh Teac
Website http://www.liteonit.com.tw http://www.plextor.be http://www.plextor.be http://www.plextor.be http://www.ricoh.de http://www.teac.de
:Modell LTR-12101B PX-W1210A PX-W1210S PX-W1610A MP9120A-DP W512E
:Straßenpreis 420 DM 550 DM 850 DM 625 DM 650 DM 450 DM
:Geschwindigkeit (Schreiben/Wiederbeschreiben/Lesen) 12/10/32 12/10/32 12/10/32 16/10/40 12/10/32(/8 DVD) 12/10/32
:Anschluss ATAPI ATAPI SCSI ATAPI ATAPI ATAPI
:Buffer-Underrun-Schutz BURN-Proof BURN-Proof BURN-Proof BURN-Proof JustLink BURN-Proof
:Geschwindigkeitstest:
:Brennen CDR [kB/s] 1750 1736 1747 2265 1761 1739
:Fixieren CDR [s] 25,3 24,2 24,6 18,9 22,9 27,9
:Brennen CDRW [kB/s] 1212 1278 1272 1107 1406 1302
:Fixieren CDRW [s] 28,0 33,8 34,1 33,7 35,4 34,4
:Lesen CD-ROM [kB/s] 2145 2479 2512 3094 2483 2414
:Lesen Audio (Spielzeit/Lesezeit) 2,27 5,45 6,06 5,22 1,86 3,05
LinuxUser 05/2001 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: