|
LinuxFocus article number 227
http://linuxfocus.org
|
|
|
|
|
door Katja & Guido Socher <katja/at/linuxfocusorg guido/at/linuxfocus.org>
Over de auteur:
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.
Vertaald naar het Nederlands door:
Ward Poelmans <Ward.Poelmans/at/pandora.be>
|
Schrijven van CDs met Linux
Kort:
In dit artikel beschrijven we hoe je CDs kunt schrijven in Linux.
_________________ _________________ _________________
|
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:
- cdrecord: dit is het programma dat communiceert met je CDs schrijver.
- 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.
- 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:
- Je moet kiezen welke data/muziek je op CD wil schrijven
- 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.
- 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.
- 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.
Let's
Laten we eens kijken naar de setup van xcdroast en koncd:
-
xcdroast:
De eerste keer zul je een pop-up venster krijgen dat zegt
dat je het programma als root moet starten en configuren zodat
de gebruikers dit niet over moeten doen.
- Device Scan: hier zie je allemaal apparaten
die verbonden zijn metje SCSI bus.
- CD settings: hier kun je je CD schrijver kiezen en het apparaat
waarvan je data/muziek moet worden gelezen.
Voor "CD writer mode" moet je de juiste driver kiezen voor je schrijver
maar normaal zal "autodetect" volstaan. CD writer FIFO Buffer size:
de hangt af van je hardeware. Je moet in de handeleiding van je schrijver
kijken. Meestal is dat 4MB of 8MB.
Omdat een CD in 1 keer zonder onderbreking moet worden geschreven,
is er een buffer (=FIFO) om kleine storingen op te vangen zodat het
schrijfproces niet wordt onderbroken.
- HD settings: hier moet je de map kiezen die dienst doet alst
tijdelijke opslagruimte voor je ISO image. Er moet meer dan 800MB
vrije ruimte zijn (je kan dit controleren met het commando
df -k /de/map of via een bestandsbeheerder).
-
Miscellaneous:
- Audio: dit is alleen interessant als je wilt dat
xcdroast de liedjes kan afspelen die je gaat schrijven,
het heeft niks te maken met het schrijfproces. DSP
staat voor digital signal processor en het is het het stukje
hardware dat geluid naar de luidsprekers zal sturen.
- Network: voor veel CDs is er informatie beschikbaar
over hun titels van een database op het internet. Bij het
schrijven kan je deze informatie opvragen. Dit kan je veel
typwerk besparen.
- Logging: om een logbestand te maken.
- Internationalization: hier kan je de taal van
xcdroast kiezen. Alles zal dan in die taal staan.
- Options: hier kun je kiezen of je tips krijgt als je
over een knop gaat met je muiscursor. Zeker als
je het programma niet kent worden deze tips aangeraden.
- Users: Dit panel verschijnt alleen als je als root
bent ingelogd. Hier kun je kiezen wat normale gebruiks
mogen doen.
-
koncd:
Je kunt de apparaten die koncd automatisch herkent bekijken in een keuzevak.
Je kan tegen het programma zeggen naar welke schrijver het moet schrijven en
vanwaar het de CD moet lezen.
Dit moet je CD-ROM zijn of als je alleen maar een CD schrijver hebt dan moet je
die gebruiken voor het lezen én schrijven.
Je kunt ook "burn proof" selecteren als je CD-schrijver dat ondersteunt.
Burn proof vertraagt de snelheid van je schrijver wanneer je FIFO (zie hierboven) bijna leeg is.
(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:
Selecteer "Duplicate CD".
Je krijgt een menu aan je linkerkant waar je kunt zien:
CD/Image Info, Read Tracks, Verify CD, Play Audio-Tracks:
We weten niet waarom deze menu ingangen daar staan. Ze
houden geen steek als je een CD wil kopiëren. Zeker in
de versie die gebruikt is voor dit artikel (xcdroast-0.98alpha9). xcdroast
laat je namelijk alleen maar toe om "write on the fly" te doen
waarvoor je alleen het "Write CD" menu nodig hebt. Ga daarom direct
naar "Write CD".
Schrijf CD:
- Bovenaan moet je weer kiezen van welk
apparaat er moet worden gelezen en zijn snelheid.
Daarna moet je de CD schrijver kiezen en zijn snelheid.
De snelheid van de lezer moet iets hoger liggen dan
de schrijfsnelheid ( om buffer underruns te vermijden).
- Links zie je "CD to write":
Dit is enkel ter informatie. Je hebt geen keus dan
te kiezen voor "write on the fly".
- Recht zie je "write parameters":
CD R/RW type: hier moet je kiezen hoeveel minuten
er op de te schrijven CD passen en moet je kiezen tussen TAO en DAO
mode (zie hierboven).
Je kan kiezen om eerst een simulatie te schrijven (zie hierboven)
en of de CD wordt uitgeworpen na het schrijven.
"Pad tracks" is niet belangerijk voor het kopiëren van CDs.
Met "Blank CD-RW" kun je herschrijfbare CDs leegmaken en
uiteindelijk kun je met "WRITE CD" het schrijven laten beginnen.
Dat is alles.
- koncd:
Kies "Copy CD".
Bovenaan kan je de inhoud van een herschrijfbare CD wissen
en kun je de schrijfsnelheid kiezen. Onder "options" moet je
niets selecteren. Klik nu op "START" en het schrijven begint.
Laten we nu eens kijken wat je moet doen om een CD te maken
met muziek van verschillende plaatsen:
-
xcdroast
Nu moet je "Create CD" selecteren.
Laten we eens kijken naar het menu:
- CD/Image info:
Aan je linkerkant zie je de inhoud van de CD. Aan
de rechterkant zie je de inhoud van image map als je
daar iets in hebt staan. Er is niks te doen hier. Ga
onmiddelijk naar "Read Tracks"
- Read Tracks:
Bovenaan moet je kiezen van welk apparaat de muziek
moet gelezen worden en de image map. In dit geval
zullen de tracks worden geschreven als apparte .wav
bestanden en niet als 1 groot image bestand. Voor muziek
CDs moet je geen te hoge snelheid kiezen want ze zijn
eigenlijk maar bedoeld om aan "1 x" gelezen te worden.
Een te hoge snelheid zou de kwaliteit verminderen.
Een snelheid van "4 x" of "8 x" zou ok moeten zijn.
Om de muziek tracks in te lezen naar de image map
selecteer je de track die je wil kopieren en klik je op
"READ SELECTED TRACKS".
- Verify CD:
Als je de "VERIFY" knop indruk wordt er gecontroleerd
of de muziek tracks gelezen werden zonder fouten.
- Play Audio-Tracks:
Hiermee kun je de liedjes in de image map afspelen.
Om een liedje af te spelen moet je erop dubbelklikken.
- Master tracks:
Dit is alleen voor Data CDs. Voorlopig kun je het negeren.
- Delete Tracks:
Hier kan je zien hoeveel plaats je al gebruikt hebt en hoeveel
er nog vrij is. En je kunt tracks uit de image map verwijderen
als je dat wilt.
- Write Tracks:
Hier moet je eerst naar het tweede paneel gaan "Layout
tracks". Op de rechterkant zie je de inhoud van je
image map. Selecteer de tracks en klik op "add" om
ze over te kopieren naar het linker paneel voor schrijf tracks.
Ga dan terug naar het "write tracks" paneel. Hier vind je de
opties zoaals eerder al uitgelegd onder "Duplicate CD".
Maar deze keer moet je de optie "PAD tracks" selecteren.
Dit is om zeker te zijn dat alle .wav's correct zijn
getermineerd op de sectorgrenzen. Het Audio
CD formaat vereist namelijk dat alle .wav bestanden een veelvoud
van 2352 Bytes lang zijn. "PAD tracks" voegt enkele
null-bytes toe om zeker de correct lengte te hebben.
Klik dan op "WRITE CD" om de CD te schrijven.
- koncd:
Kies "audio CD". De versie gebruikt in dit artikel (0.7.5)
heeft nog niet de mogelijkheid om aparte audio tracks
van andere CDs te lezen. Maar je kan een aantal wav
bestanden van op je harde schijf selecteren en ze schrijven
als audio tracks op een CD. Klik op "Add track" en voeg
verschillende wav bestanden toe aan de lijst van
geselecteerde tracks. Onder "options" moet je "Use padding"
selecteren en klik dan "start" om de CD te schrijven.
(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:
Kies "Duplicate CD"
en doe alles hetzelfde als hierboven beschreven en kies dan gewoon "WRITE CD"
- koncd:
Kies "Copy CD" (zie hierboven).
Als je data van je harde schijf wilt kopiëren:
-
xcdroast:
Kies "Create CD" en dan "Master Tracks" uit het menu
aan de linkerkant.
- Onder "Master source" moet je kiezen welke
mappen er naar je CD worden geschreven. Je kan
ook de namen en paden kiezen die deze mappen op
je CD moeten hebben. (gebruik de "redirect" knop aan
de linker kant om dit te doen).
- ISO 9660 options:
Hier kan je kiezen tussen de image types die je wil:
Klik RockRidge + Joliet aan als je wil dat je CD leesbaar
zal zijn onder Linux en Windows.
- Onder 'boot options' kun je kiezen om een bootbare
CD te maken maar dat wordt niet besproken in dit artikel.
Als je een bootbare CD wil maken raden we aan om
kant-en-klare ISO images te gebruiken ( zie de referenties
aan het einde van dit artikel).
- Create session/image: Dit is het meest belangerijke
paneel. Hier kun je een ISO image maken van de bestanden
die je in het eerste paneel hebt geselecteerd. Klik op de knop
"master image to file" om dat te doen.
Kies altijd voor "fixation" (of beter: kies niet voor "Do not
fixate after write") tenzij je een multisessie CD wilt maken.
Als je niet kiest voor fixation wordt er geen TOC (=Table of
Contents = Inhoudstabel) aangemaakt en is je CD in
veel CD lezers niet leesbaar.
Ga nu naar "Write Tracks":
Hier gebruik je de image die je het gemaakt onder het paneel
"Master tracks". Ga naar het paneel.
"Layout tracks", selecteer je image en klik op "add". Ga dan
terug naar het paneel "Write tracks" en klik op de knop
"write tracks" onderaan. Je CD wordt nu geschreven.
- koncd:
Kopieer alle bestanden die je op CD wilt naar
1 map (gebruikmakend van het shell commando 'cp' of een
bestand manger).
Open koncd en kies voor "Master CD".
Onder "data" geef je de bron map waar je je bestanden
hebt ingeplaatst. Nu heb je verschillende mogelijkheden om
een CD te maken. We kiezen om een ISO image te maken en
dan die image op CD te schrijven. Onder Data -> "image
file" moet je de image een naam geven. De versie die
gebruikt wordt in dit artikel vereist dat het bestand al bestaat.
Maak daarom een leeg bestand genaamd "image" met het commando
"touch image".
Ga naar 'options' en klik op "Create CD image", druk op
"calculate size" aan de rechterkant en daarna "start".
Eens de image gemaakt is klik je op de optie "Write CD" en
deselecteer je "Create CD-image". Nu zal de schrijver
jouw CD branden.
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:
- 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.
- Voer het volgende commando uit: mkisofseasy ~/image.iso ~/cdrom
Dit maakt een ISO image van alle bestanden in de map ~/cdrom
- 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
2005-01-14, generated by lfparser_pdf version 2.51