to-st.de | ||||||||||||||||||||||||||||
Home | Impressum | Datenschutz | Kolophon | Kontakt | ||||||||||||||||||||||||||||
Eyecatcher Image: /img/eyecatcher/wr/teaser_780x175_wr_schloss.jpg
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
CD's brennen: CD-Brenner und LinuxInfoquellenÜber das Thema Brandmeister Pinguin sind im Jahr 2000 in einer Miniserie zwei Artikel im Computer-Magazin c't erschienen [Heft 3/2000, S.224ff und Heft 8/2000, S. 194ff ]. Im ersten Artikel wird die nötige Kernelkonfiguration, das System der benötigten Module, und das Erzeugen von Images mit mkisofs/mkhybrid besprochen. Der zweite Teil behandelt die erhältliche Software: cdrecord, cdrdao, xcdroast, gcombust.Eine aktuelle Liste unterstützter Brenner kann unter der Adresse http://www.guug.de:8080/cgi-bin/winni/lsc.pl begutachtet werden. Weitere Möglichkeiten zur Information bieten:
Hardware einrichten (Fall 1): EIDE-BrennerEIDE-Brenner machen den Löwenanteil der Gerätelandschaft vor allem im Home-Bereich aus - sie sind preisgünstig und erfordern keine extra Controller-Karte, da der EIDE-Controller auf dem Mainboard mit zwei Kanälen verteten ist. Treiber für Windows und Mac liegen immer bei, nur Linux fehlt. Doch das muss nicht traurig machen. Es gibt eben auch Programmierer, die für lau und Linux Treiber schreiben - in diesem Falle das ide-scsi Modul, das eine SCSI-Emulation für IDE-Laufwerke in das Betriebssystem einbaut. Schlussendlich sieht der Kernel einen EIDE-Brenner als SCSI-Gerät an. Damit können Brennprogramme wie cdrecord (für das diverse grafische Oberflächen wie das legendäre xcdroast, das KDE-Programm KreateCD oder gcombust für gtk/gnome existieren) und cdrdao gut umgehen.Um einen EIDE-Brenner nutzen zu können, müssen wir also zuerst einmal einen neuen Kernel kompilieren: Dabei ist der "normale" IDE/ATAPI CDROM Support zu deaktivieren:
und stattdessen die SCSI Emulation für zu wählen:
Weiterhin müssen natürlich die gängigen Module, die zum Thema SCSI im Teil 2 der Hardwareeinrichtung genannt sind, kompiliert werden. Sofern alles geklappt hat, sollte der CD-Brenner bei den IDE-Geräten wie folgt auftauchen (dabei wird er noch als CDROM erkannt):
Außerdem taucht er dann noch einmal unter der Rubrik SCSI auf:
Mit dem Programm
Wenn der CD-Brenner ähnlich wie im Beispiel in der Liste auftaucht, dann sollte alles funktionieren. Die Handhabung unterscheidet sich dabei nicht von der eines "echten" SCSI-Brenners. Was die Geschwindigkeit angeht, so ist man meist mit zweifacher Geschwindigkeit auf der sicheren Seite, ohne einen Rohling zu riskieren.
Hardware einrichten (Fall 2): SCSI-BrennerFür CD-Brenner mit SCSI-Anschluss gilt: gibt es einen Treiber (Modul) für den SCSI-Controller im System, läuft auch der Brenner (hüstel).Wenn bei der Linux-Installation schon ein SCSI-CDROM-Laufwerk mit eingerichtet wurde, ist wahrscheinlich im installierten Standard-Kernel alles Nötige vorhanden, damit auch der SCSI-Brenner läuft. Ansonsten müsste man die benötigten Module mal mit
modprobe [Modulname Optionen]
von Hand testen, und eventuell einen neuen Kernel kompilieren. Folgende Kerneloptionen/Module sind notwendig (Kernel 2.2):
Die Bootmeldung des erkannten Brenners kann man sich mit dmesg|more ansehen:
scsi0 : Tekram DC390/AM53C974 V2.0d23 1999/08/26
scsi : 1 hosts.
Vendor: YAMAHA Model: CDR-400t Rev: 1.0009
Type: CD-WRITER ANSI SCSI revision: 02
Brennerprogramme benutzen die Zuweisung der Geräte nach der Formel
dev=Bus,ID,LUN.
Dabei ist Bus die Nummer des SCSI-Controllers, beginnend mit 0. ID bezeichnet
die SCSI-ID des Brenners, LUN ist immer gleich 0. Ein Brenner am 1.SCSI-Controller
mit der SCSI-ID 3 wird also mit dev=0,3,0 bezeichnet.
Alle Optionen mit xcdroastDas bekannteste und wohl meist gebrauchte Brennprogramm für Linux ist xcdroast von Thomas Niederreiter. Es ist sehr übersichtlich gegliedert und man kann schnell solche Sachen machen wie z.B. CD kopieren, Audio-CD aus verschiedenen WAV zusammenstellen und eine Backup-CD aus verschiedenen Dateien/Verzeichnissen zusammenklicken. Die Geräte (CD-ROM, Brenner) werden automatisch erkannt (technisch gesehen benutzt xcdroast den Befehl cdrecord -scanbus ).
Die Programm-Versionen bis 0.96 benutzen Tcl/Tk zur Darstellung der grafischen Oberfläche. Ab Version 0.98 kommt GTK+ zum Einsatz, zur Zeit gibt es hiervon schon stabile beta-Versionen. Die Bedienung von xcdroast ist fast selbsterklärend, ansonsten hilft ein Blick in die mitgelieferte Doku. Den temporär benötigten Speicherplatz (für das CD-Image) legt man unter Setup/HD Setup an. Man sollte explizit ein Verzeichnis auf einer gemounteten Platte angeben, sonst könnte jeder Benutzer Partitionen löschen. Brennerprogramme in der shellKommandozeilen-Programme lassen sich gut in Shell-Scripte einbauen, so dass man bestimmte Aufgaben wie CD-Kopieren oder ein Backup durch Eingabe eines einzigen Wortes bzw. automatisch mittels at oder cron durchführen kann. Die inkrementelle Sicherung der Konfiguration in /etc oder der benutzerdefinierten Einstellungen und Daten im /home-Zweig sind als Beispiele zu nennen. Auf diese Wiese lassen sich die Fähigkeiten von cdrecord, cdrdao und der bash richtig ausreizen. Es ist so auch ohne X-Windows möglich, einen alten 486 DX-2/66 mit 16MB RAM, IDE/VLB-SCSI-Controller, 700MB Festplatte und Brenner, in eine Kopiermaschine zu verwandeln. Voraussetzung für das Kopieren von Audio-CD's, oder die Umwandlung z.B. in wav- oder mp3-Dateien, ist das Extrahieren der Audio-Daten. Der Fachbegriff nennt sich Digital Audio Extracting (DAE). Alte CD-ROM Laufwerke können das nicht unbedingt (z.B. mein altes SCSI-CD-ROM Sanyo CRD-254SH), alle neuen CD-ROM Laufwerke und Brenner (egal ob EIDE oder SCSI) sind dazu aber in der Lage. Informationen über einen Rohling im Brenner mit SCSI-ID 4 erhält man mit:
Das Kommando zeigt zuerst die Einstellungen des Benners an, inklusive maximaler Brenngeschwindigkeit ("writing power: 4"). Inhaltsverzeichnis (TOC) und Länge einer Audio- oder Daten-CD lassen sich bestimmen mit:
Um eine Audio-CD im CD-ROM-Laufwerk (SCSI-ID 3) auf den Rohling im Brenner (SCSI-ID 5) mit zweifacher Geschwindigkeit zu kopieren, reicht folgendes: nice --18 cdrdao copy --source-device 0,3,0 --device 0,5,0 --speed 2 Der nice-Wert von -18 sagt dem System, das dieser Prozess absolutem Vorrang hat. Damit wird gesichert, dass kein zu öffnendes netscape oder gimp den Brennvorgang unterbricht, weil der Puffer zwischenzeitlich leerläft und dem Laser kurzzeitig die Daten fehlen. Zu achten wäre noch darauf, dass der Befehl in einem Verzeichnis abgesetzt wird, in dem genug Platz für die zwischenzeiliche Speicherung des CD-Inhalts - also ca. 650-690 MB - vorhanden ist. Man kann auch ohne Plattenplatz, also on-the-fly, kopieren: nice --18 cdrdao copy --on-the-fly --source-device 0,3,0 --device 0,5,0 Den Disc-At-Once Modus kann man immer dann gebrauchen, wenn Audio- oder Daten-CD's einfach nur zu kopieren sind. Möchte man Daten sichern, ist das Gespann mkisofs/cdrecord die beste Wahl. Mit cdrecord kann man im Track-At-Once Modus (TAO) u.a. auch CD-RW's beschreiben. Zuerst wird immer ein Image der Daten erstellt, z.B. um den /home Zweig - also alle Benutzer-Daten - (ohne Komprimierung) zu sichern:
mkisofs -o isoimage.raw -R -J /home Der Befehl erstellt das Image isoimage.raw im aktuellen Verzeichnis,
mit allen Dateienn aus /home, mit Joliet (-J) und Rockridge (-R) Format. Weitere Optionen zeigt Man kann das Image überprüfen mit:
Hier zeigt ls den Inhalt des erzeugten ISO9660 Dateisystems in der Datei isoimage.raw . Im übrigen taucht das Dateisystem auch bei einem df auf. Danach Danach kommt das Brennen des Images auf den Rohling. Dabei wird der Fortschritt in der Shell angezeigt ("-v"), die Geschwindigkeit ist 2-fach ("speed=2"), der Brenner hat die ID 5 ("dev=0,5,0"), und die fertige CD soll nach dem Brennen ausgespuckt werden ("-eject").
Bei Multisession-CD's, auf die man den nächsten Rutsch aufbrennen möchte, muss die vorhergehende Session mit Start-und Endsektor ermittelt werden:
Bei einem leeren Rohling ist natürlich keine Session drauf, cdrecord bringt dann eine Fehlermeldung: "cdrecord: Input/output error. read toc: scsi sendcmd: retryable error ..." mkisofs -o isoimage_2.raw -R -J -C 0,24906 -M /dev/cdrom /home ; cdrecord -v speed=4 dev=0,5,0 -eject -multi isoimage_2.raw Man sieht hier auch, dass die Notation der Devices (/dev/cdrom!) bei mkisofs anders ist als bei cdrecord. Die Option "-C 0,2906" sorgt für den richtigen Startpunkt, "-M" heisst Multisession, ebenso wie "multi" bei cdrecord. Auf den ersten Blick wirkt das Ganze etwas kompliziert. In selbstgeschriebenen Shell-Scripten, welche z.B. mittels grep cdrecord-Ausgaben auswerten und die Optionen automatisch richtig einsetzen, ist damit ein Backup auf RW-Medien elegant zu lösen. Wenn das zu schwierig oder die Datenmenge zu gross ist, löscht man vorher eine CD-RW mit: cdrecord -force blank=all dev=0,5,0 Das Vertauschen der SCSI-ID's wäre bei diesem Befehl tödlich - "-force" heisst "Fehler ignorieren" und löscht eventuell bei "dev=0,1,0" das ganze System auf der 1.Festplatte ? Andreas Kraska, Tobias Stöber |