CDRECORD(1)

Diese Dokumentation ist möglicherweise unvollständig oder fehlerhaft. Lesen Sie bitte das englische Original von Jörg Schilling. Diese Version gilt nur für cdrecord, Version 1.10a04.

NAME
cdrecord - schreibt Audio- oder Daten-CDs aus Image-Datei(en).

ÜBERSICHT
cdrecord [ Grundoptionen ] dev=Gerät [ Track-Optionen ] track1...trackn

BESCHREIBUNG
Cdrecord wird verwendet, um Daten- oder Audio-CDs mit einem "Orange-Book"-kompatiblen CD-Recorder zu erstellen.

Das zu verwendende Gerät wird durch scsibus/target/lun des CD-Recorders angegeben. Kommunikation auf SunOS wird mit dem SCSI-Generaltreiber sgc bewerkstelligt. Andere Betriebssysteme benutzen eine Simulation dieses Treibers. Mögliche Syntax dafür ist: dev= scsibus,target,lun oder dev= target,lun. Im letzteren Fall muß der CD-Recorder an dem primären SCSI-Bus des Rechners angeschlossen sein.

Scsibus, target und lun sind Ganzzahlen. Einige Betriebssysteme oder Implementierungen des SCSI-Transports benötigen möglicherweise die Angabe eines zusätzlichen Dateinamens. In diesem Fall sieht die korrekte Syntax für das Gerät so aus: dev= devicename:scsibus,target, oder dev= devicename:target,lun. Wenn der Name des Geräten-"nodes" auf exakt ein SCSI-Gerät verweist, kann die Kurzform dev= devicename :@, oder dev= devicename:@,lun anstelle von dev= devicename:scsibus,target verwendet werden. Um Cdrecord portabel auf alle UNIX-Plattformen zu machen wird die Syntax dev= scsibus,target,lun bevorzugt, weil es kein BS-spezifisches Wissen über die Gerätenamen erfordert. Das jeweilige Betriebssystem muss entweder eine Möglichkeit zur Angabe eines realen Geräte-Dateinamen oder zur Angabe von devicename:scsibus,target bieten.

Scsibus 0 ist der primäre SCSI-Bus des Rechners. Beobachten Sie die Boot-Meldungen oder suchen Sie in /var/adm/messages nach mehr Informationen über die SCSI-Konfiguration ihres Computers. Falls es dann immer noch nicht möglich ist, die richtigen scsibus,target,lun - Werte herauszufinden, versuchen Sie die -scanbus Option von cdrecord, wie es unten beschrieben ist.

Als Parameter der dev= Option kann auch ein Name des Geräts aus der Datei /etc/default/cdrecord angegeben werden, falls diese Datei vorhanden ist (siehe DATEIEN-Abschnitt unten).

Auf SVr4 kompatiblen Systemen benutzt cdrecord die Echtzeit-Klasse, um die höchstmögliche Priorität zu erlangen (höher als die aller anderen Kernelprozesse). Auf Systemen mit dem POSIX real time scheduling benutzt Cdrecord ebenfalls real time scheduling , wird aber möglicherweise keine höhere Priorität als die anderen Kernelprozesse erhalten.

