

	\documentclass[a4paper,11pt]{article}
	\usepackage{ngerman}
	\usepackage[latin1]{inputenc}
	\setlength\parskip{\medskipamount}
	\setlength\parindent{0pt}
	\begin{document}

	
 % cdrecord
 % Copyright Johnny Graber
 % Lizenz: GFDL
 % 
 % $Name: $
 % $Revision: 1.5.2.4 $
 % $Source: /cvsroot/selflinux/tutorial/software/cd-brennen/cdrecord/cdrecord,v $
 % SelfLinux-0.7.2
 %
 % Diese Datei ist Teil von SelfLinux http://www.selflinux.de
 %
 %%% $Id: cdrecord,v 1.5.2.4 2002/12/06 17:20:37 jgraber Exp $

	\title{cdrecord}


	
	    \author{Johnny Graber}
	    %\url{mailto:linux@jgraber.ch}
    

	\maketitle

	
	
	%\ref{../index.tex}
	
		%\ref{anwendungen.tex}
		Anwendungs-Software
		%\ref{CD-Brennen1.tex}
		CD-Brennen
	\ref{cdrecord}

    \par{Layout}
    Axel Gross
	    %\url{mailto:axelgross@web.de}
    
    	\par{Lizenz}
	GFDL
 
	\tableofcontents{}

        
	\section{Vorbereitungen} \label{d68e51}
        
 
  

   \subsection{Einbau des Brenners} \label{d68e58}
        
   
    
  
    
  \par
  
Bevor man mit dem Brennen loslegen kann, muss natürlich ein
CD-Brenner vorhanden sein. Im Rahmen von SelfLinux gehen wir
aber nicht auf den Einbau ein. Dazu verweisen wir auf die
mit dem Gerät mitgelieferte Erklärung.
    
   

   \subsection{SCSI-Emulation} \label{d68e69}
        
   
    
  
    
  \par
  
Bei den meisten Heimanwendern steht heutzutage ein (E)IDE-Brenner
herum. Diese Brenner können nicht direkt verwendet werden, sondern
brauchen die SCSI-Emulation.
    

    \subsubsection{Kernelmodul ide-scsi} \label{d68e79}
        
    
     
    
     
  \par
  
Diese besteht hauptsächlich im laden des Kernelmodules ide-scsi
während dem Bootvorgang. Distributionen wie Mandrake, SuSE und RedHat
haben dieses Kernelmodul schon vorbereitet und man braucht keinen
neuen Kernel zu kompilieren. Dies kann man einfach mit
     

     
       \begin{tt} \begin{scriptsize} root@linux \~{}/ \# modprobe ide-scsi \end{scriptsize} \end{tt} \linebreak 
     

     
  \par
  
überprüfen. Mit diesem Befehl, der als root ausgeführt werden muss,
wird das Modul getestet und geladen. Wenn dies ohne Fehler gemacht
wird, können wir mit der {\bf lilo.conf} weiterfahren. Andernfalls muss
man zuerst einen neuen Kernel kompilieren.
     
    

    \subsubsection{neuer Kernel erzeugen} \label{d68e102}
        
    
     


     
  \par
  
Wie man einen Kernel erstellt, wurde im Rahmen von SelfLinux ja
bereits hier erklärt. Daher beschränkt sich die Erklärung hier nur
auf die Besonderheiten im Zusammenhang mit dem CD-Brennen.
     

     
  \par
  
Zum Anpassen des Kernels verwenden wir wiederum {\bf make xconfig}.
Zuerst vergewissern wir uns, das der Kernel Module verwendet. Dazu
wechselt man zu {\bf ''Loadable modul support''} und aktiviert wenn nötig die
Option und kehrt zum Hauptmenü zurück.
     

     
  \par
  
Unter {\bf ATA/IDE/MFM/RLL support} geht man nach Aktivierung der Option
weiter nach unten. {\bf ''Enhanced IDE/MFM/RLL disc/cdrom/ tape/floppy support''}
wird auf {\bf Y} gestellt und {\bf ''SCSI emulation support''} wird entweder als {\bf M}
oder {\bf Y} geladen. Durch {\bf M} wird ein Modul erstellt, das man vor der
Verwendung laden muss.
     

     
  \par
  
Danach geht es wieder zurück ins Hauptmenü. Bei {\bf ''SCSI support''} wählt
man die gleichnamige Option mit {\bf Y}, ebenso die Optionen
{\bf ''SCSI CD-ROM support''} sowie {\bf ''SCSI generic support''}. Falls man sich
nicht ganz sicher ist, kann man auch {\bf M} verwenden.
     

     
  \par
  
