Daten und Audio CDs brennen unter Linux


By rakekniven - Posted on 13 April 2009

Das vielleicht wichtigste Thema ;-)

Allgemeines

Bevor es los geht noch was Allgemeines :
Unter Linux teilen sich meistens viele kleine Programme die Arbeit, anders als bei Programmen für M$.

So gibt es Programme um Audio-CD's auszulesen z.B cdparanoia.oder cdda2wav.
Hier ist cdda2wav seit kurzem erste Wahl. Es beherscht alle Funktionen von cdapranoia und noch mehr. Es enthält eine Fehlerkorrektur mit der auch zerkratzte CD's eingelesen werden können. Dies dauert zwar manchmal sehr lange doch das Resultat überzeugt.

Programme um ausgewählte Dateien und Verzeichnisse als ISO-Datei zu mastern, wie mkisofs und mkhybrid.
Programme um dann tatsächlich die Daten auf CD zu schreiben wie cdrecord oder cdrdao.

Jörg Schilling ist der Autor der cdrtools. Diese Programmsammlung umfasset cdrecord, cdda2wav, readcd, mkhybrid und mkisofs.
Mehr braucht man nicht. Durch die enorme Produktivität von Jörg sollte man öfters man seine Seite anchecken oder eine Mailingsliste wie cdrecord-support@lists.berlios.de abonnieren. Seine Announcements und manpages sind immer Pflichtlektüre.

Da alle diese Programme eine Kommandzeilenschnittstelle (schönes Wort) haben ist es ein einfaches eigene skripte zu schreiben.
Da es eine grosse Anzahl von Optionen gibt lohnt sich ein Blick in die entsprechenden manpages.
Beispiele für scripte gibt es hier .

SCSI-Emulation

Die SCSI-Emulation ist zum Glck bei neuen Kernels nicht mehr notwendig.
Aktuell können die Geräte über den Gerätenamen angesprochen z.B "/dev/hdb"

Der folgende Abschnitt kann also als Nachschlagewerk für ältere Distributionen verwendet werden.

Wenn Du im Besitz eines ATAPI-CDRom's oder eines ATAPI-Brenners bist (oder beides), musst Du SCSI-Emulation bei Deinen Kernel aktivieren.

Bei SuSE einfach die Appendzeile erweitern.
Yast > Administration des Systems > Kernel- und Bootkonfiguration > Lilo konfigurieren.
(Yast > Administration of the System > Kernel- and Bootconfiguration > Configure LILO)

Hier bei Append-Zeile für Kernelparameter folgendes eingeben :

hdd=ide-scsi


Dieses Beispiel aktiviert die SCSI-Emulation für das Gerät hdd.
Sollte nun als /dev/scd0 ansprechbar sein, nicht mehr als /dev/hdd !!!.

 

Testen kann man das sehr leicht mit cdrecord. Einfach folgendes eingeben:

smaug:~ # cdrecord -scanbus
Cdrecord 2.01a15 (i686-pc-linux-gnu) Copyright (C) 1995-2003 Jörg Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.7'
scsibus0:
0,0,0 0) 'PIONEER ' 'DVD-RW DVR-105 ' '1.30' Removable CD-ROM
0,1,0 1) 'RICOH ' 'CD-R/RW MP7200A ' '1.30' Removable CD-ROM
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *

Wie man sieht wurden zwei SCSI-Geräte gefunden (DVD-RW und CD-RW).

Die Zahlen bedeuten: SCSI-Bus, SCSI-ID, LUN.
SCSI-Bus ist für den ersten SCSI-Adapter im System 0, für den zweiten 1 usw.
SCSI-ID ist die des CDROM-Laufwerk, von dem gelesen werden soll.
Die LUN ist bei CD-Laufwerken und -Brennern 0.

SuSE 8.2 richtet für Deine ATAPI-Brenner automatisch die SCSI-Emulation ein. Sehr gelungen!

Wiederbeschreibare CD's (CD-RW)

Um wiederbeschreibbare CD's zu löschen müssen Sie eingeben:

smaug:~ # cdrecord -dev=/dev/hdc blank=fast -force

Bei SCSI-Emulation:

smaug:~ # cdrecord dev=0,1,0 blank=fast -force

Hier wird die CD schnell gelöscht (wenige Sekunden).
Um die CD komplett zu löschen, müssen Sie folgenden Befehl eingeben und warten :

smaug:~ # cdrecord dev=0,1,0 blank=all -force