Im Track At Once - Modus entsteht jeder Track aus einer einzigen Datei, die vorgefertigte Daten für diesen Track enthält. Bei angegebener Option `-' wird die Standardeingabe für diesen Track verwendet. Nur ein einziger Track wird von der Standardeingabe gelesen.

GRUNDOPTIONEN

Grundoptionen müssen vor den Tracks oder Track-Optionen angegeben werden.

-version
    Gibt die Versionsnummer aus und beendet das Programm.

-v (verbose - informationsreich, geschwätzig)
    Diese Option wird verwendet, um Informationen während des Brennvorgangs auszugeben. Jedes weitere v erhöht die Anzahl der Meldungen.

-V  Jedes V erhöht den Informationsreichtum über den "SCSI command transport" um eine Stufe. Es hilft, um Probleme mit dem CD-Recorder während des Brennvorgangs zu untersuchen. Falls Sie nicht nachvollziehbare Probleme während des Brennvorgangs bekommen, benutzen Sie diese Option um den Fehler zu identifizieren. -VV zeigt zusätzlich den Puffer-Inhalt an. Benutzung von -V oder -VV verlangsamt den Prozeß und kann dadurch zur Ursache eines Buffer-Underruns werden.

-debug
    Gibt zusätzliche Informationen für die Fehlersuche/behebung aus. Es kann sehr hilfreich sein, vor allem bei der Suche nach Problemen mit Sektor-Größen und Sektor-Typen. Benutzung von -debug verlangsamt den Prozeß und kann dadurch zur Ursache eines Buffer-Underruns werden.

-force
    Erzwingt die Fortsetzung trotz bestimmter Fehler. Diese Option implementiert zur Zeit einige Tricks, die für das Löschen von beschädigten CD-RWs notwendig sind.

-dummy (Simulation)
    Der CD-Brenner passiert alle Schritte des Brennvorgangs ohne den Laser zu aktivieren. Es wird empfohlen, vor dem richtigen Brennvorgang mehrere Tests damit durchzuführen, falls die Geschwindigkeit des Systems nicht ausreichend bekannt ist.

-dao
    Schaltet in den Disk At Once Modus. Dies funktioniert zur Zeit nur mit MMC-Laufwerken, die den non-raw- Session At Once Modus beherrschen.

-multi
    Erlaubt die Herstellung von Multisession-CDs. Diese Option muss bei allen Sessions angeben werden, ausser bei der letzten Session der CD. Die Art der Fixierung erlaubt den späteren Anschluß mehrerer Sessions. Auf diese Weise erstellte CDs sind zu den industriell hergestellten CDs nicht mehr 100%ig kompatibel(CDplus ausgenommen). Benutzen Sie es nur für die Erstellung einer Multisession-CD. Bei der Benutzung dieser Option wird standardmäßig der Track-Typ CD-ROM XA mode 2 ausgewählt. Die Sony-Geräte haben keine Hardware-Unterstützung für CD-ROM XA mode 2. Verwenden Sie in diesem Fall die Option -data. Solange Cdrecord keinen Coder zum Konvertieren von Datensektoren zu Audiosektoren enthält, müssen Sie CD-ROM Sektoren durch die the -data -Option erzwingen, wenn Sie eine Multisession-Disk im DAO/SAO-Modus erstellen möchten. Nicht alle Laufwerke erlauben Multisession-CDs im DAO/SAO-Modus.

-msinfo
    Liest Multisession-Informationen aus, in einer Form, wie sie von mkisofs-1.10 gelesen werden kann.

    Diese Option ist nur mit CD's sinnvoll, die mindestens eine abgeschlossene Session enthalten und noch nicht richtig abgeschlossen sind. Einige Laufwerke produzieren Fehlermeldungen falls es versucht wird, Multisession-Info von einer abgeschlossenen CD-ROM auszulesen.

-toc
    Liest und gibt die Inhaltstabelle (table of content) oder PMA der CD aus. Diese Funktion funktioniert sowohl mit CD-Brennern als auch mit einfachen CD-ROM-Laufwerken.

-atip
    Liest ATIP-Informationen (absolute Time in Pregroove) eines CD-R- oder CD-RW-Mediums und gibt sie aus. Wenn das vorliegende Laufwerk das Auslesen von ATIP-Informationen nicht beherrscht, wird nur ein Teil der Informationen oder überhaupt nichts angezeigt. Nur wenige MMC-kompatiblen Laufwerke unterstützen das Auslesen von ATIP-Informationen.

    Wenn cdrecord in der Lage war, die Start-Zeit im Lead-In der der ersten Session zu lesen, wird der Versuch unternommen die Daten des Medienherstellers zu dekodieren und anzuzeigen.

-fix
    Die CD wird abgeschlossen (u.a. wird die TOC für die CD-ROM-Laufwerke geschrieben). Es ist nützlich, wenn die CD bereits beschrieben, aber noch nicht abgeschlossen ist. Diese Option funktioniert z.Z. nicht bei alten TEAC-Laufwerken (CD-R50S und CD-R55S).

-nofix
    Die CD wird nach der Fertigstellung nicht abgeschlossen. Dies könnte nützlich sein, um eine Audio-CD in mehreren Schritten zu beschreiben. Eine nicht abgeschlossene CD kann i.d.R. nicht mit einem einfachen CD-Laufwerk gelesen werden, es gibt aber Audio-CD-Player, die damit keine Probleme haben.

-load
    Zieht die CD ein und beendet das Programm. Dies funktioniert nur mit Schubladen-Mechanismen, kann sich aber auch bei einem Kodak-Disk-Transporter als nützlich erweisen.

-eject
    Wirft die CD aus, sobald die Arbeit beendet ist. Einige Geräte (u.a. Philips) brauchen einen Auswurf des Mediums, bevor sie mit einem neuen arbeiten können. Die Ausführung eines -dummy-Testlaufs mit anschließendem Brennvorgang wird bei diesen Geräten nicht funktionieren.

speed=#
    Setzt die Geschwindigkeit (x-Faktor) für den Brennvorgang auf #. # ist eine Ganzzahl und entspricht dem Multiplikator im Vergleich zu der normalen Audio-Geschwindigkeit (etwa 150 KB/s bei CD-ROM bzw. 172 KB/s bei Audio-CD). Wenn die speed -Option nicht angegeben ist, versucht cdrecord Sie aus der Umgebungsvariable CDR_SPEED zu lesen. Falls ihr Laufwerk Probleme mit speed=2 oder speed=4, hat, versuchen Sie speed=0.

blank=Methode
    Löscht eine CD-RW und beendet das Programm oder löscht eine CD-RW, bevor Sie beschrieben wird. Es kann mit einer der folgenden Methoden gelöscht werden:

    help
        Zeigt eine Liste mit allen möglichen Methoden.

    all Löscht die gesamte CD. Dies könnte eine Weile dauern.

    fast
        Schnelles Löschen. Dabei werden nur PMA, TOC und das Pregap gelöscht.

    track
        Löscht einen Track.

    unreserve
        Gibt einen reservierten Track wieder frei.

    trtail
        Löscht das Ende eines Tracks.

    unclose
        Gibt die letzte Session wieder frei.

    session
        Löscht die letzte Session.
Wenn dabei der Schalter -force angegeben wird, kann diese Option dazu benutzt werden, CD-RW-Medien zu formatieren, die sonst nicht gelöscht/formatiert werden können. Sie werden wahrscheinlich blank=all auswählen müssen, weil sonst einige Laufwerke mit bestimmten CD-RW-Typen nicht weitermachen können. Cdrecord tut sein bestes, wenn der -force -Schalter verwendet wird, aber es hängt letztendlich nur von der Firmware des Laufwerks ab, ob der Löschvorgang gelingen wird, oder eben nicht.

fs=#
    Setzt die FIFO-Größe (Puffer-Größe) auf #. Die Syntax der Angabe ist die gleiche wie bei dd(1), sdd(1) oder star(1) bzw. tar(1). Die Nummer repräsentiert die Größe in Bytes, sofern es nicht anderswo spezifiziert ist. Wenn in Anschluß an die Zahl ein Buchstabe wie `b', `k', `m', `s' oder `f' folgt, wird die Größe mit 512, 1024, 1024*1024, 2048 oder 2352 multipliziert. Wenn die Größe aus mehreren, durch `x' oder `*' getrennten Zahlen besteht, wird die Multiplikation dieser Zahlen ausgeführt, z.B. ergibt fs=10x63k eine Puffer-Größe von 630 KBytes.

    Die mit fs= angegebene Größe beinhaltet den geteilten Arbeitsspeicher, der für die Verwaltung benötigt wird. Es ist mindestens eine Seite des Speichers. Wenn die fs= Option nicht vorhanden ist, versucht cdrecord denn Wert der FIFO-Größe aus der Umgebungsvariable CDR_FIFOSIZE zu bestimmen. Die voreingestellte FIFO-Größe ist zur Zeit 4 MB.

    Das FIFO wird benutzt, um die Pufferung für den Echtzeit-Schreibprozess zu erhöhen. Z.B. ermöglicht es die Benutzung einer Pipe von mkisofs oder mkhybrid direkt in cdrecord. Wenn der FIFO aktiv ist und eine Pipe von mkisofs zu cdrecord führt, und mkisofs vor dem Brennanfang abbricht, wird cdrecord anhalten, bevor auf die CD geschrieben wird. mkisofs Die empfohlene Größe liegt irgendwo zwischen 4 und 32 MByte. Als Faustregel gilt: FIFO sollte mindestens so groß wie der interne Puffer des Brenners sein und nicht mehr als die Hälfte des vorhandenen Arbeitsspeichers belegen. Wenn die FIFO-Größe groß genug ist, sollte die Statistik keine Leerzustände (empty count) aufweisen und der schlechteste Wert (min fill) sollte nicht unter 20% liegen. Es ist aber auch nicht empfehlenswert, zu viel Speicher für FIFO zu reservieren. Wenn Sie mehr als 8 MB auf einer schwachen Maschine brauchen, ist ihr Rechner überlastet, hat Hardware-Probleme oder ist schlecht konfiguriert. Die sun4c-Architektur (z.B. eine Sparcstation-2) hat nur MMU-Page Einträge für max. 16 MB pro Prozess. FIFO-Größen von mehr als 14 MB bringen das System möglicherweise dazu, viel Zeit mit dem Neuladen der MMU-Tabellen zu verbringen. Neuere Sun-Systeme haben dieses Hardware-Problem nicht. Ich weiss nichts von derartigen Problemen auf PC-Hardware.

    Wenn Sie Buffer-Underruns oder ähnliche Probleme haben und dabei keinen fifo empty count erhalten, dann haben Sie echte Hardware-Probleme. Die FIFO-Größe ist in diesem Fall ausreichend.

