Schrijven van CDs met Linux

ArticleCategory: [Es gibt verschiedene Artikel Kategorien]

Applications

AuthorImage:[Ein Bild von Dir]

[Katja & Guido Socher]

TranslationInfo:[Autor und Übersetzer]

original in en Katja & Guido Socher 

en to nl Ward Poelmans

AboutTheAuthor:[Eine kleine Biographie über den Autor]

Katja is de Duitse editor van LinuxFocus. Zij houdt van Tux, film & fotografie en de zee. Haar homepage kan hier gevonden worden.

Guido is al lang Linux fan en hij houd van Linux omdat het gemaakt wordt door eerlijke en open mensen. Dit is 1 van de redenen waarom we het open source noemen. Zijn homepage kan je vinden op linuxfocus.org/~guido.

Abstract:[Hier sollte eine kleine Zusammenfassung stehen]

In dit artikel beschrijven we hoe je CDs kunt schrijven in Linux.

ArticleIllustration:[Das Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel. Überschriften innerhalb des Artikels sollten h2 oder h3 sein.]

Misschien heb je Katja's artikel Een heel nieuwe wereld gelezen in ons laatste ontmoeting en ging je op tour met Tux. En nu heb je veel "beelden" en "geluidjes" die je wilt bewaren en je vraagt je af hoe je dit kan doen. Alles op een CD branden is een goede oplossing en in dit artikel gaan we uitlegen hoe je dat kan doen.

Wat heb je nodig

Hardware setup:
Natuurlijk heb je een werkend Linux en een CD schrijver nodig. Als je een SCSI CD schrijver heb is de kans groot dat de schrijver onmiddelijk wordt herkent door de kernel. Je moet alleen controleren of je SCSI hostadapter door Linux ondersteund wordt (kijk daarvoor in de hardware database). Alle SCSI CD schrijvers werken onder Linux. Voor een ATAPI/IDE schrijver moet je SCSI emulatie instellen om je CD schrijver te laten werken als een SCSI apparaat alhoewel de eigenlijke hardware verbinding gebeurt via een IDE bus. Hoe je dit doet is beschreven in het README.atapi bestand van xcdroast en we raden ook aan dat je de CD Writing HOWTO leest op linuxdoc.org
Voor USB schrijvers verwijzen we naar de USB-CD Writing HOWTO op mobilix.org/linux_usb_cd.html.
Aangezien we beiden enkel ervaring hebben met SCSI branders zouden we de informatie die je daar vindt enkel kunnen herhalen.

Software om CDs te schrijven:
Voor het schrijven van CDs heb je de volgende programma's nodig:

  1. cdrecord: dit is het programma dat communiceert met je CDs schrijver.
  2. mkisofs: dit heb je nodig voor het maken van data CDs. Het wordt gebruikt voor het maken van een bestand systeem image. Voor CDs noemt dit een ISO image.
  3. cdda2wav: dit programma is nodig voor het lezen van digitale audio data van audio CDs.
Deze 3 programma's zitten allemaal in het cdrtools pakket dat kan worden gedownload van www.xcdroast.org
of ftp.fokus.gmd/pub/unix/cdrecord/
Met deze tools kun je al CDs schrijven via de commandoregel. Maar als je een gebruiksvriendelijkere grafische interface wilt, dan heb je ook nog 1 van de vele 'frontend'-programma's nodig. In dit artikel bespreken we alleen xcdroast (http://www.xcdroast.org) en koncd (http://www.koncd.org/). xcdroast blijft het programma met de meeste mogelijkheden en koncd is erg gemakkelijk in gebruik.


Installatie

In de meeste gevallen is xcdroast al geinstalleerd op je computer maar zeker op de RedHat distributie is xcdroast gecompileerd met de pam-library wat betekend dat het altijd zal vragen om het root wachtwoord als je CDs wil schrijven. En hoogstwaarschijnelijk wil je dat wachtwoord niet geven aan alle gebruikers die CDs willen schrijven. Een tweede probleem is dat het niet zal toestaan dat je het programma via het netwerk op afstand start. Daarom is het beter dat je de laatste versie downloadt van http://www.xcdroast.org . Dit zou makkelijk moeten zijn aangezien er voor de meeste distributies voorgecompileerde pakketten zijn.
koncd kun je downloaden van www.koncd.org. Recente versies van koncd gebruiken nieuwe QT/KDE mogelijkheden. Als je niet je tijd wil besteden aan het updaten van je QT en KDE libraries, kun je een oudere versie van koncd gebruiken. Voor dit artikel hebben we koncd-0.7.5 gebruikt onder RedHat 7.1

Schrijven van CDs als een normaal (niet-root) gebruiker

