CDRECORD

Section: Schily\'s USER COMMANDS (1)
Updated: Version 1.8
Index

Der Übersetzer übernimmt keine Verantwortung für die Richtigkeit oder Vollständikeit dieses Dokuments. Diese Version gilt nur für cdrecord, Version 1.8.  

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 angeschloßen sein.

Scsibus, target and lun sind Ganzzahlen. Einige Betriebs- systeme 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 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 die BS-speziefisches Wissen über die Gerätenamen nicht erforderlich macht. Ein speziefisches BS muss entweder eine Möglichkeit zur Angabe eines realen Gerätedatei-Namen oder zur Angabe von devicename:scsibus,target Scsibus0 ist der vorgegebene SCSI Bus des Rechners (?). Beobachten Sie die Boot-Meldungen oder werfen Sie einen Blick in /var/adm/messages für mehr Informationen über die SCSI-Konfiguration ihres Computers. Falls Sie dennoch Probleme haben, die richtigen Werte für scsibus,target,lun herauszufinden, kann die Option -scanbus verwendet werden (s. Beschreibung unten).

Scsibus 0 ist der normalle (erste) SCSI-Bus auf dem Rechner. Beobachten Sie die Bootmeldungen oder suchen Sie in /var/adm/messages nach mehr Informationen über die SCSI-Konfiguration ihres Computers. Falls Sie dennoch nicht herausfinden könne, welche scsibus,target,lun - Werte benötigt werden, versuchen Sie die -scanbus Option von cdrecord , wie es unten beschrieben ist.