dev=target
    Gibt das SCSI-Ziel (target) für den Recorder an, siehe oben. Eine typische Angabe ist hier z.B. dev=6,0. Wenn ein Dateiname zusammen mit der numerischen Angabe benötigt wird, ist der Dateiname von der Implementation abhängig. Der korrekte Dateiname kann in diesem Fall in den Handbüchern des jeweiligen Betriebssystems gefunden werden. Auf einem FreeBSD-System ohne CAM-Unterstützung müssen Sie das "control device" angeben (z.B. /dev/rcd0.ctl). Die korrekte Angabe könnte in diesem Fall so aussehen: dev= /dev/rcd0.ctl:@.

    Unter Linux werden die an den Parallelport angeschlossene Geräte auf einen virtuellen SCSI-Bus abgebildet. Verschiedene Adapter entsprechen verschiedenen "Targets" in diesem virtuellen SCSI-Bus. Wenn die Option dev
     nicht angegeben wird, versucht cdrecord sie aus der Umgebungsvariable CDR_DEVICE zu bestimmen. Wenn der Argument der dev= Option keine Zeichen wie ',', /etc/default/cdrecord interpretiert (siehe Abschnitt DATEIEN).

timeout=#
    Setzt die voreingestellte Zeit der SCSI-Timeouts auf #. Die voreingestellte SCSI-Auszeit (Timeout) ist die kürzeste Zeit, die für für die Übertragung der SCSI-Kommandos benutzt wird. Wenn ein SCSI-Befehl aufgrund der Zeitüberschreitung versagt, können Sie die normale Zeit durch einen Wert ersetzen, der etwas höher als der Timeout des fehlgeschlagenen Befehls liegt. Wenn ein Befehl mit dem erhöhten Timeout korrekt abgearbeitet wird, berichten Sie bitte diesen Wert und den entsprechenden Befehl dem Autor des Programms. Wenn keine timeout Option angegeben ist, wird der voreingestellte Timeout (40s) benutzt.

driver=name
    Erlaubt die Benutzung eines anderen Treibers. Um eine Liste aller verfügbaren Treiber zu bekommen, geben Sie bitte driver=help ein. Der Grund für die Existenz dieser Option ist es, dem Anwender die Benutzung von cdrecord mit einem anderen Gerät zu erlauben, der zwar ähnlich einem unterstützen ist, aber von cdrecord nicht automatisch erkannt wird. Benutzen Sie diese Option mit extremer Vorsicht! Die Gefahr, den Datenträger unwiderruflich zu beschädigen ist durch die Benutzung eines anderen Treibers sehr gross. Das kleinste Übel, daß dabei auftreten kann ist die Fehlfunktion der Schalter -speed oder -dummy. Es gibt 2 spezielle "driver"-Einträge in der Liste: cdr_simul und dvd_simul. Diese Einträge wurden entwickelt, um "Timing"-Tests mit beliebiger Geschwindigkeit auf Laufwerken zu testen, die die "-dummy"-Option nicht unterstützen. Die Simulation-Treiber implementieren ein Laufwerk mit der Puffergrösse 1MB, die über die CDR_SIMUL_BUFSIZE Umgebungsvariable verändert werden kann. Der Simulation-Treiber simuliert auch die "Buffer underrun"-Situationen korrekt. Bei der Angabe der "-dummy" Option wird die Simulation damit auch im Falle eines "Buffer underruns" nicht abgebrochen.

-checkdrive
    Überprüft das Vorhandensein eines passenden Treibers und beendet das Programm. Wenn das Gerät bekannt ist, gibt cdrecord beim Beenden den "exit code" 0 aus.

-prcap
    Gibt Informationen über die Fähigkeiten eines SCSI-3/mmc-kompatiblen Laufwerks, die von der mode page 0x2A gelesen wurden. Werte, die mit kB markiert sind, benutzen 1000 Bytes als Kilobyte, die mit KB markierten Werte benutzen 1024 Byte als Kilobyte.

-inq
    Analysiert das Gerät und gibt die Informationen aus.

-scanbus
    Durchsucht den/die SCSI-Bus(e) nach SCSI-Geräten und gibt die abgefragten Namen/Gerätestrings aus. Diese Option kann benutzt werden, um die SCSI-Adresse des CD-Brenners herauszufinden. Die ausgegebenen Nummern erscheinen in der Form: bus * 100 + target

-reset (zurücksetzen)
    Führt einen SCSI-Reset auf dem Bus aus, der den CD-Recorder ansteuert. Es funktioniert nicht auf allen Betriebssystemen.

-ignsize
    Ignoriert die erkannte Größe des Mediums. Diese Option sollte mit extremer Vorsicht benutzt werden, sie existiert nur für Debug-Zwecke und sollte sonst nie eingesetzt werden. Sie ist nicht notwendig, um mehr Daten zu schreiben, als die Nominalkapazität erlaubt.

-useinfo
    Wenn diese Option verwendet wird, werden die Informationen über Pausenlänge(n) aus den *.inf-Dateien gelesen, die den Dateien mit den Audiodaten für den jeweilige Audiospur entsprechen.