Dies kann bei einfacher Geschwindigkeit die komplette Aufnahmezeit dauern.

Informationen über den Rohling

Informationen über den Rohling erhält man mit:

smaug:~ # cdrecord -atip dev=0,1,0
Cdrecord 2.01a15 (i686-pc-linux-gnu) Copyright (C) 1995-2003 Jörg
Schilling
...
ATIP info from disk:
Indicated writing power: 3
Reference speed: 6
Is not unrestricted
Is erasable
Disk sub type: High speed Rewritable (CAV) media (1)
ATIP start of lead in: -11625 (97:27/00)
ATIP start of lead out: 333750 (74:12/00)
1T speed low: 4 1T speed high: 10
power mult factor: 1 5
recommended erase/write power: 5
A1 values: 24 1A D8
A2 values: 00 00 00
Disk type: Phase change
Manuf. index: 0
Manufacturer: Illegal Manufacturer code
Diese Ausgabe war von einer CD-RW (also einer wiederbeschreibaren CD).

Musik CD´s

WAV-Dateien sin die Vorrausetzung um eine Audio-CD zu erstellen. Programme wie k3b können direkt Audio-CD's von MP3's erstellen, doch diese wandeln intern auch in wav und brennen diese dann.

Erzeugen von wav-Dateien

Wav-Datein können auf verschiedenste Weise erzeugt werden.

Ein gutes Kommandozeilentool ist mpg123. Es wandelt mp3files zu wav-dateien.
Der Aufruf ist denkbar einfach. : mpg123 -w output.wav input.mp3

smaug:~ # mpg123 -w /<path>/pod-alive.wav  /<path>/pod-alive.mp3

Für den grafischen Multimediaplayer XMMS steht ein praktisches Disk Writer-Plugin zur Verfügung.
Statt einer Ausgabe mit der Soundkarte werden die abgespielten Titel als wav-files im vorgegeben Verzeichnis gespeichert.

Wie man wav-files von musik cd´s erzeugt ist hier genauer beschrieben.

Brennen einer Audio-CD von vorhandenen wav-dateien

Alle wav-dateien eines Verzeichnisses in alphabetischer Reihenfolge brennen:

smaug:~ # cdrecord -v speed=2 dev=0,1,0 -pad *.wav

 

Sollen die Dateien nicht in alphabetischer Reihenfolge gebrannt werden, dann müssen sie der Reihe nach angegeben werden:

smaug:~ # cdrecord -v speed=2 dev=0,1,0 -pad 1.wav 2.wav 3.wav ... n.wav 

 

Daten CD´s

Erzeugen von Daten-CD´s

  1. Image erzeugen :
    1. Von einer CD :
      smaug:~ # dd if=/dev/scd0 of=<path>/1.img bs=2048
    2. Von einem Verzeichnis :
      smaug:~ # mkisofs -o <path>/1.img -r -T -V System_2002_02 <path>/
  2. Image testen
    Wurde der Kernel mit der Option Loopback device support kompiliert so können Sie das Image einfach als read-omly mounten und so das erstellte Image testen bevor Sie es brennen.
    smaug:~ # mkdir /isotest smaug:~ # mount -t iso9660 -o loop,ro  /<pathtoimage>/1.img /isotest/
  3. Erzeugtes Image brennen :
    smaug:~ # cdrecord -v speed=4 dev=0,1,0 <path>1.img

Es gibt zahlreiche Optionen für mkisofs. Einige wichtige sind hier aufgeführt.
<b>-v</b> Ausführliche Programmausgaben
<b>-a</b> Dateien, die '~' oder '#' im Dateinamen enthalten, werden nicht übersprungen.
<b>-V</b> Volume ID, Name der CD
<b>-l</b> Lange Dateinamen erlauben.
<b>-J</b> Joliet-Dateisystem erzeugen.
<b>-L</b> Einen Punkt am Anfang von Dateinamen erlauben.
<b>-R</b> Rock Ridge Dateisystem für Unix erzeugen.
<b>-o</b> filename - Das Image wird in die Datei image.raw geschrieben.

Video CD´s

Erzeugen und kopieren von Video-CD´s

Dieses Kapitel ist für mich nicht sehr interessant da ich einen DVD - Player habe und somit keine VCDs brauche. Doch die Fragen nach VCDs unter Linux sind sehr häufig. Sie brauchen dazu die Programmsammlung vcdimager.