Om CDs te schrijven moet je eerst vooral schrijfrechten hebben tot alle /dev/sg* apparaten die communiceren met de hardware. Maar cdrecord kent ook een paar functies die root permissie nodig hebben. De beste oplossing is om SUID te gebruiken bij cdrecord en cdda2wav. Uhh? SUID? Geen zorgen. Je kunt Guido's artikel over bestandspermissies lezen als je exact wil weten wat het is maar voor het moment is het voldoende als je de volgende 2 commando's intypt:

chmod 4111 /usr/bin/cdrecord
chmod 4111 /usr/bin/cdda2wav

Maar wees voorzichtig want dit kan een mogelijk veiligheidsrisco zijn; in ieder geval is het veiliger dan je root wachtwoord vertellen aan iedereen die CDs wil schrijven.
Nu kan je testen of je CD schrijver correct wordt herkend. Doe gewoon het volgende:

cdrecord -scanbus

Als alles in orde is zou je iets als het volgende moeten zien:

0,6,0 6) 'PLEXTOR ' 'CD-ROM PX-W8220T ' '1.03' Removable CD-ROM

Het nummer en de omschrijving kunnen anders zijn afhankelijk van je hardeware setup.
Je kan ook op de SETUP knop van xcdroast of koncd klikken en controleren of je schrijver correct wordt herkend.
Zo, laten we nu eindelijk een CD schrijven.

Algemene manier om CDs te schrijven

Dit zijn de vier stappen om CDs te schrijven:
  1. Je moet kiezen welke data/muziek je op CD wil schrijven
  2. Je moet enkele optie's kiezen voor de CD die je gaat schrijven. Bijvoorbeeld: wanneer je een audio CD schrijft moet je kiezen tussen TAO en DAO mode of voor een data cd moet je kiezen welk bestandssysteem je wil gebruiken.
  3. Je moet een image map maken met de bestanden erin die je op CD wil schrijven. Als je gewoon een andere CD wilt kopiëren moet je kiezen voor "write on the fly" want anders moet je een eerst een image map maken op je harde schijf.
    Een image map is een tijdelijk opslagplaats voor de data die op CD zal worden geschreven. Voor audio CDs zijn dit het index bestand en het wav bestand die de muziek bevatten en voor data CDs is dit een groot bestand genaamd een ISO image.
  4. Je schrijft de CD.
CDs moeten normaal geschreven worden in 1 keer en de data toevoer mag niet onderbroken worden tijden het schrijven. Dankzij de realtime extensions zijn buffer underruns enkel een probleem voor windows gebruikers. Met Linux heb je geen "burn proof" nodig. Er is een speciale buffer genaamd FIFO in de CD schrijver zelf om kleine storing te compenseren. Dit is normaal gezien genoeg om schrijf-mislukkingen te vermijden onder Linux. Desondanks moet je voorzichtig zijn en geen dingen doen die teveel CPU kracht vragen. Je kunt surfen, software compileren, ... maar een groot bestand verwijderen kan een probleem zijn en kan het schrijf proces verstoren met een kapotte cd als resultaat.
Als je bezorgd bent over buffer underruns kun je de simulation write (dummy write) optie gebruiken om het schrijfproces te testen voordat je de CD echt schrijft. Daarbij wordt het schrijfproces getest met echte data maar de laser in de CD schrijver staat af. Het is altijd beter om een test uit te voeren dan alles opnieuw te moeten doen.
Het feit dat je normaal je CD in 1 keer moet schrijven betekent dat als je iets vergeten bent, zelfs als het een klein bestand je de CD opnieuw zal moeten schrijven. Er is de mogelijkheid van multisession waarbij je later nog iets kan toevoegen maar daar zullen we niet over spreken omdat je bij multisession de CD niet kan lezen op veel CD schrijvers zolang hij niet klaar is en omdat de prijs van 1 CD zo laag is dat we nooit reden hadden om het te gebruiken.

Setup

Wanneer je koncd of xcdroast start zul je zien dat ze beiden een setup knop hebben. Daar kun je vinden of je schrijver correct is herkend en kun je de algemene opties instellen.
[xcdroast: start het als root om te configureren] Let's Laten we eens kijken naar de setup van xcdroast en koncd:

(Pure) muziek (audio) CDs