defpregap=#
    Setzt die Pausenlänge für die Pause zw. den Tracks (mit Ausnahme von dem Ersten). Diese Option funktioniert z.Z. nur mit dem TEAC-Laufwerk, weil dieser auch im "Track At Once"-Modus ohne den 2-Sekunden-Pausen vor jedem Track arbeiten kann.
    Diese Option wird in der Zukunft möglicherweise verschwinden.

-packet
    Aktiviert den Paket-Schreibmodus. Dies ist eine experimentelle Funktion.

pktsize=#
    Stellt die Paket-Größe auf # ein und erzwingt Fixed-Paket-Modus. Dies ist eine experimentelle Funktion.

-noclose
    Schließt den aktuellen Track nicht ab, nützlich im Paket-Schreibmodus. Dies ist eine experimentelle Funktion.

mcn=med_cat_nr
    Definiert med_cat_nr. als die neue Katalognummer des Mediums (Media Catalog Number) .

TRACKOPTIONEN

Trackoptionen können zwischen den Track-Dateinamen angebracht werden.

isrc=ISRC_number
    ISRC_number gibt die International Standard Recording Number für den nachfolgenden Track an.

index=list
    Bestimmt die Indexliste für den folgenden Track. Die Indexliste ist eine mit Kommas getrennte Zahlenreihe, die vom Index 1 zählen. Der erste Eintrag in der Liste muss eine 0 enthalten, gefolgt von von Zahlen in aufsteigender Reihenfolge, die den Indexstart repräsentieren (1 Einheit = 1/75 Sekunde). Eine Indexliste der Form: 0,7500,15000 setzt den Index 1 auf den Start der Spur, Index 2 auf 100 Sekunden nach dem Start und Index 3 auf 200 Sekunden nach dem Start.

-audio
    Wenn dieser Schalter vorhanden ist, werden alle nachfolgenden Tracks im CD-DA -Format (=Audioformat, ähnlich dem Red-Book-Format) geschrieben. Die Image-Datei(en) sollten Audio-Daten in Stereo, 16-bit, 44100 sample/s enthalten. Die Anordnung der Bytes sollte etwa so aussehen: MSB links, LSB links, MSB rechts, LSB rechts, MSB links u.s.w. Die Tracks sollten aus einer Anzahl von 2325-Byte großen Blöcken bestehen. Es ist nicht immer möglich, ein exaktes Image eines Audio-Tracks auf eine CDR zu schreiben, weil die Daten in 2353-Byte-Blöcken während des Brennprozesses gelesen werden.

    Wenn der Dateiname mit .au oder .wav endet, wird die Datei wie eine strukturierte Audio-Datei behandelt. Cdrecord nimmt an, daß es sich in diesem Fall um einen Sun Audiodatei oder eine Microsoft .WAV-Datei handelt und extrahiert die Audio-Daten aus diesen Dateien. Es überspringt dabei die Nicht-Audio-Informationen im Kopf der Datei. In allen anderen Fällen wird cdrecord nur richtig funktionieren, wenn der Datenstrom keinen Kopf enthält. Weil viele Audio-Dateien nicht in eine feste Anzahl von Blöcken (1/75s bzw. 2352 Byte) strukturiert sind, ist es oft notwendig, die Option -pad anzugeben. Cdrecord erkennt automatisch, ob die Audiodaten in der .WAV-Datei in Intels (little-endian) Format gespeichert sind, und wird automatisch die Umkehrung einleiten, wenn der CD-Brenner die Daten mit big-endian-Format erwartet. Cdrecord wird alle Audio-Dateien zurückweisen, die nicht den Red-Book-Voraussetzungen entsprechen (16-bit Stereosamples in PCM Kodierung mit 44100 Samples/s).

    Andere strukturierte Audio-Formate können ebenfalls von cdrecord benutzt werden, solange die Datenstruktur den oben beschriebenen Voraussetzungen entspricht (rohe PCM-Daten in big-endian Byte-Anordnung). Wenn die Datei allerdings einen Kopf enthält, wird dieser als Knackgeräusch am Anfang des Tracks zu hören sein.

    Wenn weder -data noch -audio angegeben wurde, wählt cdrecord automatisch -audio für alle Dateinamen, die mit .au oder .wav enden, und -data für alle anderen Dateien.

-swab
    Bei der Verwendung dieses Schalters wird angenommen, daß die Audiodaten im Byte-umgekehrter (little-endian) Anordnung vorliegen. Einige neue CD-Brenner u.a. Yamaha, Sony und die neueren SCSI-3/mmc-Geräte verlangen die Audiodaten in der little-endian-Ordnung, während sie von anderen Geräten in der big-endian-Ordnung erwartet werden, so wie es normalerweise beim SCSI-Protokoll verwendet wird. Cdrecord weiss, ob der Recorder die Daten im big-endian oder little-endian-Ordnung erwartet und korrigiert den Datenstrom automatisch, wenn das Format nicht dem des Recorders entspricht. Sie werden die Option -swab nur benötigen, wenn die Daten in Intel (little-endian) Byte-Ordnung vorliegen.

    Die detaillierte Ausgaben (-verbose) von cdrecord zeigen ihnen, ob -swab benötigt wird, um die Byte-Ordnung auf den Recorder anzupassen. Cdrecord wird es nicht anzeigen, wenn der -swab -Schalter bereits für einen Track angegeben ist.

-data
    Wenn dieser Schalter vorhanden ist, werden alle nachfolgenden Tracks im CD-ROM mode 1 (Yellow Book) Format geschrieben. Die Daten entsprechen einer Anzahl von 2048-Byte-Blöcken. Die Datei für diesen Track sollte ISO-9660 oder Rock Ridge- Dateisystem-Image enthalten (siehe mkisofs(8) für mehr Details). Wenn der Daten-Track ein ufs -Dateisystem-Image ist, sollte die Fragment-Größe 2 KB oder höher sein, um den CD-Laufwerken mit 2KB-Sektor-Größe das Lesen zu ermöglichen.

    -data ist standardmäßig aktiviert, solange kein anderer Schalter vorhanden ist.

    Wenn weder -data noch -audio angegeben wurde, wählt cdrecord automatisch -audio für alle Dateinamen, die mit .au oder .wav enden, und -data für alle anderen Dateien.