Wenn die Datei /etc/default/cdrecord existiert, kann der Parameter der dev= Option auch der Name eines Geräts aus der erwähnten Datei sein (s. die DATEIEN-Sektion 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 erlangen.

Im Track At Once - Modus entsteht jeder Track aus einer einzigen Datei, die vorgefertige 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 Trackoptionen angegeben werden.

-version
Gibt die Versionsnummer aus und beendet das Programm.
-v (verbose - informationsreich, geschwätzig)
Diese Option wird verwendet, um Informationen während der Laufzeit des Brennvorgangs auszugeben. Jedes weitere v erhöht die Anzahl und Informationsreichtum der Meldungen.

-V
Jedes V erhöht den Informationsreichtum über den "SCSI command transport" um eine Stuffe. Es hilft, um Problemme 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 n addition. zeigt zusätlich 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 richigen 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, außsser 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 industriel 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-Untertü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 Sectoren 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-Informatinen aus, in einer Form, wie sie von mkisofs-1.10 gelesen werden kann.

Diese Option ist nur mit CD's sinnvoll, die mindestens eine abgeschloßene Session enthalten und noch nicht richtig abgeschloßen 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-Infos (absolute Time in Pregroove) eines CD-R- oder CD-RW-Mediums und gibt sie aus. Wenn das vorliegende Laufwerk das Auslesen von ATIP-Infos nicht beherscht, wird nur ein Teil der Informationen oder überhaupt nichts angezeigt. Nur wenige MMC-kompatiblen Laufwerke unterstützen das Auslesen von ATIP-Infos.

Wenn cdrecord in der Lage war, die Startzeit 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 abschloßen (u.a. wird die TOC für die CD-ROM-Laufwerke geschrieben). Es ist nützlich, wenn die CD bereits beschrieben, aber noch nicht abgeschloßen ist. Diese Option funktioniert z.Z. nicht mit TEAC-Laufwerken.
-nofix
Die CD wird nach der Fertigstellung nicht abgeschloßen. Dies könnte nützlich sein, um eine Audio-CD in mehreren Schritten zu beschreiben. Eine nicht abgeschloßene 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-Testlaufes mit anschließendem Brennvorgang wird bei diesen Geräten nicht funktionieren.
speed=#
Setzt die Geschwindigkeit (x-Faktor) für den Schreibprozeß auf #. # ist eine Ganzzahl und entspricht dem Multiplikator im Vergleich zu der normalen Audio-Geschwindkeit (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=type
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 ganze CD. Dies könnte eine Zeit lang 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-Tabelen 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 counterhalten, dann haben Sie echte Hardware-Probleme. Die FIFO-Größe ist in diesem Fall ausreichend.

dev=target
Gibt das SCSI-Zielgerät 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-Support 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 angeschloßene 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 (s. DATEIEN-Sektion).

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 bei der Benutzung eines anderen Treibers sehr gross. Das kleinste Übel, dass 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 underun"-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 dann exit code 0 aus.
-prcap
Gibt Infos ü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
"Befragt" das Gerät und gibt die Infos aus.
-scanbus
Scannt alle SCSI-Geräten des SCSI-Buses und gibt die abgefragten Strings aus. Diese Option kann benutzt werden, um die SCSI-Adresse des CD-Brenners herauszufinden. Die ausgegebenen Nummern erscheinen in der Form: bus * 100 + target * 10 + lun
-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 bekannte 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 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 Zahlenreiche, 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 anzugegen. 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öhren 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 angenomen, daß die Audiodaten im byteumgekehrter (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 die Audiodaten in big-endian-Ordnung erwartet werden, so wie es normallerweise beim SCSI-Protokol verwendet wird. Cdrecord weis, 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 Byteordnung 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 (s. mkisofs(8) für mehr Details). Wenn der Daten-Track ein ufs -Dateisystem-Image ist, sollte die Fragmentgröße 2 KB oder höher sein, um den CD-Laufwerken mit 2KB-Sektorgröße das Lesen zu ermöglichen.

-data ist standardmässig 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 Quellgerät nicht gelesen werden und verursachen so einen Buffer-Underrun. Benutzen Sie diese Option nicht, wenn cdrecord die Trackdaten 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 Datentrack handelt, werden zu diesem und den folgenden Datentracks 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 Audiotrack bezieht, wird cdrecord die Audiodaten zu einer Anzahl aus 2352-Bytes-Blöcken erweitern. Dabei wird der letzte (unvollständige) Block mit 0-Bytes (absolute Stille) aufgefüllt.

-pad wird automatisch ausgewählt, solange es nicht durch -nopad abgestellt wird.

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 ausfüllen - das ist die Standardeinstellung.
pregap=#
Setzt die Pausenlänge für die Pause vor dem nächsten Track. Diese Option funktioniert z.Z. nur mit den TEAC-Laufweren, 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 Audiotracks als gesampelt mit 50/15 µsec preemphfasis angezeigt. Die Daten werden jedoch nicht während des Datentransfers zw. der Datei und dem Recorder geändert. Diese Option hat keine Wirkung auf die Datentracks.
-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 Trackgröß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 angeschloßen 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

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


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

Erstellungen 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 komlex ist, kann cdrecord auch ohne einen CD-Image auskommen. Benutzen Sie einfach die pipeline:


    mkisofs -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 compliant realtime scheduling 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 Doble-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 Audiotracks werden aus den Dateien track01.cdaudio, track02.cdaudio, etc. erstellt:


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

Vorgensweise mit einem Brenner, der auf der Angabe der Trackgröß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

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 normalle Geschwindigkeit beim Schreiben (s. auch "-speed"-Option).
Bestimmt die Größe des FIFO (s. auch "fs="-Option).
 

FILES

/etc/default/cdrecord
Vorgaben für die folgenden Werte/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 normalle Geschwindigkeit beim Schreiben (s. auch "-speed"-Option).
Bestimmt die Größe des FIFO (s. auch "fs="-Option).

Alle anderen Stellen sind Bezeichner/Namen 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 normalle/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

mkisofs(1), scg(7), fbk(7).

 

ANMERKUNGEN

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ühlen. 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 Hardwareunterstü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üer die /dev/scg? Geräte, weil dann jeder ihre gesammten 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 Betriesbsysteme 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 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-Statuscode, 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 Fehlertext für den Sense-Schlüssel, sofern dieser verfügbar ist, gefolgt von einer Segment-Nummer, die ausschliesslich 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 Fehlertext 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 widergibt, 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 mehr Optionen als ls.

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.

 

CREDITS

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-Transportes 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 abonieren in dem Sie eine Email an

        other-cdwrite-request@lists.debian.org

senden und im Text das Wort subscribe einfügen. Die Mailadresse dieser Liste ist

        cdwrite@lists.debian.org                                         

 

ÜBERSETZUNG

Eduard Bloch (eb@zombie.inka.de)

Neuere Versionen dieses Dokumentes, sowie die aktuellste Übersetzung der README-Dateien aus dem cdrecord-Paket finden Sie unter http://sites.inka.de/W1752/cdrecord/ .

 

AUTOR

Joerg 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


 

Index

NAME
ÜBERSICHT
BESCHREIBUNG
GRUNDOPTIONEN
TRACKOPTIONEN
BEISPIELE
FILES
SIEHE AUCH
ANMERKUNGEN
DIAGNOSE
BUGS
CREDITS
MAILING-LISTEN
ÜBERSETZUNG
AUTOR

This document was created by man2html, using the manual pages.
Time: 15:43:51 GMT, January 08, 2000