Hier zou je eerst een beetje om het formaat moeten denken. Als het een liedje is van een andere CD is er geen probleem. Je kan het gewoon verdergaan en het kopiëren. Maar anders moet je er rekening mee houden dat cdrecord enkel .au en .wav bestanden herkent en hen automatisch converteert naar het juiste formaat. Andere formaten moeten eerst worden omgezet naar .wav als je niet alleen alleen storing wilt horen op je CD. Om een mp3 bestand te converteren naar wav moet je het volgende commando gebruiken:
mpg123 -w /tmp/liedje.wav liedje.mp3
Dit laat je toe om een normale audio CD te maken van mp3 muziek. Het neemt meer plaats maar het kan op bijna elke CD speler worden afgespeeld.
Wanneer je eindelijk de CD wilt branden kan je kiezen of je kopie in TAO of DAO mode moet gebrand worden. In TAO mode heb je 2 seconden pause tussen de liedjes op je CD. In DAO mode heb je dit niet waardoor DAO de mode is voor live muziek.
TAO = Track at Once = 1 liedje per keer
DAO = Disc at One = een CD in 1 keer
Je kan een CD volledig kopiëren of liedjes van verschillende CDs mixen of met andere geluidsbestanden van internet bijvoorbeeld.

Laat we eerst eens kijken hoe we een CD zonder veranderingen kunnen kopieren:

[xcdroast kopieert CD]


Laten we nu eens kijken wat je moet doen om een CD te maken met muziek van verschillende plaatsen:

(Pure) Data CDs

Elke data CD moet een bestandssysteem hebben of, zoals dikwijls wordt gezegd, de CD moet worden geformateerd. Je kan kiezen welk bestands systeem je wilt gebruiken. Deze keuze hangt af van onder welk besturingssyste(e)m(en) je wilt dat de CD leesbaar is. De ISO-9660 standaard beschrijft het CD bestandssyteem dat geen lange namen toelaat. Daarom zijn er uitbreidingen gemaakt voor deze standaard. Voor Linux en Unix is dat 'RockRidge' en Microsoft gebruikt 'Joliet'. Met het RockRidge formaat kun je ook permissies gebruiken zoals je het al kent van je systeem.
Het wordt aangeraden om RockRidge en Joliet te samen te gebruiken op dezelfde CD.
Als je gewoon een CD wilt kopiëren van een bestaande CD moet je je hier geen zorgen over maken omdat de CD al een bestandssysteem heeft en dat wordt gewoon overgekopieerd.

[xcdroast Master CD]

Als je data van je harde schijf wilt kopiëren:
[koncd Master CD]

Backup van je home map

Eenvoudig gesteld kun je alles backuppen met de methode uitlegd onder "pure data CDs". Als de inhoud van je home map te groot is voor 1 CD moet je de sub-mappen appart op CD schrijven.

Tips en Trucs:

Het kan handig zijn om je ISO image te controleren op fouten voor je gaat schrijven. Om dit te doen kan je je ISO image mouten alsof het een echte CD is:

Verander naar root: su -
Maak een lege map (gekend als een mount punt): mkdir /tmp/mijncd
Mount de ISO image (verbind de ISO image naar de map):
mount -o loop -t iso9660 Image.iso /tmp/mijncd
Je kan nu het commando "ls" gebruiken om de CD te controleren: ls /tmp/mijncd
Als het lijkt dat het in orde is umount de image dan: umount /tmp/mijncd

... en je schrijft de image op een CD.

Commandoregel gereedschappen

Hierboven hebben we de grafische methodes besproken om CDs te schrijven maar het kan ook via de opdrachtregel. Als je in de man pagina's van cdrecord kijkt zul je honderden opties zien, uuuuhh... wees niet bang. Het is veel makkelijk dan het lijkt. Download de volgende 2 perl scripts cdrecordeasy en mkisofeasy.
Ze zitten samen in het package easycdscripts (download pagina)
Pak ze uit met de opdracht:

tar zxvf easycdscripts-0.1.tar.gz

Voer nu cdrecord -scanbus uit. Kijk naar de lijn waar je CD schrijver staat en onthoud de nummers die aan het begin staan. Iets in de aard van 0,4,0 of 0,2,0...
Verander het bestand cdrecordeasy door dit nummer in te voeren achter de lijn die zegt $dev=.... Je vindt deze lijn ergens aan het begin van het bestand.
Nu is de installatie van deze 2 kleine scripts gedaan. Een CD maken gaat nu heel eenvoudig:
  1. Kopieer alle bestanden die je op je CD wilt in 1 map (bv. ~/cdrom). Harde schijven zijn deze dagen erg groot en goedkoop dus het mag geen probleem zijn om enkele honderden MB te kopiëren.
  2. Voer het volgende commando uit: mkisofseasy ~/image.iso ~/cdrom
    Dit maakt een ISO image van alle bestanden in de map ~/cdrom
  3. Schrijf de CD met het volgende commando:: cdrecordeasy ~/image.iso
Zo. Dat is veel simpel dan het in het begin leek, niet? :-)

Veel plezier met je CDs

Referencies