-mode2
    Wenn dieser Schalter angegeben wird, werden alle nachfolgenden Tracks im CD-ROM mode 2 -Format geschrieben. Die Daten entsprechen einer Anzahl von 2048-Bytes.

-xa1
    Wenn dieser Schalter vorhanden ist, werden alle nachfolgenden Tracks im CD-ROM XA mode 1 -Format geschrieben. Die Daten entsprechen einer Anzahl von 2048-Bytes.

-xa2
    Wenn dieser Schalter vorhanden ist, werden alle nachfolgenden Tracks im CD-ROM XA mode 2 -Format geschrieben. Die Daten entsprechen einer Anzahl von 2048-Bytes.

-cdi
    Wenn dieser Schalter vorhanden ist, werden alle nachfolgenden Tracks im CDI -Format geschrieben. Die Daten entsprechen einer Anzahl von 2048-Bytes. -isosize Benutzt die Größe des ISO-9660 Dateisystems als die Größe des nächsten Tracks. Diese Option wird benötigt, wenn Sie das Image von einer "rohen" Partition oder direkt von einer Quell-CD lesen. Im ersten Fall begrenzt die Option -isosize die Größe der CD auf die Größe des Dateisystems. Im zweiten Fall wird die Option -isosize gebraucht, damit cdrecord das Einlesen der letzten 2 Auslaufblöcke verhindert, die jeder CD-Recorder im "Track At Once"-Modus hinzufügt. Diese 2 Blöcke können von dem Quell-Gerät nicht gelesen werden und verursachen so einen Buffer-Underrun. Benutzen Sie diese Option nicht, wenn cdrecord die Track-Daten direkt von der Standardeingabe einliest. Diese Größe kann zur Zeit nicht verwendet werden, um die Größe eines Dateisystems zu bestimmen, wenn die Multisession-Option angegeben wurde.

-pad
    Wenn es sich um einen Daten-Track handelt, werden zu diesem und den folgenden Daten-Tracks je 15 Sektoren Null-Daten hinzugefügt. In diesem Fall wird die -pad -Option auch durch die padsize= -Option verdrängt. -pad gilt dann als eine Abkürzung für padsize=15s. Wenn sich die -pad -Option auf ein Audio-Track bezieht, wird cdrecord die Audiodaten zu einer Mehrzahl von 2352-Bytes-Blöcken erweitern. Dabei wird der letzte (unvollständige) Block mit Null-Bytes (= absolute Stille) aufgefüllt.

    -pad wird automatisch ausgewählt, solange es nicht durch -nopad wieder abgestellt wird (für nachfolgende Tracks).

padsize=#
    Gibt die Menge der Daten an, die zum jeweils nächsten Track angehängt werden. Im Gegensatz zum Verhalten der -pad -Option wird dieser Wert für die restlichen nachfolgenden Tracks auf 0 zurückgesetzt. Siehe fs= -Option für mögliche Argumente. Benutzen Sie diese Option, wenn ihr CD-Laufwerk die letzten Sektoren eines Tracks nicht lesen kann, oder wenn die CD auf einem Linux -System mit dem "ISO-9660 filesystem read ahead bug" verwendet werden soll. Wenn eine leere Datei als Quelle dienen soll, kann es diese Option auch dazu genutzt werden, eine Disk nur aus den "padding"-Daten zu schreiben.

-nopad
    Die nachfolgenden Tracks nicht auffüllen - damit wird die -pad-Option zurückgestellt.

-shorttrack
    Damit wird es erlaubt, nachfolgende Tracks mit weniger als 4 Sekunden Länge zu erstellen, wobei dei "Red Book"-Standard nicht mehr eingehalten wird. Diese Option kann nur im DAO-Modus verwendet werden und ein Laufwerk muss das resultierende CUE-Sheet akzeptieren. Nicht alle Laufwerke können damit umgehen.

-noshorttrack
    Der "Red Book"-Standards muss wieder eingehalten werden, d.h. es werden keine Tracks mit weniger als 4 Sekunden Länge zugelassen. pregap=# Setzt die Pausenlänge für die Pause vor dem nächsten Track. Diese Option funktioniert z.Z. nur mit den TEAC-Laufwerken, wenn "Track At Once"-CDs ohne der 2 Sekunden Pause vor jeder Track erstellt werden sollen.
    Diese Funktion verschwindet möglicherweise in den zukünftigen Versionen.

-preemp
    Wenn dieser Schalter vorhanden ist, werden alle TOC-Einträge für die nachfolgenden Audio-Tracks als gesampelt mit 50/15 µsec preemphfasis angezeigt. Die Daten werden jedoch nicht während des Datentransfers zwischen der Datei und dem Recorder geändert. Diese Option hat keine Wirkung auf die Daten-Tracks.

-nopreemp
    Wenn dieser Schalter vorhanden ist, zeigen alle TOC-Einträge, daß die Audio-Daten mit linearen Daten gemastert sind - dies ist der Normalfall.

tsize=#
    Wenn das Image des nachfolgenden Tracks direkt auf einer Partition vorliegt, gibt diese Option die Menge der Daten auf dieser Disk an. Wenn das Image des nachfolgenden Tracks in einer Datei gespeichert ist, wird die Track-Größe durch die Größe dieser Datei bestimmt. Wenn der Track ein ISO 9660 - Dateisystem enthalten soll, sollte die Option -isosize zum bestimmen der Länge verwendet werden.
    Im "Disk At Once"-Modus und mit einigen Laufwerken, die TEAC's Programmschnittstelle verwenden, muß cdrecord die Länge des Tracks schon vor dem Schreiben bekannt sein. Cdrecord prüft das vor dem Schreiben und bricht ab. Wenn das passiert, sollten Sie zunächst mkisofs -print-size ausführen und die Ausgabe als Argument für die Option tsize= benutzen.
    Siehe fs= -Option für die möglichen Argumente.

BEISPIELE

Für alle unten aufgeführte Beispiele wird angenommen, daß der CD-Recorder an dem primären SCSI-Bus des Rechners angeschlossen ist. Die SCSI-ID sei 2.

Aufnahme einer einfachen CD-ROM mit Double-Speed mit Daten aus der Datei cdimage.raw:

    cdrecord -v speed=2 dev=2,0 cdimage.raw

Herstellung einer Image-Datei mit ISO9660-Dateisystem und Rock-Ridge-Erweiterungen:

    mkisofs -R -o cdimage.raw /home/joerg/master/tree

