home Sonstiges Linux OpenBSD Links

CD's brennen unter Linux

Um CD's unter Linux zu brennen, müssen erst einige Bedingungen erfüllt werden. Mit einen SCSI-Brenner hat man keine Problem, will man hingegen mit einen IDE-Brenner arbeiten, muß man erst die SCSI Emulation einrichten. Wenn man dann schon mal im Kernel ist, kann auch gleich noch prüfen, ob der SCSI generic support in der SCSI Auswahl aktiviert ist. Eventuell müssen auch noch die Generic SCSI Gerätedateien erzeugt werden. Dazu ist folgendes einzugeben:

marty:~# cd /dev
marty:/dev# ./MAKEDEV sg
Zum Brennen unter Linux gibt es die Programme cdrecord und cdrdao. Cdrdao ist eher für Eins-zu-Eins-Kopien gedacht und wird weiter unten auf dieser Seite beschrieben.
Cdrecord ist in den cdrtools enthalten. Diese kann man unter http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html runterladen. Ich habe die Version 2.0 verwendet. Die Installation ist schnell erledigt:
marty:~# cd /usr/src/
marty:/usr/src# tar xvfz /von/wo/auch/immer/cdrtools-2.0.tar.gz
marty:/usr/src# cd cdrtools-2.0
marty:/usr/src/cdrtools-2.0# make
marty:/usr/src/cdrtools-2.0# make install
Danach sollte man erst mal testen, ob cdrecord überhaupt mit unseren SCSI System zurecht kommt:
marty:/usr/src/cdrtools-2.0# cd /opt/schily/bin
marty:/opt/schily/bin# ./cdrecord -scanbus
Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jörg Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.7'
scsibus0:
        0,0,0     0) 'IBM     ' 'DCAS-34330W     ' 'S65A' Disk
        0,1,0     1) *
        0,2,0     2) 'TEAC    ' 'CD-R55S         ' '1.0R' Removable CD-ROM
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *
scsibus1:
        1,0,0   100) 'PLEXTOR ' 'CD-R   PX-W4012A' '1.05' Removable CD-ROM
        1,1,0   101) *
        1,2,0   102) *
        1,3,0   103) *
        1,4,0   104) *
        1,5,0   105) *
        1,6,0   106) *
        1,7,0   107) *
Es empfiehlt sich, das man /opt/schily/bin in die PATH-Variable aufnimmt. Je nach Distri entweder in ~/.profile, ~/.bashrc oder /etc/profile. Nach einen erneuten Login sollte dann cdrecord wie ein ganz normaler Befehl zur Verfügung stehen.

Am besten führt man die ersten Tests mit einer CDRW durch, sofern der Brenner damit umgehen kann. In diesen Beispiel benutzte ich den Plextor IDE-Brenner, der mittels SCSI-Emulation eingebunden ist. Die Adresse lautet 1,0,0 (siehe Ausgabe von cdrecord -scanbus). Cdrecord ist es nicht möglich, IDE-Brenner direkt anzusprechen!

Als erstes löschen wir die RW richtig:
cdrecord -v dev=1,0,0 speed=4 blank=all
Ersetzt man all durch help werden alle Möglichkeiten zum löschen der RW angezeigt.


Man kann sich auch Infos zu dem CD Medium auslesen lassen (funktioniert nicht mit jeden Laufwerk):
cdrecord dev=1,0,0 -atip

Das Brennen einer Audio-CD ist an und für sich keine große Sache. Man braucht nur WAV Dateien in der entsprechenden Qualität (44100 Hz, 16 Bit, Stereo):
cdrecord -v -eject driveropts=burnfree dev=1,0,0 speed=4 fs=10m -pad -audio mucke1.wav mucke2.wav
ParameterErklärung
-vmehr Ausgaben und Infos
-ejectnach dem Brennen die CD auswerfen
driveropts=burnfreeBuffer Underruns verhindern
dev=1,0,0dieses Gerät zum Brennen nutzen
speed=4mit vierfacher Geschwindigkeit
fs=10meinen Buffer von 10 MB anlegen
-padwichtig für Audio-CD's, eventuelle nicht komplette Sektoren auffüllen
-audioAudio-CD, alle Parameter nach diese müssen WAV-Dateien sein
mucke*.wavdie WAV-Dateien, jede Datei steht für einen Track auf der CD


Ein ISO-Image auf eine CD zu schreiben geht auch sehr schnell:
cdrecord -v -eject driveropts=burnfree fs=10m dev=1,0,0 speed=40 /tmp/imageofacd.iso

Erstellen eines ISO-Images von einer Daten CD ohne Kopierschutz/Audiotracks/mehrere Sessions/etc:
dd if=/dev/scd1 of=/tmp/imageofacd.iso

