[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, left)]] [wikipedia:Cdrkit:wodim] ist ein Kommandozeilenprogramm, das sich zum Brennen aller Arten von Audio- und Daten-CDs und bedingt auch für DVDs eignet. Es ist Bestandteil von [wikipedia:cdrkit:], das außerdem noch die Programme [:genisoimage:] und '''icedax''' enthält. Cdrkit wiederum ist eine Abspaltung der bis 2007 in Ubuntu enthaltenen [wikipedia:cdrtools:], das die Programme [:cdrecord:], '''mkisofs''' und '''cdda2wav''' zur Verfügung stellt. Um die Kompatibilität mit anderen Programmen sicher zu stellen, existieren unter Ubuntu Verknüpfungen auf die ursprünglichen Programme: * `wodim` kann auch als `cdrecord` aufgerufen werden * `genisoimage` kann auch als `mkisofs` aufgerufen werden * `icedax` kann auch als `cdda2wav` aufgerufen werden Ursache für die Abspaltung war ein [wikipedia:Cdrtools#Lizenzdiskussion:Streit über die Lizenzierung] des Quellcodes von cdrecord. Leider wurde dieser Streit nie gelöst. Ohne einer der beteiligten Parteien Recht geben zu wollen, bleiben folgende Fakten übrig: 1. wodim ist in den offiziellen Paketquellen enthalten, ist technisch gesehen aber veraltet 1. cdrecord ist technisch weiter entwickelt als wodim, wird aber auch seit Herbst 2021 nicht mehr weiter entwickelt. Weder wodim noch cdrecord sind bei DVD und BD erste Wahl. `growisofs` und `libburn`-basierte Programme bieten mehr Möglichkeiten im Bezug auf Formatierung und Multi-Session. Das libburn-Programm `cdrskin` versteht viele der Optionen von wodim und kann es in den Anwendungsfällen CD-DA (Audio) und CD-ROM (Daten) ersetzen. = Installation = {{{#!vorlage Paketinstallation wodim, universe }}} = Nutzung = Um wodim zu nutzen, öffnet man ein Terminal [2] und ruft das Programm mit den entsprechenden Optionen und Parametern auf. Die allgemeine Syntax von wodim lautet: {{{#!vorlage Befehl wodim OPTIONEN [dev=deviceX] TRACK-OPTIONEN DATEI(EN) }}} `deviceX` ist der CD/DVD-Brenner wie z.B. '''/dev/sr0''' oder '''/dev/cdrw''' (Linux-Geräte-Notation) - eine Liste von gültigen Werten bekommt man auf älteren Systemen mit `wodim --devices`. Leider benötigt das die Existenz von Gerätedateien `/dev/scdN`, die aus der Mode gekommen sind. Wenn man nicht `wodim` durch `cdrskin` ersetzt, bleibt nur klassische Shell: {{{#!vorlage Befehl ls -l /dev/sr* }}} Für CD-DA (Audio) müssen die Dateien als unkomprimiertes 44100 Hz Stereo im '''.wav'''-Format oder im '''.au'''-Format vorliegen. Jede Datei wird dann zu einem Musikstück (engl. Track). Für CD-ROM (Daten) wird man normalerweise eine einzelne Datei übergeben, die das Speicherabbild eines Filesystems enthält (oft ISO 9660 oder UDF). Das selbe gilt für DVD und BD Medien. {{{#!vorlage Hinweis `wodim` benötigt rw-Rechte an der Gerätedatei. Oft hat der Desktopuser diese Rechte durch einen ACL-Eintrag (ablesbar mit z.B. `getfacl /dev/sr0`). Wenn man sich die Rechte nicht erteilen kann oder will, kann man `wodim` mit [:sudo: Root-Rechten] laufen lassen, falls das erlaubt ist. }}} == Allgemeine Optionen == wodim 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! Wenn man DVD- oder BD-Medien brennen will, sollte man wirklich nicht `wodim`, sondern z.B. das Programm `cdrskin` verwenden. Optionen, die `cdrskin` nicht kennt, sind hier mit "(Nicht cdrskin.)" gekennzeichnet. Die Aussagen zu DVD und BD betreffen die Fähigkeiten von cdrskin, nicht die von wodim. ||<-2 rowclass="titel">Die 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. Geschwindigkeitsfaktor für DVD: 1x = 1.385.000 bytes/sekunde, für BD: 1x = 4.495.625 bytes/sekunde.|| ||``-multi``||Hält eine CD, DVD-R, DVD+R, unformatierte DVD-RW, oder BD-R offen für weitere Brennläufe (engl. Multisession). Fehlt `-multi` dann kann auf diesen Medientypen nach dem Brennen nicht nochmal gebrannt werden. (CD-RW und DVD-RW können aber ganz gelöscht und dann wiederverwendet werden.)|| ||``-format``||Formatiert eine DVD+RW. Mit `cdrskin` verwendet man besser `blank=format_if_needed`, weil das weiß was Medien brauchen, oder `blank=format_overwrite`, um DVD-RW ähnlich wie DVD+RW zu machen.|| ||``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.|| ||``-version``||Gibt die Versionsnummer des Programmes aus.|| ||``-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 gar nicht 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. Programm `eject` oder wodim-Option `-eject` können danach immer noch auswerfen.|| ||``-eject``||Wirft das Medium nach abgeschlossener Arbeit aus.|| == Track-Optionen == ||<-2 rowclass="titel">Die Track-Optionen|| ||Track-Option||Beschreibung|| ||``-data``|| Es wird eine CD so gebrannt, dass das Ergebnis als CD-ROM lesbar ist. Die Eingabedatei für wodim ist dann fast immer ein Filesystemabbild (z.B. ISO 9660 von `genisoimage` oder `xorriso`) oder ein Datenarchiv (z.B. 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.)|| == Weitere Dokumentation == Eine komplette Übersicht aller Optionen erhält man in den [:man:Manpage] von wodim oder cdrskin. = Beispiele = Die Beispiele verwenden `/dev/sr0` als Namen der Gerätedatei. Das passt immer, wenn man nur ein Laufwerk angeschlossen hat, weil `sr0` das erste optische Laufwerk ist, das der Kernel erkannt hat. `/dev/sr1` ist dann das nächste, und so weiter. Alle Beispiele bis auf das mit `-prcap` funktionieren auch mit dem Programm `cdrskin`. Multi-Session geht dabei mit CD-R, CD-RW, DVD-R, DVD+R, BD-R, unformatierten DVD-RW. Für DVD+RW, DVD-RAM, BD-RE, formatierte DVD-RW muss man bei den `cdrskin`-Läufen zu `-multi` die Option `--grow_overwriteable_iso` dazugeben. * Im ersten Beispiel wird ein ISO 9660 Filesystemabbbild ("Image") mit sehr geringer Geschwindigkeit auf die CD in '''/dev/sr0''' gebrannt: {{{#!vorlage Befehl wodim -v speed=2 fs=4m padsize=300k dev=/dev/sr0 image.iso }}} * Im zweiten Beispiel wird eine Multisession-CD angefangen. Der dabei unbenutzt gebliebene Platz kann später in einem weiteren Lauf ("Session") von wodim zum Schreiben benutzt werden. {{{#!vorlage Befehl wodim -v -multi fs=16m padsize=300k dev=/dev/sr0 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. Als Beispiel sollen 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 muss zuerst mit der `wodim`-Option `-msinfo` festgestellt werden, wo der Linux-Kernel ansetzen würde und wo der Brenner die nächste Session beginnen würde. Dann wird `genisoimage` genutzt, um den Verzeichnisbaum der vorherigen Session zu lesen, nach Wunsch zu ändern, und zusammen mit den neu hinzugekommenen Dateiinhalten als '''image2.iso''' zu speichern. Dieses Abbild wird von wodim dann auf die CD gebrannt. {{{#!vorlage Befehl ms_info=$(wodim dev=/dev/sr0 -msinfo) genisoimage -M /dev/sr0 -C $"ms_info" -o image2.iso -graft-points -r -J /fotos="$HOME"/fotos_fuer_cd wodim -v -multi fs=16m padsize=300k dev=/dev/sr0 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 diesem Beispiel werden alle Audiodateien ('''.wav''') aus dem Verzeichnis '''/musik''' als Audio-CD gebrannt: {{{#!vorlage Befehl wodim -v dev=/dev/sr0 -audio fs=8m /musik/*.wav }}} Weil Musik selten als `.wav` vorliegt, muss man sich diese Dateien meist mit Programmen wie `ffmpeg` aus anderen Formaten konvertieren. * Dieses Beispiel gibt einige Informationen über die Fähigkeiten des Brenners mit CD und den ältesten DVD-Typen. {{{#!vorlage Befehl wodim -prcap }}} (Nicht cdrskin.) * Im letzten Beispiel wird eine CD-RW oder eine unformatierte DVD-RW zur Wiederverwendung gelöscht: {{{#!vorlage Befehl sudo umount /dev/sr0 wodim -v dev=/dev/sr0 blank=all }}} = cdrskin = `cdrskin` ist nicht in der Standardinstallation von Ubuntu enthalten. Man muss es ausdrücklich installieren: {{{#!vorlage Paketinstallation cdrskin, universe }}} Zur Dokumentation der Optionen dienen diese Befehle: {{{#!vorlage Befehl man cdrskin # ruft die Manpage auf cdrskin -help 2>&1 | less # führt kurz alle wodim-kompatiblen Optionen auf cdrskin --help 2>&1 | less # führt kurz alle nicht-wodim-Optionen auf }}} = Graphische Benutzeroberflächen = Durch die große Vielzahl an Optionen und Parametern kann die Nutzung von wodim auf der Kommandozeile relativ komplex sein, wenn man alle Möglichkeiten des Programms nutzen möchte. Es gibt jedoch eine Reihe von Brennprogrammen mit grafischer Benutzeroberfläche, welche im Artikel [:Brennprogramme:] aufgeführt sind. Viele dieser Programme sind letztendlich Frontends, die einen begrenzten Teil der Funktionen von wodim in Form einer graphischen Oberfläche zur Verfügung stellen. = Links = * [https://tracker.debian.org/pkg/cdrkit cdrkit Debian Package Tracker] {en} * [http://scdbackup.sourceforge.net/cdrskin_eng.html cdrskin Projektseite] {en} * [http://scdbackup.sourceforge.net/man_1_cdrskin.html man 1 cdrskin] {en} * [:Brennprogramme:] {Übersicht} Übersichtsartikel # tag: Shell, Brennprogramm