Herstellung einer Image-Datei mit dem ISO9660-Dateisystem, Rockridge- und Joliet-Erweiterungen (kompatibel zu Windows 95/NT):

    mkisofs -a -R -J -V "Eine_CD" -o cdimage.raw "~/backup"

(Dies benötigt eine aktuelle Version von mkisofs oder mkhybrid). Ein Test der erstellten Datei vor dem Schreiben auf die CD, mit Solaris:

    mount -r -F fbk -o type=hsfs /dev/fbk0:cdimage.raw /mnt

Und mit Linux:

    mount cdimage.raw -r -t iso9660 -o loop /mnt

Nun kann es nochmal mit:

    ls -lR /mnt

überprüft und mit

    umount /mnt

wieder "umounted" werden. Wenn die Gesamtleistung des System ausreichend und die Dateistruktur nicht zu komplex ist, kann cdrecord auch ohne einen CD-Image auskommen. Benutzen Sie einfach die Pipeline:

    mkisofs -J -R /master/tree | cdrecord -v fs=6m speed=2 dev=2,0 -

Die empfohlene FIFO-Größe für die Ausführung einer solcher Pipeline ist 4 MB. Da diese Größe bereits voreingestellt ist, wird die Angabe der Option fs= nur dann benötigt, wenn Sie eine andere Größe verwenden möchten. Falls ihr System bereits ausgelastet ist, sollten Sie auch mkisofs in Echtzeit ausführen: Um die Priorität von mkisofs zu erhöhen, ersetzen Sie den Befehl

    mkisofs -R /master/tree
durch
    priocntl -e -c RT -p 59 mkisofs -R /master/tree

auf Solaris bzw. durch

    nice --18 mkisofs -R /master/tree

auf Systemen, die UNIX International -kompatible Echtzeitverarbeitung nicht unterstützen (z.B. Linux).

Cdrecord läuft mit der Priorität 59 auf Solaris und Sie sollten mkisofs nicht mit einer Priorität höher als 58 ausführen. Auf anderen Systemen sollten Sie mkisofs mit wenigstens nice --18 ausführen.

Herstellung einer CD-ROM ohne einer Image-Datei wurde auf einer Sparcstation-2 mit Yamaha CDR-400 erfolgreich getestet. Es funktionierte mit bis zu 4-facher Geschwindigkeit, solange der Rechner nicht belastet wurde. Ein schnellerer Rechner wäre vermutlich in der Lage, mit 4-facher Geschwindigkeit auch unter Last zu schreiben. Aufnahme einer reinen CD-DA (Audio-CD) mit einfacher Geschwindigkeit (jeder Track ist in der Datei mit dem Namen wie track01.cdaudio, track02.cdaudio, etc. enthalten):

    cdrecord -v speed=1 dev=2,0 -audio track*.cdaudio

Eine Simulation, um den fehlerfreien Betrieb mit Double-Speed zu gewährleisten (Option -dummy wird benutzt):

    cdrecord -v -dummy speed=2 dev=2,0 -audio track*.cdaudio

Herstellung einer Mixed-Mode-CD mit einem ISO9660-Dateisystem aus der Datei cdimage.raw als erstes Track, die restlichen Audio-Tracks werden aus den Dateien track01.cdaudio, track02.cdaudio, etc. erstellt:

    cdrecord -v -dummy dev=2,0 cdimage.raw -audio track*.cdaudio

Vorgehensweise mit einem Brenner, der auf der Angabe der Track-Größe vor dem Schreibvorgang besteht:

    mkisofs -R -q -print-size /master/tree

gibt die Größe aus, die dann durch XXX in

    mkisofs -R /master/tree | cdrecord speed=2 dev=2,0 tsize=XXXs -

übergeben wird. UMGEBUNGSVARIABLEN

CDR_DEVICE
    Enthält z.B. einen Bezeichner für das Gerät in einer akzeptablen Syntax (s.oben) oder seinen Namen aus der Datei /etc/default/cdrecord

CDR_SPEED
    Bestimmt die normale Geschwindigkeit beim Schreiben (siehe auch -speed-Option).

CDR_FIFOSIZE
    Bestimmt die Größe des FIFO (siehe auch fs=-Option).

DATEIEN

/etc/default/cdrecord
    Vorgaben für die folgenden Werte und Optionen können in der Datei /etc/default/cdrecord gesetzt werden. Zum Beispiel: CDR_FIFOSIZE=8m oder CDR_SPEED=2

CDR_DEVICE
    Dies enthält einen Geräte-Bezeichner, der für den Aufruf der SCSI-Transport-Library geeigneter Syntax oder einen Namen aus /etc/default/cdrecord.

CDR_SPEED
    Bestimmt die normale Geschwindigkeit beim Schreiben (s. auch -speed-Option).

CDR_FIFOSIZE
    Bestimmt die Größe des FIFO (siehe auch die fs=-Option). Alle anderen Stellen sind Bezeichnungen für das Gerät im System. Die Namen dürfen keine Zeichen wie ',', '/', '@' oder ':' enthalten. In jeder Zeile folgt dem Namen eine Liste von Angaben, getrennt durch TAB. Zur Zeit werden 3 Einträge erkannt: Die SCSI-ID des Geräts, die normale/erwünschte Geschwindigkeit und die FIFO-Größe, die für dieses Gerät verwendet werden soll. Die Werte für Geschwindigkeit und FIFO-Größe können auf -1 gesetzt werden, damit cdrecord die globalen Einstellungen übernimmt. Eine typische Zeile könnte so aussehen:

    teac1= 0,5,0 4 8m

    yamaha= 1,6,0 -1 -1

    Das teilt cdrecord mit, daß ein Gerät namens teac1 im SCSI-Bus 0, Target 5, Lun 0 liegt und sollte mit 4-facher Geschwindigkeit und FIFO-Größe von 8 MB betrieben werden.

SIEHE AUCH
cdda2wav(1), readcd(1), scg(7), fbk(7), mkisofs(1).

ANMERKUNGEN

Unter Solaris müssen Sie die Volume-Verwaltung abstellen, wenn der SCSI-Transport-Code statt USCSI verwendet werden soll. Selbst Sachen wie "cdrecord -scanbus" werden nicht funktionieren, solange die Volume-Verwaltung aktiv ist.