Erstellen eines ISO-Images mit eigenen Dateien:
marty:/tmp# mkdir /tmp/cdroot
marty:/tmp# cd /tmp/cdroot
hier die Dateien reinkopieren
marty:/tmp/cdroot# cd /tmp
marty:/tmp# mkisofs -J -V CDNAME -l -v -o /tmp/imageofacd.iso cdroot/
ParameterErklärung
-JJoilet-Dateisystem erzeugen (wegen langer Dateinamen)
-Vdie CD kriegt auch einen Namen (hier CDNAME)
-lerweitertes ISO-Dateisystem erzeugen (auch wegen langer Dateinamen)
-vein paar mehr Ausgaben
-o /tmp/imageofacd.isodiesen Dateinamen bekommt das erzeugte ISO-Image
cdroot/alles was unterhalb vom Verzeichis cdroot ist, kommt mit auf die CD
(den / nicht vergessen!)

Cdrecord und mkisofs haben noch viele weitere Funktion. Fast alles an CD's läßt sich somit backen. Es gibt einige Frontends für X/KDE/Gnome, von denen ich aber keins getestet habe.


Falls man einfach nur mal schnell eine einfache Kopie von einer Audio CD erstellen will, ist cdrdao ganz praktisch. Das Programm kann noch einiges mehr (wie fast alle Programme unter Linux ;), hier zu sei auf die Doku im Source Paket verwiesen.

Cdrdao verlangt, das schon einiges auf den System vorhanden ist. Zum einen cdrecord, von denen es paar Libarys nutzt und zum anderen die Libary PCCTS. Von dieser gibt es mehrere Versionen, es muß aber eine aus dem 1.33er Zweig sein. Verwendet habe ich hier die 1.33MR33 von PCCTS (http://www.polhode.com/pccts133mr.html).
Die Installation ist nicht weiter problematisch. Eventuell muß das unzip Paket nachinstalliert werden. Es sollte eigentlich bei jeder Distri zu finden sein.
marty:~# cd /usr/src/
marty:/usr/src# unzip /root/pccts133mr.zip
marty:/usr/src# cd pccts/
marty:/usr/src/pccts# make
marty:/usr/src/pccts# cd bin
marty:/usr/src/pccts/bin# cp -r * /usr/local/bin/
marty:/usr/src/pccts/bin# cd ../h
marty:/usr/src/pccts/h# mkdir /usr/include/pccts
marty:/usr/src/pccts/h# cp -r * /usr/include/pccts/
Cdrdao bekommt man von http://sourceforge.net/project/showfiles.php?group_id=2171. Verwendet habe ich die Version 1.1.7.
marty:~# cd /usr/src/
marty:/usr/src# tar xfz /root/cdrdao-1.1.7.src.tar.gz
marty:/usr/src# cd cdrdao-1.1.7/
marty:/usr/src/cdrdao-1.1.7# ./configure
marty:/usr/src/cdrdao-1.1.7# make
marty:/usr/src/cdrdao-1.1.7# make install
Cdrdao installiert sich unter /usr/local/bin und sollte somit sofort zur Verfügung stehen. Als erstes auch hier ein Test, ob es überhaupt mit dem SCSI System zurecht kommt:
marty:~# cdrdao scanbus
Cdrdao version 1.1.7 - (C) Andreas Mueller 
  SCSI interface library - (C) Joerg Schilling
  L-EC encoding library - (C) Heiko Eissfeldt
  Paranoia DAE library - (C) Monty

Check http://cdrdao.sourceforge.net/drives.html#dt for current driver tables.

Using libscg version 'schily-0.7'

0,2,0: TEAC, CD-R55S, 1.0R
1,0,0: PLEXTOR, CD-R   PX-W4012A, 1.05
Wunderbar, cdrdao erkennt sowohl den Plextor per SCSI Emulation als auch den alten Teac Brenner. Sofern zwei Laufwerke bereit stehen, kann man mit folgenden Befehl eine CD kopieren. Getestet habe ich es nur mit Audio CD's.
cdrdao copy --device 1,0,0 --source-device 0,2,0 --speed 40 --driver generic-mmc --buffers 32
ParameterErklärung
copywir wollen die CD kopieren
--device 1,0,0das ist unser Brenner (hier der Plextor)
--source-device 0,2,0und das ist unser Quelllaufwerk
--speed 40mit 40facher Geschwindigkeit brennen, BurnProof schaltet cdrdao automatisch an
--driver generic-mmccdrdao erkennt nicht immer das Laufwerk richtig, aber mit diesen Treiber geht es
--buffers 32ein kleiner Cache ;)
Falls man nur ein Laufwerk hat, läßt man den --source-device Parameter weg und der Brenner wird dann genommen zum Auslesen. Viel Spaß als DJ ;)

Mit cdrdao lassen sich auch direkt Images erstellen (auch hier nur mit Audio CD's getestet):
cdrdao read-cd --device 1,0,0 --driver generic-mmc dateiname.cue

Geschrieben werden sie so:
cdrdao write --speed 40 --device 1,0,0 --driver generic-mmc dateiname.cue

zurück zur Linux-Übersicht
Letzte Aktualisierung dieser Seite: 16. Mai 2003