Als letzte Optionen wählt man unter {\bf ''Filesystems''} im Hauptmenü die
Optionen {\bf ''ISO 9660 CDROM filesystemsupport''} als {\bf M} und
{\bf ''Microsoft Joliet CDROM extensions''} mit {\bf Y}.
     

     
  \par
  
Beim verlassen von {\bf make menuconfig} wird nachgefragt, ob man seine
Änderungen sichern will. Dies muss mit {\bf ''Yes''} bestätigt werden, da
ansonsten die ganze Arbeit für nichts war.
Der Kernel wird danach ganz gewöhnlich übersetzt und installiert.
     
    

    \subsubsection{Anpassen der lilo.conf} \label{d68e196}
        
      
     

     
  \par
  
Als nächstes ergänzt man die {\bf lilo.conf}. Bei der Zeile {\bf append=''''} trägt
man das Argument {\bf hdX=ide-scsi} ein. Dabei muss das X durch einen dieser
Werte ergänzt werden:
     



     
    
    %table
    \begin{tabular}{|l|l|}
    \hline 
            
               
		\begin{minipage}{60mm}
              {\bf a}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              CD-Brenner wurde am Port 0 als Master angeschlossen
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              {\bf b}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              CD-Brenner wurde am Port 0 als Slave angeschlossen
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              {\bf c}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              CD-Brenner wurde am Port 1 als Master angeschlossen
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              {\bf d}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              CD-Brenner wurde am Port 1 als Slave angeschlossen
		\end{minipage}
	      \\ \hline
    \end{tabular}
  

     
  \par
  
So sähe die {\bf lilo.conf} aus, wenn ihr Brenner am Port 1 als Master
angeschlossen währe:
     

     \begin{tabular}{|l|}
                  \hline
                  \begin{tt} 
        Auszug der Datei lilo.conf\end{tt} \\ 
                  \hline
                  \begin{minipage}{130mm} 
                  \begin{scriptsize} 
                  \begin{verbatim} 
        
image=/boot/vmlinuz-2.4.18-6mdk
        label=Mandrake_8.2
        root=/dev/hda8
        initrd=/boot/initrd-2.4.18-6mdk.img

        append="hdc=ide-scsi"

        vga=788
        read-only
      \end{verbatim} 
                  \end{scriptsize} 
                  \end{minipage} \\
                  \hline
                  \end{tabular}

     
  \par
  
Nach dem Editieren nicht vergessen, {\bf lilo} als {\bf root} aufzurufen. Beim
nächsten Start sollte der Brenner richtig eingerichtet werden.
     
    

    \subsubsection{kleine Tests} \label{d68e285}
        

     

     
  \par
  
Wird der Brenner richtig erkannt, wird ein entsprechender Eintrag in
den Bootmeldungen auftauchen. Da die Bootmeldungen während dem Start
in einer hohen Geschwindigkeit vorbeisausen, ist dies nicht sehr
komfortabel.
     

     
      \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ dmesg | less | grep scsi \end{scriptsize} \end{tt} \linebreak 
      \begin{tt} \begin{scriptsize} Kernel command line: auto BOOT\_IMAGE=Mandrake\_8.2 ro root=308 quiet devfs=mount hdc=ide-scsi \linebreak ide\_setup: hdc=ide-scsi \linebreak scsi0 : SCSI host adapter emulation for IDE ATAPI devices \linebreak Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0 \linebreak sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray\end{scriptsize} \end{tt} \linebreak
     

     
  \par
  
Gibt man nach dem einloggen in die Konsole ein. {\bf dmesg | less} zeigt einem
die Meldungen an, {\bf grep} filtert diese Ausgabe nach scsi.
     

     
  \par
  
Man kann aber auch schon {\bf cdrecord} für diesen Test brauchen:
     

     
      \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ cdrecord --scanbus \end{scriptsize} \end{tt} \linebreak 
      \begin{tt} \begin{scriptsize} Cdrecord 1.11a15 (i586-mandrake-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling \linebreak Linux sg driver version: 3.1.22 \linebreak Using libscg version 'schily-0.5' \linebreak scsibus0: \linebreak \verb+  +\verb+  +\verb+  +\verb+  +0,0,0\verb+  +\verb+  + 0) 'MATSHITA' 'UJDA710\verb+  +\verb+  +\verb+  +\verb+  + ' '1.50' Removable CD-ROM \linebreak \verb+  +\verb+  +\verb+  +\verb+  +0,1,0\verb+  +\verb+  + 1) * \linebreak \verb+  +\verb+  +\verb+  +\verb+  +0,2,0\verb+  +\verb+  + 2) *\end{scriptsize} \end{tt} \linebreak
     

     
  \par
  
Wir sehen, das vor dem gefundenen Brenner (MATSHITA) 0,0,0 steht. Diese
Werte teilen {\bf cdrecord} mit, welches Gerät er für das Brennen verwenden
soll.
     
    
   
  \section{ISO-Image} \label{d68e340}
        
   
   

   
  \par
  
Für die Bearbeitung von ISO-Images verwendet man das Tool
{\bf mkisofs} (make ISO FileSystem). Sollte {\bf mkisofs} nicht schon
installiert sein, findet man es im Paket {\bf cdrtools} auf \linebreak 
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/
   

   \subsection{erstellen} \label{d68e364}
        
       
    

    
  \par
  
Will man eine Daten-CD erstellen, macht man zuerst ein
ISO-Image. Will man z.B. sein {\bf /home/user} in ein ISO-Image mit
dem Namen {\bf meineDaten.iso} packen, genügt ein:
    

    
     \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ mkisofs -o /mnt/disk2/meineDaten.iso -R -T -V MeineDaten /home/user/ \end{scriptsize} \end{tt} \linebreak 
    

    
  \par
  
Der Befehl ist ein wenig lang, doch wird damit schön gezeigt,
was {\bf mkisofs} alles kann. Mit {\bf -o} teilt man mit, das man das zu
erstellende Image in eine Datei ablegen will (output). Wichtig
ist, das sich die zu erstellende Datei nicht dort befindet, wo
man die Dateien her kopieren will.
    

    
  \par
  
Mit {\bf -R} erstellt eine CD vom Type RockRidge, da diese dem
Linux-Dateisystem am nächsten kommt. Mit der Option {\bf -T} wird
zusätzliche Datei ({\bf TRANS.TBL}) erzeugt. Darin werden die Dateinamen
in einer Kurzform abgelegt, so das auch DOS mit der CD klar kommt.
Unter Windows ist es üblich, der CD einen Namen zu vergeben, der
im Dateimanager angezeigt wird. Dies geschieht mit {\bf -V} und zeigt
in unserem Fall {\bf ''MeineDateien''} an.
Am Ende des Befehls listet man alle Verzeichnisse und Dateien auf,
die auf die CD kommen sollen.
    

    
  \par
  
Für den täglichen Gebrauch reichen die hier erwähnten Optionen.
Will man speziellere CDs brennen, empfiehlt sich wie immer der Blick
in die Manualpage ({\bf man mkisofs}).
    
   

   \subsection{testen} \label{d68e420}
        
    
    

    
  \par
  
Wer kennt es nicht: Nach dem Brennen bemerkt man, das die wichtigste
Datei in einem anderen Verzeichnis lag und man sie daher nicht hat. 
Unter Windows bedeutet dies ein neuer Anlauf mit einem neuen Rohling.
    

    
  \par
  
Linux ist aber auch hier geschickter und bietet einem eine
Testmöglichkeit. Dazu wird das ISO-Image in den Verzeichnisbaum
eingehängt/gemountet:
    

    
     \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ mount -t iso9660 -o loop,ro /mnt/disk2/meineDaten.iso /cdrom \end{scriptsize} \end{tt} \linebreak 
    

    
  \par
  
Damit wird ein Loop-Device erzeugt und das Image {\bf meineDaten.iso}
unter {\bf /cdrom} eingehängt. Man kann so das Image wie eine gewöhnliche
CD verwenden.
    

    
  \par
  
Bemerkt man einen Fehler, kann man das ISO-Image löschen und ein
neues Erstellen - ohne das man für diese Erkenntnis einen Rohling
brauchte.
    
   
  \section{CD brennen} \label{d68e456}
        
       
   

   
  \par
  
{\bf cdrecord} ist wie {\bf mkisofs} bei jeder Distribution dabei. Falls nicht,
findet man es auf auch auf \linebreak 
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/
   

   \subsection{ISO-Image auf CD brennen} \label{d68e477}
        
   
    

    
  \par
  
Der häufigste Fall Daten-CDs zu erstellen, ist das selbst gemachte
ISO-Image auf eine CD zu brennen. Dafür genügt ein einfacher Befehl:
    

    
     \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ cdrecord -v speed=8 dev=0,0,0 /mnt/disk2/meineDaten.iso \end{scriptsize} \end{tt} \linebreak 
    


    
  \par
  
Mit {\bf -v speed=8} veranlasst man den Brenner, mit 8x zu schreiben. Man
sollte daran denken, die Geschwindigkeit nicht über die Möglichkeiten
des Gerätes zu setzen.
    




    
  \par
  
Bei {\bf dev=} gibt man die 3 Zahlen an, die einem {\bf cdrecord --scanbus}
liefert (siehe ''kleine Tests'' zu beginn des Textes).
Am Schluss gibt man noch das ISO-Image an, das man brennen will.
    

    
  \par
  
Es gibt auch bei {\bf cdrecord} noch zahlreiche Optionen:
    

    
    
    %table
    \begin{tabular}{|l|l|}
    \hline 
            
               
		\begin{minipage}{60mm}
              {\bf -eject}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              CD wird nach dem Beschreiben ausgeworfen
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              {\bf -dummy}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Der Schreibvorgang wird nur simuliert
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              {\bf -multi}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Für Multisession-CDs immer angeben, ausser bei der letzten Session
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              {\bf -msinfo}
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Zeit einem Informationen über Multisession-CDs an
		\end{minipage}
	      \\ \hline
    \end{tabular}
  
   

   \subsection{On-The-Fly CD kopieren} \label{d68e563}
        
   
    

    
  \par
  
Bei {\bf cdrecord} gibt es die Möglichkeit, Daten von der Standardeingabe zu
lesen. So ist es möglich, auf das Schreiben eines ISO-Images zu
verzichten. Damit die Daten ins richtige Format kommen, muss man
aber trotzdem {\bf mkisofs} verwenden:
    

    
     \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ mkisofs -R -T -V MeineCD /cdrom |  cdrecord -v speed=8 dev=0,0,0 - \end{scriptsize} \end{tt} \linebreak 
    


    
  \par
  
Dabei wird die Ausgabe von {\bf mkisofs} nicht in eine Datei geschrieben,
sondern durch die {\bf Pipe} an {\bf cdrecord} weitergereicht. Dies wiederum
weiss dank dem {\bf -}, das es von der Standardeingabe lesen muss.
    

    
  \par
  
So kann man nicht nur CDs direkt kopieren, sondern auch lokale
Dateien. Dafür wird {\bf /cdrom} durch den entsprechenden Pfad ersetzt.
    
   

   \subsection{Audio-CDs} \label{d68e607}
        
   
    

    
  \par
  
Fürs Erstellen von Audio-CDs braucht man die Option {\bf -audio}. Damit kann
man *.wav-Dateien auf die CD brennen. Zusätzlich braucht man noch {\bf -pad},
das die Audio-Dateien auf ein Vielfaches von 2352 Byte setzt.
    

    
     \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ cdrecord -v speed=8 dev=0,0,0 -pad -audio lied1.wav lied2.wav \end{scriptsize} \end{tt} \linebreak 
    


    
  \par
  
Die Lieder werden entsprechend ihrer Auflistung auf die CD gebrannt.
    
   

   \subsection{CD-RW} \label{d68e633}
        
        
    

    
  \par
  
Es ist auch möglich, CD-RWs zu beschreiben. Beschrieben wird wie bisher
in den Beispielen genannt. Zum Löschen der CD-RW verwendet man
{\bf blank=Methode}. Es gibt momentan folgende Methoden:
    

    
    
    %table
    \begin{tabular}{|l|l|}
    \hline 
            
               
		\begin{minipage}{60mm}
              help
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Zeigt alle Möglichen Methoden an
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              all
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Löscht die gesamte CD, kann also ein wenig dauern
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              fast
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Schnelles Löschen.  Dabei werden nur PMA, TOC und das Pregap gelöscht.
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              track
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Löscht einen Track.
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              unreserve 
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Gibt einen reservierten Track wieder frei.
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              trtail
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Löscht das Ende eines Tracks.
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              unclose
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Gibt die letzte Session wieder frei.
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              session
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Löscht die letzte Session.
		\end{minipage}
	      \\ \hline
    \end{tabular}
  

    
  \par
  
Ein ganze CD-RW löscht man mit diesem Befehl:
    

    
     \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ cdrecord blank=all \end{scriptsize} \end{tt} \linebreak 
    
   
  \section{Frontends} \label{d68e735}
        
        
   

   
  \par
  
Es gibt eine grosse Anzahl von Frontends für {\bf cdrecord}. Wem die
Kommandozeile zu kompliziert ist, sollte sich einmal eines der
folgenden Programme ansehen. Da sie alle mit {\bf cdrecord} arbeiten,
haben sie die gleichen Einschränkungen, aber auch meistens die
gleiche Vielfalt.
In der nächsten Version von SelfLinux wird es zu einigen
Frontends ausführliche Erklärungen geben.
   

   
    
    %table
    \begin{tabular}{|l|l|}
    \hline 
            
               
		\begin{minipage}{60mm}
              Xcdroast
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              http://www.xcdroast.org/
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              BurnIT
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              http://sunsite.dk/BurnIT/
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              Eroaster
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              http://sourceforge.net/projects/eroaster/
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              Gnome Toaster
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              http://gnometoaster.rulez.org/
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              KOnCD
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              http://www.koncd.org/
		\end{minipage}
	      \\ \hline
    \end{tabular}
  
  
	\ref{inhalt.tex}


	\end{document}
	