Im Track At Once -Modus erstellten CDs sind als Vorlage für eine industrielle Massenproduktion ungeeignet. Für solche Projekte wird die Option disk at once benötigt. Trotzdem können mit cdrecord erstellte CDs normalerweise in allen CD-Laufwerken abgespielt werden. Einige ältere Audio-CD-Player könnten jedoch einen 2 Sekunden langen Klick zwischen 2 Audio-Tracks produzieren.

Die kleinste Größe eines Tracks ist 4 Sekunden bzw. 300 Sektoren. Wenn Sie es dennoch mit kleineren Tracks versuchen, wird der CD-Recorder die restlichen Sektoren mit Nullen auffüllen. Es ist kein Fehler, auch wenn die SCSI-Meldung dabei wie ein Fehler aussieht.

Cdrecord wurde mit einem aufgerüsteten Philips CDD-521 Recorder sowohl mit Single- als auch mit Double-Speed auf einer SparcStation 20/502 problemlos getestet, langsamere Systeme sollten ebenfalls funktionieren. Neuere Philips/HP/Plasmon/Grundig-Laufwerke, Yamaha CDR-100 und CDR-102 sollten ebenfalls funktionieren. Der Plasmon RF-4100 läuft, wurde aber noch nicht im Multisession-Betrieb getestet. Ein Philips CDD-521, der noch nicht aufgerüstet ist, wird nicht funktionieren. Der Sony CDU-924 wurde getestet, hat aber noch keine Hardware-Unterstützung für XA-mode2 und kann deswegen keine standardkonforme Multisession-CDs erstellen. Der Ricoh RO-1420C läuft, aber einige Anwender haben anscheinend Probleme mit der Option speed=2, versuchen Sie bitte speed=0 in diesem Fall.

Yamaha CDR-400 und alle neueren SCSI-3/mmc-konforme Geräte sind sowohl mit Single- als auch mit Multisession unterstützt.

Sie sollten mehrere Tests mit allen verfügbaren Geschwindigkeiten mit der Option -dummy durchführen, wenn cdrecord auf einem unbekannten System ausgeführt wird. Das Brennen ist ein Echtzeit-Prozeß! NFS kann den konstanten Datenstrom nicht garantieren! Wenn Sie cdrecord dennoch mit Images, die auf einem per NFS "gemounteten" Dateisystem befinden, einsetzen wollen, sollte der FIFO möglichst groß sein. Ich benutzte cdrecord mit durchschnittlicher Belastung auf einer SS20/502 und sogar noch mit vierfacher Geschwindigkeit auf einer gut ausgelasteten Sparcstation-2 , es wird aber trotzdem empfohlen, die Systemlast während des Schreibvorgangs so niedrig wie möglich zu halten. Wenn Sie sichergehen wollen, daß die Buffer-Underruns nicht von dem Quell-Laufwerk verursacht werden, kann das Kommando

cdrecord -dummy dev=2,0 padsize=600m /dev/null

eine CD mit Nullen zu beschreiben (simulieren). Cdrecord muss als root ausgeführt werden, um direkten Zugriff zu /dev/scg? zu bekommen und sich den Arbeitsspeicher reservieren zu können.

Wenn andere Benutzer den root-Zugang nicht bekommen dürfen, kann cdrecord auch als suid-root installiert werden. Dies erlaubt allen Benutzern, oder einer bestimmten Benutzergruppe, die keine root-Privilegien haben, cdrecord auszuführen. Cdrecord prüft in diesem Fall, ob der reale Benutzer Zugriffsrechte auf die angegebenen Dateien besitzt. Um allen Benutzern die Benutzung von cdrecord, zu gestatten, geben Sie folgendes ein:

        chown root /usr/local/bin/cdrecord
        chmod 4711 /usr/local/bin/cdrecord

Um einer geschlossenen Benutzergruppe Ausführungsberechtigung zu geben, geben Sie folgendes ein:

        chown root /usr/local/bin/cdrecord
        chgrp cdburners /usr/local/bin/cdrecord
        chmod 4710 /usr/local/bin/cdrecord

Ausserdem müssen Sie die Gruppe cdburners auf dem System einrichten und die Personen ihres Vertrauens in diese aufnehmen.

Geben Sie niemals Schreibrechte für Nicht-root-Benutzer für die /dev/scg? Geräte, weil dann jeder ihre gesamten Festplatten formatieren kann !!!

Sie sollten keine älteren Geräte, die mit disconnect/reconnect nicht umgehen können, an den selben SCSI-Bus wie der CD-Brenner oder die Quell-Festplatte anschließen.

Eine CD kann nicht mehr als 99 Tracks beinhalten.

Bei der Erstellung einer CD mit Audio- und Daten-Tracks sollte nur der erste Track Daten beinhalten, da sonst eine CDplus erstellt wird (Multisession-CD mit Audio-Tracks innerhalb der ersten Session und einem angeschlossenen Daten-Track).

Viele Betriebssysteme sind aber nicht in der Lage, mehr als einen (ersten) Daten-Track zu lesen, oder sie brauchen spezielle Software für diese Zwecke.

Mehr Informationen über den SCSI-Befehlssatz eines HP CD-Recorders befinden sich unter:

    http://www.hp.com/isgsupport/cdr/index.html

Falls Sie mehr Informationen über den SCSI-Befehlssatz eines nicht unterstützten Recorders besitzen, kontaktieren sich bitte den Autor (s.u.).

Der Philips CDD 521 CD-Recorder (selbst in der aufgerüsteten Version) hat mehrere Firmware-Bugs. Einige davon machen es notwendig, dem Gerät mehrmals den Saft abzudrehen oder neuzubooten.

Benutzung von cdrecord mit dem schlecht entworfenen Linux SCSI generic Treiber. Sie sollten wissen, daß cdrecord einen Hack benutzt, daß die Funktionalität des scg-Treiber emuliert. Linux enthält mehrere Bugs:

•   Es kann kann nicht überprüfen, ob ein SCSI-Kommando komplett übermittelt wurde.

•   Es kann das SCSI-Stabusbyte nicht auslesen. Aus diesem Grund meldet Cdrecord die fehlgeschlagenen Kommandos nicht in allen Fällen.

•   Es kann nicht den realen DMA-Count des Transfers zurückgeben. Cdrecord kann nicht sagen, ob es hier DMA residual count verblieb.

•   Es kann die Anzahl der gültigen Bytes in "auto-sense-data" nicht bestimmen. Cdrecord kann nicht sagen, ob das Gerät überhaupt irgendwelche Sense-Daten übermittelt.