Die folgenden Schritte stammen von Jochen und ich habe es einmal getestet :

  1. Rippen der Videocd mit
    vcdxrip -p
    Es werden die tracks als "avseq01.mpg"" usw. erstellt sowie eine Datei videocd.xml
  2. Dann ruft man
    vcdxbuild videocd.xml

    auf. Nun werden die bin und cue Dateien erstellt.
  3. Die bin/cue Dateien können dann ganz einfach mit cdrecord oder cdrdao gebrannt werden

Skripte :

Das Kopieren einer Audio-CD mit cdrdao/cdparanoia mit 3 Zeilen

  1. smaug:~ # cdrdao read-toc --device 0,0,0 cd.toc
    Das Inhaltsverzeichnis (TOC, Table Of Contents) wird ausgelesen und in die Datei cd.toc geschrieben. --device 0,1,0 gibt das SCSI-Gerät an, von dem gelesen werden soll.
  2. smaug:~ # cdparanoia 1- data.wav
    Nun werden die Audiodaten gelesen und der gesamte CD-Inhalt in die Datei data.wav geschrieben.
    Cdparanoia liest standarmäßig von /dev/cdrom/, welches ein Link auf die Gerätedatei des CD-Laufwerks sein sollte.
    Durch Angabe der Option -d /dev/scd? kann ein Gerät auch direkt benannt werden.
  3. smaug:~ # cdrdao write --device=0,1,0 --speed 10 cd.toc
    Die CD wird im DAO-Modus mit vierfacher Geschwindigkeit gebrannt, die Audiodaten müssen in der Datei data.wav stehen.
    Soll der Schreibvorgang mit abgeschaltetem Laser zuvor getestet werden, muß man "write" durch "simulate" ersetzen.

Das Kopieren einer Daten-CD mit dd/cdrecord mit 2 Zeilen

  1. smaug:~ # dd if=/dev/scd0 of=/tmp/1.img bs=2048
    Image von CD erstellen.
  2. smaug:~ # cdrecord -v speed=10 dev=0,1,0 /tmp/1.img
    Image brennen.
    Dies ist ein Weg ohne mkisofs eine CD zu erstellen.
    man dd
    sollte helfen.

Das Kopieren einer VCD (Video) mit cdrdao in 2 Zeilen

  1. smaug:~ # cdrdao read-cd --device 0,0,0 --driver generic-mmc movie.toc
    Auslesen der CD

    Zusatzparameter:
    --read-raw -> Treten Lesefehler auf kann folgender Parameter helfen
    --datafile movie.bin -> Ohne Angabe wird immer in data.bin geschrieben

  2. smaug:~ # cdrdao write --device 0,0,0 --driver generic-mmc movie.toc
    File brennen.

    Zusatzparameter:
    --overburn -> Sollte bei Rohlingen helfen die eine zu kleine Aufnahmefähigkeit melden. Dein Brenner sollte allerdings in der Lage sein zu überbrennen.
    Bei besonderer Brennerhardware ist die Treiberoption anzupassen.

Ja, so einfach kann das sein ;-)

Links

  • Damit die links nicht alle doppelt sind, schauen Sie sich die Links auf der Seite DVD brennen
  • Brennprogramme:

  • cdrtools (cdrecord, readcd ...)
  • cdrdao
  • GUI für Brennprogramme

  • sind ausführlich unter DVD brennen beschrieben
  • Technik

    Programme zum Cover erstellen

  • Kover Einfaches Tool für KDE um Kover und Inlets zu erstellen.
  • Kcdlabel Auch ein KDE Tool um Cover zu erstellen. Dieses beherrscht auch Labels (die runden Dinger).
  • Titeldatenbanken im Internet

  • freedb.org
    Ein freie CD-Datenbank im Netz. Viele Programme können anhand der CD-ID Informationen von dieser Datenbank beziehen:
    Artist, Album, Tracknamen, Tracknummern, Erscheinungsjahr, Rubrik.
    Nutzt wenn möglich diese Datenbank um eure CDDB-Anfragen zu stellen und übermittelt Eure CD-Daten auch hierhin.
    Wie der Name schon sagt sin die Daten frei und können von jedem im kompletten Umfang heruntergeladen werden.
  • cddb.com
    Das gleiche wie freedb.org. Vielleicht etwas grösser aber dafür auch kommerziell :-(
    Es kann jeden Tage möglich sein dass die Daten gesperrt werden und
    die Firma (Gracenote) möchte mit Euren übermittelten CD-Daten Geld verdienen oder noch schlimmer Geld haben für Eure eigenen Daten. :-(((