[[Vorlage(Getestet, focal )]] {{{#!vorlage Wissen [:Paketquellen_freischalten/PPA: Verwenden eines PPAs] [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./cd.gif, 64, align=left)]] [http://cdrecord.org/ cdrecord] {en} ist ein Kommandozeilenprogramm, welches sich zum Brennen von allen Arten von Audio- und Daten-CDs eignet. cdrecord ist Bestandteil der [wikipedia:cdrtools:], die außer cdrecord noch die Programme mkisofs und '''cdda2wav''' enthalten. Außerdem kann `cdrecord` DVD und Blu-ray (BD) brennen, wobei es aber nicht alle Moeglichkeiten von `growisofs`, `cdrskin` oder `xorriso` bietet. Das Programm wird nicht mehr entwickelt, da der Entwickler leider verstorben ist. {{{#!vorlage Hinweis Unter Ubuntu verweist der Aufruf von `cdrecord` automatisch auf `wodim`. Um explizit '''cdrecord''' nutzen zu können, muss dieses aus einem PPA installiert werden. }}} = Installation = Die Anwendung ist seit [:Gutsy:Ubuntu 7.10] nicht mehr in den offiziellen Paketquellen enthalten. == PPA == Aktuelle Versionen gibt es über das "Personal Package Archiv" (PPA) [1] von Brandon Snider. [[Vorlage(PPA, brandonsnider/cdrtools)]] Nach dem Aktualisieren der Paketquellen können die folgenden Pakete installiert [2] werden: {{{#!vorlage Paketinstallation cdrecord, ppa mkisofs, ppa }}} = Konfiguration = Die allgemeine Syntax von cdrecord lautet: {{{#!vorlage Befehl sudo cdrecord [dev=deviceX] Datei(en) }}} `deviceX` ist der Brenner wie z.B. `/dev/sr0` oder `/dev/cdrw` (Linux-Geräte-Notation) oder `0,1,0` oder `1,0,0` (SCSI-Notation). Siehe auch [:Datenträger#Optische-Laufwerke:] und [#Laufwerksinformationen Laufwerksinformationen]. == Allgemeine Optionen == cdrecord kennt eine sehr große Anzahl von Optionen, von denen im folgenden nur einige (grundlegende) vorgestellt werden. Zu beachten ist, dass nicht allen Optionen ein "`-`" vorangestellt wird! ||<-2 rowclass="titel">Optionen|| ||Option||Beschreibung|| || `-checkdrive` || überprüft den CD / DVD Brenner und gibt dessen Möglichkeiten aus - siehe [#Laufwerksinformationen Laufwerksinformationen] || || `-v` || Ausführliche Ausgabe während des Schreibvorgangs, z.B. über den Fortschritt des Brennens || || `-dummy` || Simulation - führt den kompletten Befehl aus, allerdings wird der Laser des Brenners nicht aktiviert. (Geht nur mit CD, DVD-R, unformatierten DVD-RW Medien.)|| || `speed=X` || Setzt die Schreibgeschwindigkeit für CD auf X * 150 KiB/s. Je nach Mediumtyp wird diese Geschwindigkeit erst am Ende des Brennlaufs erreicht. Der Brenner setzt je nach Medium auch Ober- und Untergrenzen. || || `-multi` || Startet eine Multisession-CD/DVD. Diese Option muss bei Multisession-CDs/DVDs bei jeder Session außer der letzten gesetzt sein. || || `-format` || Formatiert eine CD-RW bzw. wiederbeschreibbare DVD. Funktioniert bei DVDs zur Zeit nur mit DVD+RW || || `driveropts=burnfree` || Verhindert, dass der Schreibpuffer leer läuft (auch bekannt als z.B. [wikipedia:Burnproof:]) || ||``fs=16m``||Richtet einen Ringpuffer von 16 MiB ein, um kurze Pausen beim Lesen der Dateiinhalte überbrücken zu können. Bei 20x CD reichen 16 MiB für etwa 5 Sekunden, bei 4x DVD für 3, bei 4x BD für knapp eine Sekunde. Mit hohen DVD und BD Geschwindigkeiten sollte man also eher `fs=64m` verwenden.|| || `-atip` || Informationen zum Hersteller und zu sonstigen Parametern des Mediums erfragen || || `-dao` || Schaltet in den ''Session-At-once''-Modus, oft auch ''Disk-At-Once'' genannt. Das geht bei CD nur im ersten Brennlauf einer `-multi` Serie von Läufen. Bei DVD und BD passt es garnicht zu `-multi`. || || `-load` || Zieht das Medium ein und beendet das Programm || || `-lock` || Zieht das Medium ein, blockiert den manuellen Schalter für den Auswurf und beendet das Programm. Program `eject` oder `cdrecord` Option `-eject` können danach immer noch auswerfen. || || `-eject` || Wirft das Medium nach abgeschlossener Arbeit aus || || `-msinfo` || Multi-Session-Informationen zum aktuellen Medium erfragen || || `-minfo` || Aktuellen Status des Mediums erfragen. Wichtig, wenn es Probleme gibt, die man nicht erklären kann. || || `-version` || Gibt die Versionsnummer des Programms aus || == Track-Optionen == ||<-2 rowclass="titel">Track-Optionen|| ||Track-Option||Beschreibung|| ||``-data``|| Es wird eine CD so gebrannt, dass das Ergebnis als CD-ROM lesbar ist. Die Eingabedatei für cdrecord ist dann fast immer ein Filesystemabbild (zB. ISO 9660 von `mkisofs` oder `xorriso`) oder ein Datenarchiv (zB. von `tar`). Der Modus `-data` ist standardmäßig eingeschaltet.|| ||``-audio``|| Es wird eine "normale" Audio-CD gebrannt, die als CD-DA von den Geräten der Unterhaltungsindustrie abgespielt werden kann. Am Computer braucht man zum Abspielen Programme wie `mplayer`. Wichtig: Diese Option ist nicht für DVD oder BD Medien geeignet.|| ||``padsize=300k``||Schreibt nach dem Ende der folgenden Eingabedatei eine Lücke von 300 KiB. Das ist eine traditionelle Vorkehrung gegen einen traditionellen Bug im Linux Kernel, der nur CDs betrifft, die nicht mit Option `-dao` gebrannt wurden. (linux-scsi könnte ihn auch mal reparieren, wenn man denn wollte. Im Moment müssen wir ihm viele Nullen als Opfer geben.)|| Eine komplette Übersicht aller Optionen erhält man in der [:man:Manpage] zu cdrecord oder in der Dokumentation. = Nutzung = == Laufwerksinformationen == Alle CD-/DVD-/Blu-ray-Brenner werden über das SCSI-Protokoll bedient. Die von cdrecord zum Transport von SCSI-Kommandos zum Brenner verwendete Bibliothek '''libscg''' verwendet bewusst eine Syntax, die mit allen Betriebssystemen kompatibel ist, um portable Skripte und GUIs implementieren zu können. Bei Rechnern, in denen nur ein Gerät vom SCSI-Basistyp "CD-ROM" verbaut ist, kann die Option `dev=x,y,z` mit aktuellen cdrecord-Versionen (seit Mitte 2006) entfallen. Beispiel: {{{#!vorlage Befehl cdrecord -scanbus }}} {{{ Cdrecord-ProDVD-ProBD-Clone 2.01.01a57 (i686-pc-linux-gnu) Copyright (C) 1995-2009 Jörg Schilling Linux sg driver version: 3.5.34 Using libscg version 'schily-0.9'. scsibus1: 1,0,0 100) 'SAMSUNG ' 'CD-ROM SC-152L ' 'C100' Removable CD-ROM 1,1,0 101) 'HL-DT-ST' 'DVD-RAM GSA-H22N' '1.00' Removable CD-ROM 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * }}} Da in diesem Beispiel zwei Laufwerke vorhanden sind, muss der nächste Befehl explizit um die Angabe von `dev=x,y,z` (SCSI-Adresse des Geräts) ergänzt werden (bei nur einem Laufwerk ist dies nicht notwendig): {{{#!vorlage Befehl cdrecord -checkdrive dev=1,1,0 }}} {{{ Cdrecord-ProDVD-ProBD-Clone 2.01.01a57 (i686-pc-linux-gnu) Copyright (C) 1995-2009 Jörg Schilling scsidev: '1,1,0' scsibus: 1 target: 1 lun: 0 Linux sg driver version: 3.5.34 Using libscg version 'schily-0.9'. Device type : Removable CD-ROM Version : 5 Response Format: 2 Capabilities : Vendor_info : 'HL-DT-ST' Identifikation : 'DVD-RAM GSA-H22N' Revision : '1.00' Device seems to be: Generic mmc2 DVD-R/DVD-RW/DVD-RAM. Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr). Driver flags : MMC-3 SWABAUDIO BURNFREE Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R LAYER_JUMP cdrecord: Warning: The DMA speed test has been skipped. }}} == Beispiele == Um cdrecord zu nutzen, öffnet man ein Terminal [3] und ruft das Programm mit den entsprechenden Optionen und Parametern auf. Die zu brennenden Dateien können im '''.wav'''-Format, im '''.au'''-Format (beides Audio-Dateien) oder anderen Formaten (Daten-Dateien) vorliegen. {{{#!vorlage Hinweis Solange sich genau ein Brenner im System befindet, kann die Option `dev=...` weggelassen werden. Darauf nehmen die folgenden Beispiele Bezug. }}} * Im ersten Beispiel wird ein ISO-Image mit doppelter Geschwindigkeit gebrannt: {{{#!vorlage Befehl sudo cdrecord speed=2 image.iso }}} * Im zweiten Beispiel wird eine Multisession-CD angefangen. Der dabei unbenutzt gebliebene Platz kann später in einem weiteren Lauf ("Session") von `cdrecord` zum Schreiben benutzt werden. {{{#!vorlage Befehl sudo cdrecord -v -multi fs=16m padsize=300k image.iso }}} * Später kann eine weitere Session an die CD angehängt werden. Weil die jeweils jüngste vorhandene Session einer CD vom Linux Kernel als Einstiegspunkt für das Filesystem auf der ganzen CD benutzt wird, muss das ISO 9660 Programm den Inhalt des nächsten ISO-Image passend zu ihrem Vorgänger gestalten. Nehmen wir an, wir wollten die Dateien zur CD hinzufügen, die auf der Festplatte im Verzeichnis '''"$HOME"/fotos_fuer_cd''' bereitliegen. Auf der CD sollen sie im Verzeichnis '''/fotos''' gespeichert sein. Dann müssen wir zuerst mit der `cdrecord` Option `-msinfo` feststellen, wo der Linux Kernel ansetzen würde und wo der Brenner die nächste Session beginnen würde. Dann lassen wir `mkisofs` den Verzeichnisbaum der vorherigen Session lesen, nach unseren Wünschen ändern, und zusammen mit den neu hinzugekommenen Dateiinhalten als '''image2.iso''' speichern. Dieses Abbild lassen wir `cdrecord` dann auf die CD brennen. {{{#!vorlage Befehl ms_info=$(sudo cdrecord -msinfo) mkisofs -M /dev/sr0 -C $"ms_info" -o image2.iso -graft-points -r -J /fotos="$HOME"/fotos_fuer_cd sudo cdrecord -v -multi fs=16m padsize=300k image2.iso }}} Wenn man die Option `-multi` weglässt, kann später keine weitere Session mehr angehängt werden. (Deutlich einfacher geht Multisession mit `growisofs` oder `xorriso`, die automatisch zwischen ISO Produktion und Brennen koordinieren.) * Im vierten Beispiel werden alle Audiodateien ('''.wav''') auf dem Verzeichnis '''~/Musik/''' im [:Homeverzeichnis:] als Audio-CD gebrannt (Falls die Länge des Audiotracks nicht passt, erscheint in der Ausgabe ''"Bad audio track size"'', dann hilft der Schalter `-pad`, welches die Bytes auffüllt): {{{#!vorlage Befehl sudo cdrecord -audio ~/Musik/*.wav }}} * Im letzten Beispiel wird eine Audio-CD entsprechend der Vorgaben in der Datei '''audio.cue''' gebrannt, die alle notwendigen Informationen enthält. Die Felder in dieser Datei werden, sofern vorhanden, auch zu Erstellung der notwendigen Informationen für CD-Text herangezogen: {{{#!vorlage Befehl sudo cdrecord -audio -pad -useinfo -text -dao --cuefile=audio.cue }}} Inhalt von '''audio.cue''': {{{ PERFORMER "Ein Interpret" TITLE "Ein Albumtitel" FILE "audio.wav" WAVE TRACK 01 AUDIO TITLE "Der erste Titel" PERFORMER "Ein Interpret" INDEX 01 00:00:00 TRACK 02 AUDIO TITLE "Der zweite Titel" PREGAP 00:00:00 PERFORMER "Ein Interpret" INDEX 01 01:56:00 TRACK 03 AUDIO TITLE "Der dritte Titel" PREGAP 00:00:00 PERFORMER "Ein Interpret" INDEX 01 05:46:40 TRACK 04 AUDIO TITLE "Der vierte Titel" PREGAP 00:00:00 PERFORMER "Ein Interpret" INDEX 01 09:51:70 }}} Die Audiodaten sämtlicher Titel befinden sich anschließend alle in der Datei '''audio.wav''', aus der jetzt gemäß der Vorgaben im obigen Befehl eine Audio-CD erstellt wird. Als Beispiel diente hier eine Live-Aufnahme, deren Titel ohne Lücke ineinander übergehen (`PREGAP 00:00:00`). * Im letzten Beispiel wird eine CD oder DVD komplett gelöscht: {{{#!vorlage Befehl sudo umount /dev/sr0 sudo cdrecord dev=/dev/sr0 blank=disk }}} = Problembehebung = Da unter Ubuntu der Befehl `cdrecord` auf `wodim` verweist, wird das "originale" cdrecord bei einem Update des Pakets '''wodim''' funktionsuntüchtig. Dann muss man es aus dem PPA neu installieren. = Links = * [http://cdrecord.org/ Projektseite] {en} * [http://cdrtools.sourceforge.net/private/linux-dist.html Cdrtools - why do Linux distributions create bad forks?] {en} - Meinung des Entwicklers Jörg Schilling zur Problematik cdrtools vs. cdrkit * [wikipedia:cdrtools:] - Wikipedia-Artikel (behandelt auch die Hintergründe, warum cdrecord durch wodim ersetzt wurde) # tag: Brennprogramm, Blu-Ray, CD, DVD