•   Es holt zu wenige Daten in der Auto-Abfrage (CCS/SCSI-2/SCSI-3 braucht >= 18).

Die FIFO-Prozentangabe wird berechnet, bevor der Datenblock geschrieben ist. Aus diesem Grund wird hier niemals 100%-FIFO angezeigt, sofern FIFO benutzt wird.

DIAGNOSE

Sobald die Meldung

Starting to write CD at speed %d in %s mode for %s session.

erschienen ist, können Sie den Start innerhalb von 9 Sekunden mit ^C abbrechen. Eine typische Fehlermeldung auf ein SCSI-Befehl sieht in etwa so aus:

    cdrecord: I/O error. test unit ready: scsi sendcmd: no error
    status: 0x2 (CHECK CONDITION)
    Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
    Sense Key: 0x5 Illegal Request, Segment 0
    Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
    Sense flags: Blk 0 (not valid)

Die erste Zeile gibt die Information über den Transport des Befehls. Der Text nach der ersten Spalte ist der fehlerhafte Systemaufruf aus der Sicht des Kernels. Es ist i.d.R. ein I/O error (Ein/Ausgabe-Fehler), solange kein anderes Problem aufgetreten ist. Die nächsten Wörter enthalten eine knappe Beschreibung des fehlgeschlagenen SCSI-Befehls. Der restliche Text informiert über Probleme, die bei der Übertragung im SCSI-Bus aufgetreten sind. fatal error bedeutet, daß es nicht möglich war, den Befehl zu übertragen (z.B. weil kein Gerät an der angesprochen Adresse vorhanden ist).

Die zweite Zeile enthält Informationen über den SCSI-Status-Code, der zurückgegeben wurde, falls die Übertragung gelungen ist. Es ist der Fehlercode, den das Gerät ausgibt.

Die dritte Zeile ist ein hex-dump der auf den Befehl automatisch zurückgegebenen Sense-Informationen.

Die vierte Zeile ist der Fehler-Text für den Sense-Schlüssel, sofern dieser verfügbar ist, gefolgt von einer Segment-Nummer, die ausschließlich für copy -Befehl gültig ist. Wenn die Fehlermeldung sich nicht direkt auf den nachfolgenden Befehl bezieht, wird der Text deferred error angehängt.

Die fünfte Zeile ist der Fehler-Text für den Sense-Code und das Sense-Stichwort, sofern dieses bekannt ist. Wenn der Typ des Gerätes bekannt ist, werden die Sense-Codes anhand der Datentabelle in scsierrs.c ausgewertet. Diesem Text folgt eine Fehlernummer für eine vor Ort tauschbare Ersatzeinheit.

Die sechste Zeile enthält die Blocknummer, die den fehlgeschlagenen Befehl wiedergibt, sowie einen Text über bestimmte Fehler. Die Blocknummer ist nicht immer korrekt.

Die folgende Meldung ist kein Fehler:
    Track 01: Total bytes read/written: 2048/2048 (1 sectors).
    cdrecord: I/O error. flush cache: scsi sendcmd: no error
    status: 0x2 (CHECK CONDITION)
    Sense Bytes: F0 00 05 80 00 00 27 0A 00 00 00 00 B5 00 00 00 00 00
    Sense Key: 0x5 Illegal Request, Segment 0
    Sense Code: 0xB5 Qual 0x00 (dummy data blocks added) Fru 0x0
    Sense flags: Blk -2147483609 (valid)

Es informiert nur, daß ein Track zu klein ist und auf 300 Sektoren erweitert wurde.

BUGS

Cdrecord hat sogar noch mehr Optionen als ls(1).

Cdrecord sollte überprüfen, ob die Quelldaten auf das Medium passen. Zur Zeit bekommen Sie in diesem Fall unvorhersehbare Ergebnisse.

Es sollte eine Option fürs Schreiben der Index-Nummern für Audio-Tracks geben.

Es sollte eine Recover-Option geben, die CDs wiederherstellt, die während eines Stromausfalls beschädigt worden sind.

DANKSAGUNGEN

Bill Swartz	(Bill_Swartz@twolf.com)
    Für die Hilfe mit der Treiber-Unterstützung für TEAC-Laufwerke.

Aaron Newsome	(aaron.d.newsome@wdc.com)
    Für die Erlaubnis, an seinem Sony-Laufwerk entwickeln zu dürfen.

Eric Youngdale	(eric@andante.jic.com)
    Für die Unterstützung durch mkisofs.

Gadi Oxman	(gadio@netvision.net.il)
    Für die Tips bezüglich des ATAPI-Standards.

Finn Arne Gangstad	(finnag@guardian.no)
    Für die erste Implementierung des FIFOs.

Dave Platt	(dplatt@feghoot.ml.org)
    Für die Erstellung einer experimentellen Packet-Writing-Unterstützung, die erste Implementation der CD-RW-Unterstützung, den ersten .WAV-Decoder und viele nette Diskussionen über cdrecord.

Chris P. Ross (cross@eng.us.uu.net)
    Für die erste Implementierung von BSDI SCSI rtansport.

Grant R. Guenther   (grant@torque.net)
    Für die erste Implementierung des Parallel-Port-Transports für Linux.

Kenneth D. Merry (ken@kdm.org)
    für die CAM-Portierung auf FreeBSD, zusammen mit Michael Smith (msmith@freebsd.org)

MAILING-LISTEN
Wenn sich an der Weiterentwicklung von cdrecord aktive teilnehmen wollen, können sie die cdwriting Mailing Liste abonnieren in dem Sie eine Email an

        cdwrite-request@other.debian.org

senden und im Text das Wort subscribe einfügen. Die Mail-Adresse dieser Liste ist

        cdwrite@other.debian.org

AUTOR
Jörg Schilling
Seestr. 110
D-13353 Berlin
Deutschland

Berichten Sie Fehler und Vorschläge an:

joerg@schily.isdn.cs.tu-berlin.de oder js@cs.tu-berlin.de oder schilling@fokus.gmd.de

ÜBERSETZUNG

Eduard Bloch <blade@debian.org>
Neuere Versionen dieses Dokumentes, sowie die aktuellste Übersetzung der README-Dateien aus dem cdrecord-Paket finden Sie unter http://sites.inka.de/~W1752/cdrecord/.