CD-Writing HOWTO
Winfried Trümper <winni@xpilot.org>
Vertaald door: Ellen Bokhorst bokkie@nl.linux.orgv2.9.3, 23 juli 2000
In dit document wordt uitgelegd hoe CD-ROM's onder Linux te schrijven.
Veel mensen gebruiken Linux om CD-ROM's te branden, omdat het betrouwbaar
en makkelijk is. Geen blauwe schermen tijdens het branden en geen hoofdpijn
om de juiste combinatie hard- en software te krijgen. Het werkt gewoon
wanneer het eenmaal juist is ingesteld. In de CD-writing wordt een uitleg
gegeven van de setup, hoe data op de media geplaatst kan worden en er worden
interessante applicaties besproken waarin lezers zo aardig waren in te voorzien.
1.1 Copyright, licentie en gebruiksvoorwaarden
Copyright Winfried Trümper 1996-2000. All rights reserved.
Herdistributie en gebruik, met of zonder aanpassingen zijn toegestaan op
voorwaarde dat de naam van de auteur niet mag worden gebruikt als erkenning
van producten of om producten te promoten die zijn afgeleid van deze
software zonder nadrukkelijke voorafgaande geschreven permissie.
In deze zin zijn vertalingen welkom en hoeft hiervoor geen toestemming aan
mij te worden gevraagd.
De auteur doet afstand van alle rechtvaardigingen met betrekking tot dit
document, waaronder alle impliciete garanties of verkoopbaarheid en
geschikheid voor een bepaald doel; in geen geval zal de auteur
aansprakelijk zijn voor enig speciale, indirecte of gewichtdoende
beschadigingen of enige beschadingen hoe dan ook resulterend
uit het verlies door gebruik, gegevens of winsten, in een actie of contract,
nalatigheid of andere slordige actie,
voortkomend uit of in verband zijnde met het gebruik van dit document.
Samengevat: lees en gebruik op eigen risico. Geen geld-terug garantie.
Als je wilt begrijpen waarom dit document altijd een nogal zwakke licentie
heeft gehad en niet onder de gnu GPL of vergelijkbare beperking is
geplaatst, dan zou je dit artikel van het Duitse computermagazine c't
moeten lezen:
http://www.heise.de/tp/deutsch/inhalt/te/8375/1.html
(thans alleen in het Duits).
1.2 Beschikbaarheid
Als de editor van dit document som ik voornamelijk op wat andere mensen
me hebben gemeld.
Ik ben geen softwareontikkelaar noch een hardware-expert, dus voor
specifieke problemen met hard- of software kun je het beter iemand anders
vragen. Wat altijd zin heeft, is het vermelden van oplossingen voor
problemen die nog niet door mij in de HOWTO zijn behandeld.
Ik krijg elk jaar verscheidene honderden e-mails betreffende de CD-Writing
HOWTO. Dus heb alsjeblieft geduld met mij, aangezien ik niet altijd binnen
een paar uur kan antwoorden. Ik lees echter alles metten en plaats je in
mijn CDR-wachtrij. Zorg er alsjeblieft voor dat je bekend bent met de
inhoud van de nieuwste versie van dit document, voor je een vraag stelt;
het is altijd beschikbaar vanaf
http://www.guug.de/~winni/linux/.
1.3 Aanbevolen leesstof
Wellicht dat je het handboek van je Linux-distributie nodig hebt om
erachter te komen hoe je een nieuwe kernel installeert.
Ik weet werkelijk niets over dit onderwerp wanneer het verdergaat dan
mijn eigen Linux distributie.
De
CD-R FAQ
is een algemene FAQ over compact-disk recordables (CD-R), CD-writers en de
benodigde software. Aangezien de meeste CD-writers kunnen worden gebruikt
om ook CD-ROM's te lezen, wil je wellicht de
Linux CD-ROM HOWTO, de Linux SCSI HOWTO en de
Linux Kernel HOWTO doorlezen.
1.4 Terminologie ... lasers op maximum ... fire!
CD-ROM staat voor Compact Disc Read Only Memory, een
opslagmedium waarbij een optische laser wordt gebruikt om de micoscopische
putjes op een kleurrijke glimmende disk af te tasten. De putjes stellen
de bits aan informatie voor en ze zijn zo klein dat er een aantal biljoen
van op de disc passen. Dus een CD is een massa-opslagmedium.
De term CD-R is een verkorte vorm voor CD-ROM recordable en
het refereert naar een CD zonder microscopische putjes op het oppervlak.
Dus het is leeg. De CD-R heeft een speciale chemische film waarin
putjes kunnen worden gebrand. Dit wordt bewerkstelligd door een laser die
normaal gesproken slechts de putjes een beetje aftast, wat meer kracht te
geven zodat het de putjes brandt. Deze actie kan slechts
éénmaal worden toegepast op een CD-R. Je kunt een aantal gebieden leeglaten
om hier later naar te schrijven, waarmee je een zogenoemde
multi-session CD aanmaakt.
De CD-ROM rewritable (verkort: CD-RW) werd ontwikkeld
om wat te doen aan de beperking van CD-R media. Met een CD-RW brander kan
de laser beiden, putjes in de media branden en ook de media in zijn
originele staat terugbrengen. Dit is mogelijk omdat de laser niet werkelijk
gaten in de media brandt, waardoor het in een rookwolk op zou gaan.
Een aardige analogie voor deze techniek is een ijshockey-spel: door over
het ijs te rijden, laten spelers (een laser) krassen op het ijs achter.
Het patroon in het ijs (de media) neemt gedurende een ronde op wat er
plaatsvond op het ijs. In de tussenliggende periodes van het spel,
rijdt de Zamboni schoonmaakkar over het ijs en vult het de gaten door
de bovenste laag van het ijs te smelten.
(Zamboni is de merknaam van schoonmaakauto's in ijshockey-stadiums.)
Op deze wijze wordt het patroon op het ijs geschoond en kan een nieuwe ronde
beginnen. De wetenschappelijke term voor verdampen, condenseren, smelten
en bevriezen is "faseomkeer", dus de naam "faseomkeer devices" voor
CD-RW-writers.
Deze HOWTO gaat over het beschrijven van CD-R's en CD-RW's. Welkom aan boord,
kaptein.
Adaptor vs. Adapter
De meest voorkomende spelling binnen de kernelbron is adapter
(adapter: 4283, adaptor: 154). Nog belangrijker: dit is van invloed op
de parameters van module-opties en aliassen, zoals in
"scsi_hostadapter". Dus om een consistente spelling in de configuratievoorbeelden en documenttekst te bereiken, volg ik die conventie ongeacht of het de
juiste spelling is.
1.5 Ondersteunde CD-writers
USB CD-writers worden thans in het geheel niet ondersteund.
Afgezien daarvan kun je er gerust vanuit gaan dat de meeste nieuwere IDE/ATAPI -
en SCSI-writers onder Linux werken.
Nieuwere drives zijn meestal MMC-compliant en worden daarom ondersteund. Als
de SCSI-versie van een bepaalde writer werkt, zal de IDE/ATAPI naar alle
waarschijnlijkheid ook werken en vice versa. Een aantal mensen hebben echter
behoefte aan het warme en vage gevoel door het lezen van het exacte model
van hun writer in een of andere compatibiliteitenlijst. Om die reden heb
ik de hieropvolgende lijst niet uit deze HOWTO verwijderd.
Hier is een uitgebreide samenvatting met drives waarvan is gemeld dat ze
met cdrecord werken:
Acer: CDRW 4432A, CDRW 6206A, CD-R/RW 6X4X32, 8432A
BTC: BCE 621E (IDE)
Compro: CW-7502, CW-7502B
Creative: MK 4211, RW 4224E,
Delta: OME-W 141
Dysan: CRW-1622
Elite: Elite b444.41
Goldstar: CED-8041B
Grundig: CDR 100 IPW
Guillemot: Maxi CD-R 4X/8X
HP: SureStore 4020i, SureStore 6020i,
C4324, C4325
CD-writer+ 7100, 7200i, 7500e, 8100i, 8110i, 8200i Plus,
8250i, 9100i, 9110i, 9200e, 9210, 9300i, 9310i
Hi-Val: CDD 2242, CDD-3610,
Iomega: ZIPCD 4x650
JVC: XR-W 2001, XR-W 2010, XR-W 2040, XR-W 2042, XR-RW 2224,
YR 2626
Kiss: CDRW (geen model gegeven)
Kodak: PCD 200, PCD 225, PCD 260, PCD 600
Matsushita: matsushita is de japanse naam voor panasonic, kijk daar a.u.b.
Memorex: CRW-620, CDR-622, CRW-1622, CRW-2224, CDRW-4420
Microboards: PlayWrite 2000, PlayWrite 4000 RW, PlayWrite 4001 RW
MicroNet: MasterCD Plus 4x4, MasterCD Plus 4x6
Mitsubishi: CDRW-226
Mitsumi: CR-2401-TS, CR-2600 TE, CR-2801 TE,
CR-4801 TE, CR-4802 TE, CR-4804 TE
Nomai: 680.RW
Olympus: CDS 615E, CDS 620E
Optima: DisKovery 650 CD-R
OTI: CDRW 965, CDRW 975 (Socrates 1.0)
Panasonic: CW-7285, CW-7502, CW-7503, CW-7582
Philips: CDD-521/10, CDD-522,
CDD-2000, CDD-2600, CDD-3600, CDD-3610, CDD 4201
PCA 267cr, PCA 460 RW, PCRW 404,
Omniwriter 26, Omniwriter 26A,
CDRW800
Pinnacle: RCD-100, RCD-1000, RCD-5020, RCD-5040
Pioneer: DW-S114X
Plasmon: CDR 480, CDR 4220, RF-4100, RF-4102, CDR 4400
Plextor: CDR PX-24 CS, PX-412 C, PX-R412 C
PX-R 810Ti, PX-R 820T, PX-W 4220Ti, PX-W 8220T, PX-W 8432T
Plexwriter RW 4/2/20
Procom: PCDR 4
REC: 820s
Ricoh: RO-1420C+, MP 1420C, MP 6200S, MP 6201S, MP 7040A, MP-7060A
Samsung: SW-204
Sanyo: CRD-R24S
Smart and
Friendly: CD-RW 226, CD-R 1002, CD-R 1002/PRO, CD-R 1004,
CD-R 2004, CD-R 2006 PLUS, CD-R 2006 PRO, CD-RW 2224,
CD-R 4000, CD-R 4006, CD-R 4012, CD-RW 4424A
CD-R 8020, CD-R 8220
Sony: CDRX 100E, CDRX 120E, CDRX 140S-RP,
CDU 920S, CDU 924, CDU 926S, CDU 928E, CDU 948S
Taiyo Yuden: EW-50
TEAC: CD-R50S, CD-R55S, CDR-55S, CDR-55K,
CDR-56S-400, CD-R56S-600, R56S-614
Traxdata: CRW 2260,
CDR 4120, CDR 4120 Pro, CDRW 4260, CDRW 4424, CDR 4800
Turtle Beach: 2040R
Waitec: wt 2036, wt 2444ei
WPI (Wearnes): CDRW-622, CDR-632P
Yamaha: CDR-100, CDR 102, CDR-200, CDR-200t, CDR-200tx
CDR-400, CDR-400c, CDR-400t, CDR-400tx, CDR-400Atx
CDW-2216E, CRW-2260, CRW-2260t,
CRW-4250tx, CRW-4260t, CRW-4260tx, CRW-4261, CRW-4416S,
CRW-6416S, CRW-8424E
CD-writers ondersteund onder Linux
De detaillijst met modellen waarvan is gemeld dat ze wel of niet
onder diverse Unix-achtige besturingssystemen werken is online beschikbaar vanaf
http://www.guug.de:8080/cgi-bin/winni/lsc-orig.pl.
Als je hardware niet wordt ondersteund dan kun je Linux nog steeds gebruiken
om een image van de CD aan te maken. Je wilt dit wellicht doen omdat de
meeste software om CD-R's te branden voor DOS niet kan omgaan met
RockRidge-extensies (Unix-achtige bestandssystemen op CD-ROM). In de
tweede stap kun je dan
DOS of Macintosh software gebruiken om het image naar de CD-R te schrijven.
1.6 Ondersteunde "features"
Er bestaan twee klassen utility's: de hardware-drivers en de data-formatters.
De hardware-drivers ondersteunen de volgende features:
Ondersteunde Feature cdwrite-2.1 cdrecord-1.6 cdrdao
-------------------------------------------------------------
IDE/ATAPI ja ja ja
Parallel Port nee ja ja
CD-RW nee ja ja
Audio CD ja ja ja
Data CD-ROM ja ja deels
Multisession deels ja nee
TAO (track at once) ja ja ja
DAO (disk at once) nee deels ja
packet writing nee nee nee
cdwrite is onbeheerde software waarnaar alleen voor de volledigheid
wordt gerefereerd.
Gebruik in plaats daarvan cdrecord, aangezien het
een breder bereik aan hardware ondersteunt en heel wat meer features heeft.
Het belangrijkste voordeel van cdrdao is de mogelijkheid audio CD's aan
te maken zonder twee seconden stilte tussen de tracks (schrijven in
disk-at-once (DAO) modus).
De tools geclassificeerd als "data-formatters" organiseren de data op
de media ("plaatsen er een bestandssysteem op").
Feature mkisofs mkhybrid mkvcdfs
-------------------------------------------------------
ISO 9660 ja ja nee
RockRidge ja ja nee
El Torito ja ja nee
HFS nee ja nee
Joliet ja ja nee
Multisession ja ja nee
CD-Extra ja ja nee
Video-CD nee nee ja
Het opvallendste verschil tussen het ISO 9660 bestandssysteem in vergelijking
met het ReiserFs of Extended-2 bestandssysteem is: je kunt bestanden niet
wijzigen wanneer ze eenmaal zijn weggeschreven.
Andere beperkingen van het ISO-9660-bestandssysteem zijn:
- slechts 8 niveaus aan subdirectory's toegestaan (geteld vanaf
de directory op het hoogste niveau van de CD)
- maximum lengte voor bestandsnamen: 32 tekens
- 650 MB capaciteit
RockRidge is een uitbreiding die het mogelijk maakt langere
bestandsnamen en een diepere directory-hiërarchie voor het
ISO-9660 bestandssysteem te gebruiken. Wanneer onder Linux een CD-ROM
met RockRidge extensies wordt ingelezen, worden alle bekende eigenschappen
van bestanden zoals de eigenaar, groep, permissies, symbolische links
getoond ("voelt aan als een Unix bestandssysteem"). Deze extensies zijn
niet beschikbaar wanneer de CD-ROM onder DOS of de heterogene Windows-familie
van besturingssystemen wordt ingelezen.
El Torito kan worden gebruikt om opstartbare CD-ROM's aan te maken.
Deze feature werkt alleen als de BIOS van je PC dit ondersteunt.
Globaal genomen, bestaat de eerste 1.44 (of 2.88 als dit wordt ondersteund)
Mbyte van de CD-ROM uit een diskette-image die er door jou werd opgezet.
Dit image wordt door de BIOS als een diskette behandeld en er wordt
van geboot. (Als gevolg hiervan is je oorspronkelijke station A:
(/dev/fd0) tijdens het booten vanaf deze virtuele diskette wellicht niet
toegankelijk).
HFS laat Macintosh de CD-ROM inlezen alsof het zich op een HFS volume
bevond (het bij MacOS behorende bestandssysteem).
Met Joliet heb je (onder andere) voor de nieuwere varianten
van Windows (95, 98, NT) de beschikking over lange bestandsnamen.
De auteur kent echter geen tool waarbij lange bestandsnamen onder DOS
of Windows 3.11 zijn toegestaan.
Video-CD's kunnen direct op DVD-devices worden afgespeeld.
In sectie 2.8 wordt een opsomming van de beschikbaarheid van de genoemde
software gegeven.
1.7 Mailing Lists
Wanneer je wilt deelnemen aan het ontwikkelaarsteam (met de bedoeling
ze actief te helpen), dan stuur je een e-mail naar
cdwrite-request@other.debian.org en plaatst het woord subscribe in
het berichtenvenster.
Deze sectie is van toepassing op de volgende typen CD-writers:
SCSI, IDE/ATAPI en de devices voor de parallelle poort. USB CD-writers
worden niet ondersteund as of May 2000. Voor niet-SCSI writers zijn
compatibiliteitsdrivers nodig, welke ze laat verschijnen alsof het
echte SCSI-devices zijn. Aan de ene kant is een dergelijke
uniforme strategie makkelijk ("alles is SCSI"), omdat op applicatieniveau
je je kennis met andere gebruikers kunt delen ongeacht hun soort
CD-writer. Aan de andere kant moet je applicaties zoals audio spelers
of het mount utility herconfigureren om de wijziging van de naam van de
driver weer te geven. Als je eerder bijvoorbeeld je ATAPI CD-writer via
het device bestand /dev/hdc benaderde, dan moet je het na het activeren van
de SCSI compatibiliteit drivers benaderen via /dev/scd0.
Zodra het je is gelukt je hardware en de rest van je Linux-systeem
in te stellen, dan toont de opdracht
cdrecord -scanbus je een lijst met devices op je SCSI bussen.
Het doel van deze sectie dient om je te begeleiden bij het instellen
van je Linux-systeem, zodat je uiteindelijk iets te zien zult krijgen als:
shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
0,0,0) 'Quantum ' 'XP34300 ' 'F76D' Disk
0,1,0) 'SEAGATE ' 'ST11200N ' '8334' Disk
0,2,0) *
0,3,0) 'TOSHIBA ' 'MK537FB/ ' '6258' Disk
0,4,0) 'WANGTEK ' '5150ES SCSI 36 ' 'ESB6' Verwijderbare Tape
0,5,0) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Verwijderbare Tape
0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Verwijderbare CD-ROM
0,7,0) *
scsibus1:
1,0,0) 'Quantum ' 'XP31070W ' 'L912' Disk
1,1,0) *
1,2,0) *
1,3,0) 'TEAC ' 'CD-R55S ' '1.0H' Verwijderbare CD-ROM
1,4,0) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Verwijderbare CD-ROM
1,5,0) *
1,6,0) 'YAMAHA ' 'CDR400t ' '1.0d' Verwijderbare CD-ROM
1,7,0) *
Detecteren van devices op je SCSI-bus
Dit voorbeeld werd aangeleverd door Jörg Schilling en het toont een
totaal van vier CD-writers. Houd alsjeblieft in de gaten dat -scanbus
ook andere devices rapporteert, b.v. reguliere CD-ROM's en harddisk drives.
De laatste kolom geeft de SCSI beschrijving van het device,
waaruit je niet af kunt leiden wat de gewone CD-ROM drives en die met
de mogelijkheid te branden zijn. Maar de productidentificatie (middelste
kolom) geeft vaak aanwijzingen in de vorm van een R, -R of -RW.
2.1 Snelstart
Deze sectie is een poging te voorzien in een snelle en makkelijke beschrijving
van de configuratie. Niet alle mogelijke setups worden behandeld, maar
ga alsjeblieft tot het einde door en probeer het hoe dan ook uit.
Kijk als eerste welke kernelversie door de opdracht "uname -r" wordt
afgedrukt. Het zou iets moeten zijn als 2.0.x of 2.2.Y, waar X een hoger
nummer is dan 36 en Y een hoger nummer dan 11. Als je oudere versies
of de zogenoemde ontwikkelaarskernels gebruikt dan ben je op jezelf aangewezen.
Het installeren van een nieuwe kernel is net zoveel werk als het corrigeren
van een oude kernel, dus heb ik alle aanwijzingen die je nodig hebt
voor kernels met fouten verwijderd.
De listing hieronder toont een set opdrachten om mee te beginnen. De
opdrachten maken device files aan onder /dev tenzij ze reeds voorkomen.
test `whoami` = 'root' || echo "Je moet root zijn om de opdrachten uit te voeren"
cd /dev/
umask -S u=rwx,g=rwx,o-rwx
[ -f loop0 ] \
|| ./MAKEDEV loop \
|| for i in 0 1 2 3 4 5 6 7; do mknod loop$i b 7 $i; done
[ -f sg0 -o -f sga ] \
|| ./MAKEDEV sg \
|| for i in 0 1 2 3 4 5 6 7; do mknod sg$i c 21 $i; done
Aanmaken van devicefiles
Toegang tot de hardware wordt onder Linux gewoonlijk geïmplementeerd via
devicefiles. Dus voor je ook maar iets doet, moet je er zeker van zijn dat
die bestanden onder /dev voorkomen. Nog steeds heeft niemand me een
boeiende reden kunnen geven waarom dit niet is geautomatiseerd via
technieken als het device filesystem (devfs). Het devfs is reeds jaren
beschikbaar, het geeft een veiliger (!) en veel duidelijkere benaming aan
devices en het maakt dat de device entries automatisch onder /dev verschijnen.
Een aantal mensen beargumenteren dat devfs niet de perfecte oplossing is,
maar ze komen ook niet met iets beters, zelfs niet met iets vergelijkbaars,
en als laatste maar niet als minste, niets dat nu beschikbaar is en getest.
Laten we beginnen devfs te gebruiken, zodat we de bovenstaande opdrachten
uit dit document kunnen verwijderen. (
http://www.atnf.CSIRO.AU/~rgooch/linux/kernel-patches.html)
Het volgende is dat de Linux kernel moet zijn uitgerust met de
benodigde drivers. De volgende opdrachten controleren diverse bestanden
op de aanwezigheid van drivers in de actieve kernel. Gewoonlijk brengt
de opdracht "cdrecord -scanbus" het automatisch laden van alle drivers teweeg.
In geval een driver niet in de kernel aanwezig is, wordt het daarna gemeld
en de gemodulariseerde driver (module) wordt handmatig via insmod geladen.
test `whoami` = 'root' || echo "Je moet root zijn om de opdrachten uit te voeren."
cdrecord -scanbus > /dev/null
if ! (pidof kerneld || test -f "/proc/sys/kernel/modprobe"); then
echo "Noch kerneld noch kmod zijn actief om automatisch modules te laden".
fi
report_no_autoload() {
echo "Zorg dat de module $1 de volgende keer automatisch is geladen."
}
if test ! -f "/proc/scsi/scsi"; then
report_no_autoload scsi_mod && insmod scsi_mod
fi
if ! grep "^........ sg_" /proc/ksyms > /dev/null; then
report_no_autoload sg && insmod sg
fi
if ! grep "^........ sr_" /proc/ksyms > /dev/null; then
report_no_autoload sr_mod && insmod sr_mod
fi
if ! grep "^........ loop_" /proc/ksyms > /dev/null; then
report_no_autoload loop && insmod loop
fi
if ! grep iso9660 /proc/filesystems > /dev/null; then
report_no_autoload iso9660 && insmod iso9660
fi
echo "Het volgende is alleen nodig voor IDE/ATAPI CD-writers."
if ! grep ide-scsi /proc/ide/drivers > /dev/null; then
report_no_autoload ide-scsi && insmod ide-scsi
fi
cdrecord -scanbus
Testen op drivers
Lees alsjeblieft het volgende hoofdstuk door als insmod foutmeldingen
retourneert over het ontbreken van modulebestanden. In tekstmodus (console)
kan het laden van modules een aantal meldingen op je scherm tot gevolg hebben.
In grafische modus (X11, KDE, Gnome) kun je deze meldingen herroepen met
de opdracht dmesg.
Er zijn verscheidene manieren om de modules de volgende keer dat je
je Linux systeem opstart kun starten:
(1) Plaats de relevante insmod opdracht in de opstartreeks
(een shellscript genaamd rc.local of equivalent).
(2a) Start kerneld of kmod op en
(2b) configureer ze in /etc/modules.conf (wat nauwkeuriger:
je configureert het utility modprobe, welke wordt aangeroepen door de
daemons)
Mensen met een SCSI-writer kunnen de rest van deze sectie overslaan,
omdat cdrecord hun hardware zeer waarschijnlijk al detecteert.
Stuur me alsjeblieft een e-mail met wat informatie over je setup als
dit niet zo is, zodat ik de sectie over SCSI-writers kan verbeteren.
Nu terug naar de mensen met CD-writers voor IDE/ATAPI. Zoals eerder
aangegeven, moet je de compatibiliteitendriver ide-scsi laden. Maar
deze driver kan je CD-Writer alleen benaderen als nog geen enkele andere
driver dit heeft gedaan. Met andere woorden: je moet de reguliere IDE-driver
aangeven je CD-Writer als niet herkend te laten, zodat de ide-scsi het
af kan vangen.
hda = IDE bus/connector 0 master device
hdb = IDE bus/connector 0 slave device
hdc = IDE bus/connector 1 master device
hdd = IDE bus/connector 1 slave device
Bestandsnamen van IDE/ATAPI devices
De tabel hierboven toont de relatie van bestandsnamen voor devices met de
plaatsing van de devices op de IDE-bussen. De bestandsnaam van het device
die je CD-Writer voorstelt moet worden doorgegeven aan de driver in de
Linux-kernel. Bijvoorbeeld: hdb=ide-scsi.
Een dergelijke instelling zou moeten worden toegevoegd aan lilo.conf of
chos.conf als de driver statisch in je kernel is gecompileerd, wat de
meest gebruikelijke setup blijkt te zijn. Wanneer je meer dan één
parameter aan de kernel door moet geven, dan scheidt je ze door middel van
spaties (zoals in het chos voorbeeld). De volgende twee listings laten
je voorbeeldconfiguraties zien met meer regels dan de relevante append-regel.
De append- en cmdline-regels zijn image-specifiek (dwz dat je ze niet
onmiddelijk bovenaan moet vermelden).
image=/boot/zImage-2.2.14
label=Linux
read-only
append="hdb=ide-scsi"
Voorbeeldconfiguratie voor lilo (/etc/lilo.conf)
linux "Linux 2.1.14" {
image=/boot/zImage-2.0.37
cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
Voorbeeldconfiguratie voor chos (/etc/chos.conf)
Als de driver voor IDE/ATAPI CD-ROM's als een module is geladen, dan maakt
het bovenstaande geen verschil, maar zorg dat je de options regel uit de
volgende listing opneemt. De laatste drie regels uit die listing
worden gewoonlijk aanbevolen om het laden van de vereiste modules
verder te automatiseren.
options ide-cd ignore=hdb # vertel de ide-cd module hdb te negeren
alias scd0 sr_mod # laad sr_mod voor toegang tot scd0
#pre-install ide-scsi modprobe imm # onbecommentarieer alleen bij een aantal ZIP-drives
pre-install sg modprobe ide-scsi # laad ide-scsi voor sg
pre-install sr_mod modprobe ide-scsi # laad ide-scsi voor sr_mod
pre-install ide-scsi modprobe ide-cd # laad ide-cd voor ide-scsi
Voorbeeldconfiguratie voor /etc/modules.conf
Als je CD-writer de enige CD-ROM is die op je machine is aangesloten, denk
er dan aan dat je de CD-ROM in de writer moet benaderen via het device bestand
/dev/scd× waar ×=0,..,8. Je kunt de symbolische naam cdrom laten verwijzen
naar de nieuwe bestandsnaam van het device. In de listing hieronder wordt
getoond hoe je dit kunt bereiken met het voorbeeld scd0.
cd /dev && rm cdrom && ln -s scd0 cdrom
Maak cdrom een symbolische naam voor scd0
Wijzig de cdrom symlink niet als je CD-writer en CD-ROM station twee
verschillende apparaten zijn.
Speciale notities over SCSI CD-writers
Zorg dat je writer door de BIOS van je SCSI hostadapterkaart wordt herkend.
Elke SCSI hostadaptor scant de SCSI-bus als de computer wordt aangezet.
en rapporteert alle devices die het vindt die op de bus zijn aangesloten.
In dit verslag zijn de SCSI-ID's van de devices en hun productlabel
opgenomen. Het heeft geen zin verder te gaan als je CD-writer niet in
dit verslag is weergegeven.
Als je van plan bent je SCSI-device op de parallelle poort aan te sluiten
(niet te verwarren met de IDE-drives voor de parallelle poort), dan heb
je een speciale active kabel en een speciale kerneldriver nodig.
Lees
http://www.torque.net/parport/parscsi.html om meer te leren
over deze optie.
Speciale opmerkingen over CD-writers voor de parallelle poort
Ik heb hier geen idee van, sorry. Lees alsjeblieft
http://www.torque.net/parport/paride.html of het lokale bestand
/usr/src/linux/Documentation/paride.txt.
Compileren van ontbrekende kernelmodules (optioneel)
Je hoeft deze sectie niet te lezen als je hardware reeds met succes
is herkend en is geconfigureerd door de eerder beschreven configuratiestappen.
De Linux kernel kan zijn uitgerust met drivers voor diverse features. Je
kunt de drivers in het kernelimage statisch compileren of je kunt ze
als module compileren waarbij je ze op verzoek laadt. De laatste methode
heeft de voorkeur voor drivers die niet essentieel zijn om je Linux systeem
tot leven te brengen, omdat ze kernel dan kleiner en sneller zal zijn.
Een aantal drivers zijn echter essentieel voor de werking van het systeem
en die moet je dus niet als module compileren. Een voorbeeld: als je
systeem op een IDE harddisk is geïnstalleerd, dan moet de driver
voor de IDE harddisk in de kernel zijn gecompileerd, niet als een module.
Er zijn drie verschillende typen CD-writers: SCSI, IDE/ATAPI en externe
writers die via de parallelle poort werken. In de tabel wordt getoond hoe
de Linux kernel voor die hardwaretypen te configureren.
De eerste kolom van de tabel geeft de sectie aan van het kernelconfiguratiemenu,waar je de betreffende instelling kunt vinden. De tweede kolom is de
beschrijving van de feature (ook uit het kernelconfiguratiemenu). De derde
kolom geeft de naam van de resulterende module. De kolommen genaamd
SCSI, IDE en PP bevatten de benodigde opties voor de betreffende
hardware (PP = parallelle poort).
Sect. Description Module SCSI IDE PP
------------------------------------------------------------
BLOCK Enhanced IDE/MFM/RLL... Y
BLOCK IDE/ATAPI CDROM ide-cd M
BLOCK SCSI emulation support ide-scsi M
BLOCK Loopback device loop M M M
PARIDE Parallel port IDE device paride Y/M
PARIDE Parallel port ATAPI CD-ROMs M
PARIDE Parallel port generic ATAPI M
PARIDE (select a low-level driver) Y
SCSI SCSI support scsi_mod Y/M Y/M
SCSI SCSI CD-ROM support sr_mod Y/M Y/M
SCSI Enable vendor-specific Y Y
SCSI SCSI generic support sg Y/M Y/M
SCSI (select a low-level driver) Y
FS ISO 9660 CDROM filesystem iso9660 Y/M Y/M Y/M
FS Microsoft Joliet cdrom... joliet Y Y Y
Driverkeuze voor verschillende typen writers
Y staat voor yes en dit betekent dat je het monster in de kernel op zou moeten
nemen. M staat voor module en dit betekent dat je deze feature als een
module moet compileren. Y/M geeft je de optie te besluiten tussen een van
beiden (de volgorde geeft de keuzes aan met minder potentiële problemen).
Lege instellingen hoeven niet
te worden aangepast en het niet wijzigen verhoogt de kans dat de
resulterende kernel zal werken (als het dit voorheen deed...).
Vooral in omgevingen waar SCSI en ATAPI devices zijn gemengd, kun je
het beste het meeste als modules bouwen.
Het compileren van het loopback device is optioneel.
Hiermee kun je de image testen voordat je het wegschrijft naar de media.
Als je CD-ROM's wilt kunnen lezen, dan hebt je ondersteuning nodig voor het
ISO 9660 bestandssysteem. Deze driver voegt automatisch RockRidge Extensies
toe. De Microsoft Joliet CD-ROM extensies moeten expliciet worden toegevoegd
aan het ISO 9660 bestandssysteem. In elk geval heb je een low-level driver
nodig voor je hardware. Low-level refereert naar de driver, welke
direct met de hardware samenwerkt. Voor SCSI en de parallelle poort zijn heel
wat low-level drivers beschikbaar.
Het installeren van de resulterende Linux-kernel valt buiten het kader
van deze HOWTO. Raadpleeg hiervoor alsjeblieft de documentatie van je
Linux-distributie.
Gebruikers van RedHat Linux moeten in de gaten houden dat ze de features
"Ramdisk support" en "Initial ramdisk" compileren. Bovendien moet je
een nieuwe ramdisk aanmaken bij de nieuwe modules door het aanroepen van
een opdracht als "mkintrd --preload ide-cd initrd-2.2.14.img 2.2.14".
2.2 Haal de user software op voor het branden van CD-R's
Een gedetailleerder onderzoek naar tools gerelateerd aan het produceren van
CD-ROM's is beschikbaar op
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html.
Opdrachtregel utility's
Een van de volgende packages is vereist om images te genereren van CD-R's
(alleen vereist voor data CD-ROM's):
ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)
ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)
Voor het schrijven van images naar de CD-R, heb je één van
de volgende softwarepackages nodig:
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)
http://www.ping.de/sites/daneb/cdrdao.html (cdrdao)
http://www.munich-vision.de/vcd/ (mkvcdfs)
Vertrouw de manpage van oude versies van mkisofs niet waarin uiteen
wordt gezet dat je versie 1.5 van cdwrite nodig hebt. Gebruik
gewoon cdrecord en je bent prima af. Let op dat nieuwere versies van
cdrecord worden geleverd met een verbeterde versie van mkisofs en nog
wat extra tools in de directory misc/ (readcd isosize) welke elders
niet zijn aangetroffen.
Graphical user interfaces (optioneel)
Front-ends zijn echt front-ends onder Linux. Dat betekent dat je nog steeds
de opdrachtregelutility's moet installeren, maar dat je ze op een beter
uitziende manier kunt benaderen.
X-CD-Roast is een programma gericht op het eenvoudig aanmaken van
CD's onder Linux. Het combineert opdrachtregeltools zoals
cdrecord en mkisofs in een fraaie grafische
gebruikersinterface.
http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html
BurnIT is een JAVA front-end voor cdrecord, mkisofs en
cdda2wav-0.95, wat het een compleet package maakt voor het branden van
CD's onder het Unix platform. Het is beschikbaar vanaf
http://sunsite.auc.dk/BurnIT/
CD-Tux is een tekengeöriënteerd front-end voor de
programma's mkisofs en cdrecord.
"Het maakt een makkelijk te gebruiken kleurrijke omgeving aan voor bijna alles
wat te maken heeft met een CD via het gebruik van de (niet)beroemde
NCURSES library. En dit doet het met een uitvoerbaar bestand van minder dan
75K."
http://www.datadictator.co.za/cdtux/
"If to smoke you turn I shall not cease to fiddle while you burn."
(Romeins keizer Nero over het branden van zijn eigen klassieke CD's, AD64.
Hij vatte het totaal verkeerd op en brandde Rome af.)
Het beschrijven van CD-ROM's bestaat onder Linux uit twee stappen:
- het verpakken van de gewenste data (bestand, muziek of beiden)
in bestanden met een speciaal formaat
- het schrijven van de data in de bestanden naar de CD-R met het
utility
cdrecord
In dit hoofdstuk worden de stappen in meer detail beschreven voor data en
audio CD's.
3.1 Beschrijven van CD-ROM's (zuivere data)
Het verzamelen van de data om op een CD te zetten duurt gewoonlijk langer dan
men verwacht. Overweeg dat ontbrekende bestanden niet kunnen worden
toegevoegd zodra de CD is beschreven en gefixeerd. Dit geldt tevens voor
een CD-RW, welke thans alleen in z'n geheel kan worden beschreven.
Het gebruik van de multi-sessie feature is geen optie voor enkele bestanden,
aangezien het veel ruimte consumeert voor een complete inhoudsopgave (TOC).
UDF is nog niet gereed voor Linux.
Houd ook in gedachten dat een bepaalde hoeveelheid van de vrije ruimte
op een CD wordt gebruikt voor het opslaan van de informatie van het
ISO-9660-bestandssysteem (gewoonlijk een paar MB).
620 MB data zal altijd wel passen op een 650 MB CD-R.
Maak een image aan van de laatste CD-ROM
Voor enig opslagmedium (b.v. diskette, harddisk of CD) kan worden gebruikt,
moet er een bestandssysteem op worden geplaatst (In DOS taal: worden
geformatteerd). Het bestandssysteem is verantwoordelijk voor het
organiseren en opnemen van de bestanden die op het medium moeten worden
bewaard.
De gebruikelijke utility's voor het aanmaken van bestandssystemen op harddisk-
partities schrijven er een leeg bestandssysteem op, welke vervolgens wordt
gemount en wordt gevuld met bestanden door de gebruikers.
Een schrijfbare CD is slechts éénmaal beschrijfbaar, dus als
we er een leeg bestandssysteem op weg zouden schrijven, zou het worden
geformatteerd en voor eeuwig leeg blijven. Dit geldt tevens voor herschrijfbare
media aangezien je nog geen willekeurige sectors kunt wijzigen; je moet
de gehele inhoud verwijderen.
Dus wat we nodig hebben is een tool dat het bestandssysteem aanmaakt
onderwijl we de bestanden naar de CD kopiëren. Deze tool wordt
mkisofs genoemd. Een voorbeeld van het gebruik ervan gaat als volgt:
mkisofs -r -o cd_image privé_verzameling/
`---------' `-----------------------'
| |
schrijf uitvoer naar neem directory als invoer
De optie '-r' stelt de permissies in van alle bestanden in op voor het publiek
leesbaar op de CD en activeert RockRidge-extensies. Je wilt deze optie
waarschijnlijk wel gebruiken, tenzij je werkelijk weet wat je aan het
doen bent (hint: zonder '-r'krijgt het mountpoint de permissies van
privé_verzameling!).
mkisofs zal proberen alle bestandsnamen in te delen in het 8.3 formaat
dat wordt gebruikt door DOS om de grootst mogelijke compatibiliteit te
garanderen. In het geval van naamconflicten (verschillende bestanden hebben
dezelfde 8.3 naam), worden nummers gebruikt in de bestandsnamen en
informatie over de gekozen bestandsnaam wordt afgedrukt via STDERR (gewoonlijk
het scherm).
Geen paniek: Onder Linux zul je deze rare 8.3 bestandsnamen nooit zien,
omdat Linux gebruikt maakt van de Rock Ridge extensies die de oorspronkelijke
bestandsinformatie bevatten (permissies, bestandsnaam, enz.).
Denk eraan de optie -J (MS Joliet extensies) te gebruiken of gebruik
mkhybrid als je een Windows-vriendelijker CD-ROM wilt genereren. Voor HFS
CD-ROMS die worden gebruikt op de Macintosh, kun je beter de manpage
van mkisofs' grotere zuster mkhybrid lezen voor details over de diverse
opties.
Nu vraag je je wellicht af waarom de uitvoer van
mkisofs niet direct naar het writer device wordt gestuurd.
Hier zijn drie redenen voor:
mkisofs weet niets over het besturen van CD-writers.
- Je wilt wellicht het image testen voordat je het brandt.
- Op langzame machines zou het niet betrouwbaar zijn (zie sectie 4).
Er is een methode om een CD-R in één keer te beschrijven,
welke hieronder zal worden beschreven.
Men zou er ook over kunnen denken een extra partitie aan te maken en de image
naar die partitie weg te schrijven in plaats van naar een bestand. Ik
ben tegen een dergelijke strategie. Mocht je namelijk naar de verkeerde
partitie schrijven door een typfout, dan kun je je volledige Linux systeem
kwijtraken. Lees: wat mij overkwam...
Bovendien is het een verspilling van diskruimte omdat de CD-image dient
als tijdelijke data wat na het beschrijven van de CD kan worden verwijderd.
Het gebruik van ruwe partities bespaart je echter de tijd om bestanden
met een omvang van 650 MB te verwijderen.
Test het CD-image
Linux heeft de mogelijkheid bestanden te mounten alsof het diskpartities zijn.
Deze feature is handig voor een controle of de directory lay-out en
bestandstoegangspermissies overeenkomen met wat je wilt. Alhoewel media
tegenwoordig erg goedkoop is, kost het schrijfproces nog steeds veel tijd,
en je wilt wellicht wat tijd besparen door een snelle test uit te voeren.
Geef voor het mounten van het hierboven aangemaakte bestand cd_image
op de directory /cdrom, de opdracht
mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
Nu kun je de bestanden onder /cdrom inspecteren, ze verschijnen
exact zo op een echte CD. Voor het unmounten van de CD-image geeft je op:
umount /cdrom. (Waarschuwing: Onder Linux kernels van voor versie
2.0.31 kan het zijn dat het laatste bestand op
/cdrom niet volledig leesbaar is. Gebruik alsjeblieft een
recentere kernel zoals 2.0.36. De optie -pad van cdrecord is alleen van
toepassing op audio CD's en de optie -pad van mkisofs vereist een patch,
wat net zoveel werk is als een upgrade naar een foutvrije Linux kernel.)
Noot:
Een aantal oude versies van mount kunnen niet omgaan met
loopback devices. Als je een dergelijk oude versie van mount hebt,
upgrade dan je Linux-systeem. Verscheidene mensen hebben reeds geopperd
informatie in dit document te plaatsen over hoe je aan de nieuwste mount
utility's kunt komen. Ik weiger dit altijd. Als je Linux distributie met
een oude mount wordt geleverd, rapporteer dit dan als een bug.
Als je Linux distributie niet eenvoudig is te upgraden, rapporteer dit dan
als een bug. Als ik alle informatie op zou nemen die nodig is om
om bugs heen te werken die in slecht ontworpen Linux distributies aanwezig
zijn, dan zou deze HOWTO heel wat groter en moeilijker te lezen zijn.
Schrijf de CD-image naar een CD
In deze sectie gaat het alleen over het beschrijven van CD's in TAO modus,
omdat het de meest gebruikte modus voor gegevens is. Kijk alsjblieft in
het hoofdstuk over audio CD-R's voor meer informatie over de verschillen
tussen TAO en DAO. Als je de DAO modus gebruikt met de tool cdrdao,
denk er dan aan een dummy audio track aan het einde van het TOC bestand
toe te voegen (zie de README).
Niet veel meer te doen. Als je het nog niet hebt geprobeerd, is het
nu een goed moment voor de opdracht
cdrecord -scanbus
Dit vertelt je aan welk SCSI-device je CD-writer is gekoppeld. Alle andere
methoden om de informatie te raden die zo fraai door cdrecord
worden afgedrukt, zijn uit deze HOWTO verwijderd.
Laat me je waarschuwen dat CD-writers een constante gegevensstroom als
invoer willen, voordat ik je de laatste opdracht laat zien. Dus het
schrijfproces van de CD-image naar de CD moet niet worden onderbroken
anders heeft dit een beschadigde CD tot gevolg. De gegevensstroom kan
makkelijk worden onderbroken door een zeer groot bestand te verwijderen.
Bijvoorbeeld: als je een oud CD-image met een omvang van 650 Mbyte
verwijdert, dan moet de kernel informatie bijwerken over
650,000 blokken op de harddisk (in de veronderstelling dat je een
blokomvang hebt van 1 Kbyte voor je bestandssysteem). Dat neemt wat
tijd in beslag en het is zeer waarschijnlijk dat het de diskactiviteit
lang genoeg voor de gegevensstroom zal vertragen dat het een paar seconden
pauzeert. Het lezen van mail, browsen op het web of zelfs compileren van
een kernel echter heeft op moderne machines geen effect op het schrijfproces.
Geen enkele writer kan zijn laser herpositioneren en verdergaan
op de oorspronkelijke plek op de CD wanneer het wordt gestoord.
Daarom zullen sterke vibraties of andere mechanische schokken de CD
die je aan het beschrijven bent naar alle waarschijnlijkheid ruïneren.
Trek een zwart gewaad aan, vermenigvuldig de SCSI-id van de CD-writer met
zijn SCSI-revisie en steek zoveel mogelijk kaarsen aan, zeg twee
twee coupletten van de ASR-FAQ op (nieuwsgroep alt.sysadmin.recovery)
wanneer je voldoende geestelijk bent voorbereid en typ tenslotte:
shell> SCSI_BUS=0 # uit listing 1 "scsibus0:"
shell> SCSI_ID=6 # uit listing 1 "TOSHIBA XM-3401"
shell> SCSI_LUN=0
shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
-data cd_image
# hetzelfde als bovenstaand, maar korter:
shell> cdrecord -v speed=2 dev=0,6,0 -data cd_image
Voor een betere leesbaarheid, worden de drie omgevingsvariabelen
met natuurlijke namen opgeslagen: SCSI_BUS, SCSI_ID, SCSI_LUN.
Wanneer je cdrecord gebruik om een CD-RW te overschrijven, dan moet je
de optie "blank=..." toevoegen om de oude inhoud te verwijderen. Lees
alsjeblieft de manpage om meer te leren over de diverse methoden om
een CD-RW leeg te maken.
In tijden waarin iedereen behalve ik een 400 Mhz machine heeft, geven
mensen de uitvoer van mkisofs direct door als invoer aan cdrecord:
shell> IMG_SIZE=`mkisofs -R -q -print-size privé_verzameling/ 2>&1 \
| sed -e "s/.* = //"`
shell> echo $IMG_SIZE
shell> [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r privé_verzameling/ \
|cdrecord speed=2 dev=0,6,0
tsize=${IMG_SIZE}s -data -
# don't forget the s --^ ^-- lees data van STDIN
De eerste opdracht is een lege run om vast te stellen wat de omvang van het
image is (je hebt hier mkisofs van de cdrecord distributie voor nodig).
Je moet alle parameters opgeven die je ook bij de uiteindelijke uitvoering
opgeeft (b.v. -J of -hfs). Misschien hoeft je writer niet te weten wat de
omvang van het weg te schrijven image is, dus dan kun je deze droge
uitvoering achterwege laten. De afgedrukte grootte moet als een tsize
parameter aan cdrecord worden doorgegeven
(het wordt opgeslagen in de omgevingsvariabele IMG_SIZE).
De tweede opdracht is een reeks aan mkisofs en cdrecord, gevormd via een pipe.
3.2 Schrijven van audio CD's
Het beschrijven van audio CD's is zeer vergelijkbaar met de hierboven
beschreven stappen voor data CD's. Je kunt tussen twee technieken kiezen:
DAO of TAO. TAO (track at
once) is minder geschikt voor muziek, omdat je klikken tussen de individuele
tracks zult horen. Toch wordt het als eerste beschreven, omdat het iets
makkelijker is en DAO nog niet voor alle drives beschikbaar is.
Het belangrijkste verschil in vergelijking met het schrijven van data
CD-R's is het formaat van de images.
ISO-9660 (of aan welk bestandssysteem je ook de voorkeur geeft) zou niet
geschikt zijn, omdat geen enkele audio CD-speler met bestandssystemen
om kan gaan. In plaats daarvan moeten de audiogegevens worden geschreven als
"16 bit stereo samples in PCM codering op 44100 samples/seconde (44.1 kHz)".
Een utility om je geluidsbestanden naar een vereist formaat te converteren
is sox. Het gebruik ervan is vrij eenvoudig:
shell> sox killing-my-software.wav killing-my-software.cdr
Deze opdracht converteert het lied killing-my-software van het WAV-formaat
naar het CDR audio-formaat. Zie de manpage van sox voor details over
formaten en bestandsnaam extensies die sox herkent. Omdat de uitvoer van
de handmatige conversie veel diskruimte vergt, werd het een ingebouwde
feature van cdrecord voor de geluidsformaten WAV en AU. Zolang je
geluidsbestanden de extensies .wav of .au hebbt (en de sample rate
"stereo, 16 bit, 44.1 kHz"), kun je ze als audio tracks gebruiken zonder
handmatige conversie toe te passen naar het CDR formaat. Cdrecord vereist
echter dat de grootte van de geluidsgegevens een integer is welke
deelbaar is door 2352 en groter is dan 705.600 bytes, waaraan voor een
aantal WAV bestanden niet kan worden voldaan. Voor dergelijke bestand
is het gebruik van sox nodig om de audio data tot aan 2352 bytes op te
vullen.
Beschrijven van audio CD's (TAO)
Een audio CD bestaat uit audio-tracks, die zijn georganiseerd als aparte
images wanneer gebruik wordt gemaakt van de TAO modus. Dus als je tien
tracks op je CD wilt, dan moet je tien images aanmaken.
Cdrecord schrijft CD images als audio tracks als de optie -audio is
gespecificeerd. De andere opties zijn identiek aan degenen die werden
gebruikt voor het beschrijven van
data-CD's (tenzij je zeer speciale wensen hebt). Deze drie voorbeelden
doen allen hetzelfde, maar lezen de tracks van verschillende
formaten geluidsbestanden:
shell> cdrecord -v speed=2 dev=0,6,0 -audio track1.cdr track2.cdr...
shell> cdrecord -v speed=2 dev=0,6,0 -audio track1.wav track2.wav...
shell> cdrecord -v speed=2 dev=0,6,0 -audio track1.au track2.au...
Hiermee zal een audio-CD worden geproduceerd met 2 seconden pauze tussen
de tracks. Een opmerkelijk formaat wat niet direct leesbaar is door cdrecord
is MPEG Layer 3. Om deze bestanden in dit formaat om te zetten naar het
CDR-formaat, kun je de opdracht "mpg123 --cdr - track1.mp3 > track1.cdr"
gebruiken. De optie --cdr garandeert dat de track is gecodeerd in het
vereiste formaat (zie boven). Oudere versies van mpg123 vereisten -s
in plaats van de gewone - om naar stdout te schrijven. De andere
richting (van WAV converteren naar MPEG) kan worden gedaan met LAME voor
WAV-bestanden (extraheer de track met cdda2wav van de audio-CD en codeer
het in MP3 met de hulp van LAME).
Voor het aanmaken van een CD-R van een boel MP3-bestanden, kun je
gebruik maken van de volgende reeks opdrachten:
for I in *.mp3
do
mpg123 --cdr - "$I" | cdrecord -audio -pad -nofix -
done
cdrecord -fix
Afhankelijk van de snelheid van je machine, moet je wellicht de
schrijfsnelheid verlagen naar
"speed=1" (cdrecord optie). Gebruik je "speed=4", dan moet je machine
het MP3-bestand op viervoudige snelheid af kunnen spelen. mpg123
consumeert veel CPU-tijd! Probeer een lege run met -dummy (de laser
blijft uitgeschakeld) als je twijfelt.
DAO
Wanneer je af wilt van de pauzes tussen de audio tracks, dan moet je de
disk-at-once (DAO) opname gebruiken in tegenstelling tot de
(individuele) track-at-once (TAO) opname die hiervoor werd beschreven.
In cdrdao is ondersteuning voor DAO het verst gevorderd. Kijk op de
homepage van cdrdao voor details.
Bestuur je de CD in DAO modus, dan gebruik je een monolithisch image
(geluidsbestand) en bestuur je de informatie over de tracks met een
configuratiebestand.
CD_DA
TRACK AUDIO
FILE "live.wav" 0 5:0:0
INDEX 3:0:0
TRACK AUDIO
FILE "live.wav" 5:0:0 5:0:0
TRACK AUDIO
FILE "live.wav" 10:0:0 5:0:0
INDEX 2:0:0
3.3 CD-ROM's in gemengde modi
Er valt niet veel te zeggen over dit onderwerp. Geef gewoon het type van
de (opeenvolgende) images aan met de opties -data en -audio. Voorbeeld:
cdrecord -v dev=0,6,0 -data cd_image -audio track*.cdr
Dit is de sectie die gewoonlijk bekend staat als "veelgestelde vragen
met antwoorden". Als je een probleem ondervindt met je partner, kinderen
of hond, stuur dit dan gewoon in, zolang het maar te maken heeft met
het beschrijven van CD-R's of op andere wijze amusant is.
4.1 Hoe gevoelig is het brandproces?
Test het. Gebruik de optie -dummy voor een lege uitvoering van cdrecord.
Doe alles wat je anders ook zou doen en kijk of het brandproces het
overleeft.
Als je cdrecord direct de uitvoer van mkisofs doorgeeft, dan zullen
diskintensieve processen zoals het updaten van de database locate
de maximum flow rate verlagen en wellicht de CD beschadigen.
Je kunt maar beter van te voren controleren of dergelijke processen
niet worden gestart via cron, at of anacron
terwijl je CD-R's op oudere machine's brandt.
4.2 Heeft bestandsfragmentatie een slechte impact op de doorvoer?
De bestandsfragmentatie van bestanden is gewoonlijk zo laag, dat de impact
ervan niet wordt opgemerkt. Je kunt echter makkelijk pathologische
gevallen van fragmentatie construeren, welke de doorvoer van je harddisk
verlagen tot onder de 100 kbytes/seconde. Dus doe dat niet. :-)
Ja, bestanden op een harddisk kunnen met de jaren gefragmenteerd raken.
Laat altijd 10% of 20% vrije ruimte over en er is niets aan de hand
met betrekking tot het schrijven van CD-R's.
Wanneer je niet zo zeker bent, bekijk dan de meldingen die tijdens
het booten worden afgedrukt. Het
percentage aan fragmentatie wordt gerapporteerd tijdens de controle van de
bestandssystemen. Je kunt deze waarde controleren met de zeer gevaarlijke
opdracht
shell> e2fsck -n /dev/sda5 # '-n' is van belang!
[stuff deleted -- ignore any errors]
/dev/sda5: 73/12288 files (12.3% non-contiguous)
In dit voorbeeld lijkt de fragmentatie zeer hoog, maar er bevinden zich
slechts 73 kleine bestanden op het bestandssysteem. Dus de waarde is
niet alarmerend.
Er is een experimenteel utility genaamd e2defrag om extended-2
bestandssystemen te defragmenteren. De huidige versie werkt niet betrouwbaar
genoeg, zelfs niet voor gebruik in privé-omgevingen.
Als je werkelijk je bestandssysteem wilt defragmenteren, dan kun je nog
beter een backup maken (of nog beter: twee kopieën), oefen in het
terugzetten van de gegevens, maak dan een nieuw bestandssysteem aan
(waarmee het oude zal worden verwijderd) en zet de gegevens terug.
Deze schets is thans de veiligste techniek.
4.3 Is het mogelijk een CD-image op een UMSDOS-bestandssysteem aan te maken?
Ja. Het enige bestandssysteem dat niet betrouwbaar en snel genoeg is
voor het beschrijven van CD-ROM's is het
network filesystem (NFS).
Ik gebruikte UMSDOS zelf om diskruimte tussen Linux en DOS/Win te delen
op een PC (486/66) die bestemd was voor het beschrijven van CD-ROM's.
4.4 Is er geen manier om de ISO-9660 beperkingen te omzeilen?
Ja. Je kunt elk bestandssysteem dat je wenst op de CD plaatsen. Maar andere
besturingssystemen dan Linux kunnen niets met deze CD.
Zo doe je het:
- Maak een leeg bestand met een omvang van 650MB.
dd if=/dev/zero of="empty_file" bs=1024k count=650
- Maak een extended-2 bestandssysteem op dit bestand
shell> /sbin/mke2fs -b 2048 empty_file
empty_file is not a block special device.
Proceed anyway? (y,n) y
- Mount dit lege bestand via de loopback devices
(je hebt een redelijk nieuwe mount hiervoor nodig; lees hierboven).
mount -t ext2 -o loop=/dev/loop1 empty_file /mnt
- Kopieer bestanden naar /mnt/ en umount daarna.
- Gebruik
cdrecord op empty_file (welke niet langer leeg is)
alsof het een ISO-9660-image is.
Als je voor een dergelijke CD een regel aan /etc/fstab toe
wilt voegen, deactiveer dan het controleren van het device bestand
tijdens de systeemstart. Bijvoorbeeld:
/dev/cdrom /cdrom ext2 defaults,ro 0 0
De eerste 0 betekent "niet opnemen in dumps" (backup), de tweede
(=belangrijk) betekent "controleer niet op fouten bij het starten"
(fsck zou falen bij het testen van de CD op fouten).
4.5 Hoe de tracks van audio CD's in te lezen?
Er zijn verscheidene softwarepackages beschikbaar. De nieuwste is
"cdpranoia" en het kan worden gedownload van
http://www.xiph.org/paranoia/
Of je kunt de combinatie "cdda2wav" met "sox" uitproberen, beschikbaar vanaf
sunsite en mirrors:
ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz
ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz
Met cdda2wav kun je aan een specifieke interval (of een gehele
track) van je audio-CD komen en dit converteren naar een .wav bestand.
sox converteert de WAV bestanden terug naar
het (audio CD) cdda-formaat zodat het naar de CD-R kan worden geschreven
met cdrecord. Je hebt sox niet noodzakelijkerwijs nodig
als je een recente versie gebruik van cdrecord, omdat het ingebouwde
ondersteuning heeft voor .au en .wav bestanden.
4.6 Hoe na het booten SCSI devices te detecteren?
Het bestand drivers/scsi/scsi.c bevat de informatie
/*
* Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
* with "0 1 2 3" replaced by your "Host Channel Id Lun".
* Consider this feature BETA.
* CAUTION: This is not for hot plugging your peripherals. As
* SCSI was not designed for this you could damage your
* hardware !
* However perhaps it is legal to switch on an
* already connected device. It is perhaps not
* guaranteed this device doesn't corrupt an ongoing data transfer.
*/
Dit zou alleen moeten worden gebruikt als je SCSI-devices aan het einde
van de keten toevoegt. Het invoegen van nieuwe SCSI-devices aan een
bestaande keten verstoort de benaming van devices (directory /dev) en
kan de complete inhoud van je harddisk vernietigen.
Een aantal kernelversies houdt helemaal niet van het opnieuw scannen van
de SCSI-bus en het systeem kan vastlopen als je het bovenstaande probeert.
Je bent gewaarschuwd.
4.7 Is het mogelijk een 1:1 kopie van een data CD te maken?
Ja. Maar wees je bewust van het feit dat eventuele fouten bij het lezen
van het origineel (vanwege stof of krassen) zullen resulteren in een
defecte kopie. Beide methoden zullen mislukken bij audio CD's! Voor audio CD's
moet je cdrdao of cdda2wav gebruiken.
Eerste situatie: je hebt een CD-writer en een apart CD-ROM station.
Door het uitvoeren van de opdracht
cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0
lees je de gegevensstroom in van het CD-ROM station aangesloten als
/dev/scd0 en schrijf je het direct naar de CD-writer.
Tweede situatie: je hebt geen apart CD-ROM station. In dit geval moet je
de CD-writer de CD-ROM eerst uit laten lezen:
dd if=/dev/scd0 of=cdimage
Deze opdracht leest de inhoud van de CD-ROM van het device /dev/scd0 en
schrijft het naar het bestand "cdimage". De inhoud van dit bestand is
equivalent aan wat mkisofs produceert, dus je kunt verdergaan zoals
eerder beschreven in dit document (wat wil zeggen dat je het bestand
cdimage als invoer dient voor cdrecord). Als je een voortgangsmeter
en ander fraais wilt zien, dan kun je ook gebruik maken van
sdd van Jörg Schillings.
In geval je fouten tegenkomt, installeer je een recente versie van
cdrecord waarbij een tool genaamd "readcd" (te vinden onder misc/) wordt
meegeleverd. Het geeft je hetzelfde resultaat als dd, maar het leest
sectoren op de CD-ROM verscheidene malen in in geval van fouten.
4.8 Kan Linux Joliet CD-ROM's lezen? (verouderd antwoord)
Ja. Nieuwere kernels (2.0.36 en de aankomende 2.2) hebben ingebouwde
ondersteuning voor het joliet formaat. Denk eraan dat je beide opties
in /etc/fstab moet gebruiken: de trefwoorden iso9660 en joliet
(de laatste is echt een extensie).
Zie voor meer details
http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html.
4.9 Hoe lees/mount ik CD-ROM's met de CD-writer?
Net als bij reguliere CD-ROM drives. In het geheel geen truuks.
Je moet je scd devices (SCSI CD-ROM) gebruiken om CD-ROM's voor lezen
te mounten ook als je een ATAPI CD-ROM hebt (denk eraan dat je
de ATAPI devices configureerde om te fungeren als SCSI). Voorbeeldregel
in /etc/fstab:
/dev/scd0 /cdrom iso9660 ro,user,noauto 0 0
4.10 Hoe krijg je nog meer data op de CD-R?
Gebruik bzip2 in plaats van enig ander compressieprogramma zoals
gzip of pkzip. Het zal je zo'n 30% diskruimte besparen
voor grotere (>100kb) bestanden. Je kunt het downloaden vanaf
http://www.muraroa.demon.co.uk/
In plaats van het schrijven van een echte audio-CD, kun je optioneel
je WAV audio bestanden converteren naar MP3 audio bestanden en ze als
reguliere bestanden opslaan op een ISO-9660 bestandssysteeem.
Gewoonlijk geeft MPEG III je een compressie van
1:10. Natuurlijk zijn de meeste CD-spelers niet in staat bestanden te
lezen... dit is de keerzijde. Aan de andere kant, waarom zou je de
muziek voor je volgende feest niet afspelen vanaf de harddisk?
18 Gbytes is voldoende voor 3000-4000 titels. :-)
Een software MPEG III-encoder is beschikbaar vanaf
http://www.sulaco.org/mp3/
Een MPEG III-speler is beschikbaar vanaf
http://www.mpg123.org/
Voor opgenomen spraak kun je wellicht proberen de grootte te beperken door
gebruik te maken van shorten of "GSM lossy speech compression":
ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/
http://kbs.cs.tu-berlin.de/~jutta/toast.html
4.11 Hoe maak je opstartbare CD-ROM's?
Je hebt hiervoor een 1.44 MB opstartbare diskette nodig. Maak een exacte
image van deze diskette met behulp van de opdracht:
dd if=/dev/fd0 of=boot.img bs=18k
Plaats deze diskette-image in de directory met de verzameling bestanden
(of in een subdirectory daarvan, zoals je wilt). Vertel mkisofs over dit
bestand met de optie '-b' en gebruik ook optie '-c'. Lees voor details
het bestand README.eltorito in de mkisofs-distributie.
Een interessante toepassing voor een aangepaste opstartbare CD is als
een virus veilig DOS- of Windows-systeem. Het bespaart je het geld voor
de harddisks (als je een netwerk hebt en samba gebruikt om de
gegevens van gebruikers op een fileserver te plaatsen).
Het Duitse computermagazine c't heeft een artikel over dit onderwerp in
uitgave 11/99, pagina 206 (
http://www.heise.de/).
Een aantal details over de opstartbare RedHat CD-ROM zijn beschikbaar
vanaf
http://members.bellatlantic.net/~smithrod/rhjol-technical.html.
4.12 Hoe maak je CD-ROM's schrijfbaar zoals harddisks?
Er is voor Linux een overlay filesystem beschikbaar, welke
wordt gemount over de CD-ROM en alle schrijfbewerkingen onderschept.
Nieuwe en gewijzigde bestanden worden elders opgeslaten, maar voor
de gebruiker lijkt het alsof de CD-ROM wordt aangepast. Zie voor meer
informatie
http://home.att.net/~artnaseef/ovlfs/ovlfs.html.
Wanneer dat niet volstaat voor wat je nodig hebt: wacht totdat het
UDF-bestandssysteem door Linux wordt ondersteund of help bij de
ontwikkeling ervan (zie
http://trylinux.com/projects/udf/. Thans wordt alleen het lezen
van CD-media ondersteund door een beperking in de CD-ROM drivers van
de Linux kernel.
4.13 Is het mogelijk verscheidene writers tegelijk te gebruiken?
Ja. Er is gemeld dat het met op z'n minst 3 writers werkt op volledige
snelheid (6x) op een PC met 233 Mhz en een enkele SCSI-bus draaiend onder
kernel 2.2.12. Je hebt
een recente versie van de Linux kernel (2.2.12 of hoger) nodig.
4.14 Hoe zit het met Solaris, *BSD, AIX, HP-UX, enz.? Wordt mijn Unix-variantondersteund?
Slechts hoofdstuk 2 is Linux-specifiek. Je kunt hoofdstuk 3 en 4 toepassen
zelfs als je een andere familie besturingssystemen dan Linux draait.
Bekijk alsjeblieft de bestanden
README.NetBSD, README.aix, README.hpux, README.next,
README.solaris, README.sunos, README.vms of README.xxxBSD uit de
cdrecord-distributie.
Waarschijnlijk wel. Compileer cdrecord voor je platform en geef de opdracht
"cdrecord -scanbus". Lees het README.* bestand voor je Unix distributie wat
met de broncode van cdrecord wordt meegeleverd. Echter niet alle
Unix-varianten kunnen de RockRidge, Joliet en HFS extensies lezen op je
nieuw geschreven CD-R.
4.15 Waar kan de lokale configuratie permanent worden opgeslagen?
Je hebt twee opties. Of je gebruikt het ingebouwde configuratiebestand van
cdrecord, of je gebruikt een shellwrapper zoals in onderstaand voorbeeld.
Dit shellscript lees een configuratiebestand in, waarin regel voor regel
een opsomming is gegeven van de opties en parameters aan cdrecord. De namen
zijn exact hetzelfde als op de opdrachtregel, maar dan zonder het
voorafgaande koppelteken. Commentaar is toegestaan. Bijvoorbeeld:
# verbose
v
# stel de snelheid van de writer in
speed=2
# de device-coördinaten in de vorm BUS,ID,LUN
dev=0,6,0
De configuratiebestanden voor de wrapper horen in /etc/cdrecord/ en er
moet naar worden gerefereerd op de opdrachtregel. Bijvoorbeeld:
als je wilt verwijzen naar het configuratiebestand
/etc/cdrecord/mywriter.cfg, dan kun je de opdracht
"cdrecord.sh mywriter.cfg -audio track1..." geven.
Alles na mywrite.cfg wordt aan cdrecord doorgegeven.
#! /bin/bash
CFGDIR="/etc/cdrecord"
CFG="$1"
shift
ARGS_LEFT="$@"
if [ ! -f "$CFGDIR/$CFG" ]
then
echo "Configuratiebestand $CFGDIR/$CFG niet gevonden. Sluit af."
exit 1
fi
while read LINE
do
case $LINE in
\#*|"") continue;;
esac
old_IFS="$IFS"
IFS="$IFS="
set -- $LINE
IFS="$old_IFS"
O_NAME="$1"
O_VALUE=""
while shift
do
case $1 in
"") continue;;
esac
O_VALUE="$1"
done
if [ -z "$O_VALUE" ]
then
O_CDRECORD="$O_CDRECORD -$O_NAME "
continue
fi
O_CDRECORD="$O_CDRECORD $O_NAME=$O_VALUE "
done < "$CFGDIR/$CFG"
set -x #DEBUG
exec cdrecord $O_CDRECORD $ARGS_LEFT
echo "Execution of cdrecord failed."
4.16 Hoe kan de CD-info worden opgehaald?
Ergens na de eerste 32 k op de CD, is een blok met informatie over
de CD te vinden. Je kunt de informatie met het volgende shellscript
extraheren:
#! /bin/bash
RD=/dev/cdrom
for i in 32768,7 32776,32 32808,32 32958,128 33086,128 33214,128 \
33342,128 33470,32 33581,16 33598,16 33615,16 33632,16
do
old_IFS="$IFS"
IFS=","
set -- $i
IFS="$old_IFS"
OFFSET=$1
LENGTH=$2
echo "*`dd if=$RD bs=1 skip=$OFFSET count=$LENGTH 2> /dev/null`#"
done
4.17 Hoe zit het met herschrijven
Wanneer je CD-RW media overschrijft, dan geef je de parameter blank=fast op aan
cdrecord. Dat is alles. Zie de manpage van cdrecord voor details over deze
parameter.
4.18 Hoe een multi-sessie CD aan te maken?
Allereerst moet het image voor een multi-sessie CD worden geformatteerd
met het ISO-9660 bestandssysteem met RockRidge-extensies. En je moet de optie
-multi aan cdrecord opgeven zolang je nog sessies toe wilt kunnen voegen.
Dus op z'n minst moet je bij de eerste sessie, de optie -multi specificeren.
Een aantal CD-writers hebben geen ondersteuning voor CD-ROM XA mode 2
of voor session-at-once (SAO), dus moet je de switch -data aan cdrecord
opgeven op de opdrachtregel.
De images voor de tweede en daaropvolgende sessies zijn iets gecompliceerder
te genereren. Mkisofs moet weten waar de vrije ruimte op de CD-R begint.
Die informatie kan worden vergaard door gebruik te maken van de optie
-msinfo van cdrecord (zie voor een voorbeeld hieronder).
shell> NEXT_TRACK=`cdrecord -msinfo dev=0,6,0`
shell> echo $NEXT_TRACK
shell> mkisofs -R -o cd_image2 -C $NEXT_TRACK -M /dev/scd5
private_collection/ \
Lees voor meer informatie alsjeblieft het bestand README.multi welke
met cdrecord wordt gedistribueerd.
4.19 Moet ik de SCSI-adapter gebruiken die met de writer wordt geleverd?
Gemeld via e-mail: In de meeste CD-writer docs staat geschreven gebruik
te maken van een aparte SCSI-bus als je overgaat van een CD-ROM naar
een CD-writer en ik heb dit zelf gezien in het volgende scenario:
Adaptec 2940UW SCSI-kaart, een 24x SCSI CD-ROM en een 4x4 SCSI CD-writer.
Toen ik de CD-writer kreeg, werd het geleverd met een eigen ISA SCSI-kaart
welk slechts één device kon afhandelen. Ik besloot dit
om te gooien en mijn betere adaptec kaart voor alles te gebruiken.
Ik bemerkte dat er nogal veel buffer underruns optraden als ik op
4x snelheid opnam, maar zodra ik had geprobeerd de ISA SCSI kaart
aan te sluiten, ik geen problemen had. Ik ken 2 andere mensen
(beiden gebruiken een adaptec 2940 kaart) die exact dezelfde symptomen
ervaarde, gewoonlijk bij het schrijven van een CD-ROM naar een CD-recorder.
Ik ervaarde dit probleem echter nooit als ik van een harddisk naar
een CD-writer op dezelfde bus schreef.
4.20 Hoe branden over het netwerk?
Gewoonlijk is een bestandstransport met FTP snel genoeg om zelfs
over een 10 Mbit ethernet een CD-recorder op viervoudige (4x) snelheid
van invoer te voorzien. Je kunt via een fifo de ftp-client aan cdrecord
koppelen. Maak eerst een fifo genaamd cdimage:
mkfifo cdimage
ftp other.host.org
get cdimg cdimage
Behandel cdimage als een regulier bestand, d.w.z. roep de volgende opdracht
aan:
cdrecord dev=0,1,0 speed=2 cdimage
Je ftp-client zal bemerken wanneer cdrecord van het bestand wil lezen en
zal vanaf de ftp-host beginnen met het transporteren van de gegevens.
4.21 Ik hoor een kraak of klikgeluid aan het einde van elke track.
Je moet de disk-at-one modus (DAO) gebruiken om van het kraken af te komen.
4.22 Hoe kan dit zodanig worden ingesteld dat een gewone gebruiker CD'skan branden in plaats van altijd root?
Je kunt de setuid-bit toevoegen aan het uitvoerbare bestand cdrecord.
Dit is echter wellicht een beveiligingsrisico. Het slechts instellen
van de permissies op de device bestanden helpt niet aangezien cdrecord
bevoorrechte opdrachten uitvoert via de SCSI generic interfaces.
which cdrecord
chown root.root /usr/bin/cdrecord
chmod 4111 /usr/bin/cdrecord
4.23 Waar haal ik de "Yellow Book" en Orange Book" standaards vandaan?
Je krijgt de gedrukte specificaties bij Philips en ze zijn duur.
4.24 Ik ben aan het zoeken geweest naar informatie over het branden vanVideo-CD's onder Linux.
Hier vind je utility's voor de aanmaak van MPEG video's en Video-CD's:
http://www.mainconcept.de/
http://www.johanni.de/munich-vision/vcd/ Politiek correcte mensen noemen de Berkeley-tools en andere
YUV-strategiën. Het gebruik ervan is gecompliceerd, vergt veel tijd en
harddiskruimte en geeft je geen audio-track. Ik raad aan gebruik te maken
van conceptuele toepassingen op hoger niveau zoals de hierboven genoemde.
4.25 Wat is makkelijker in te stellen, IDE of SCSI?
SCSI CD-writers zijn iets eenvoudiger in te stellen met betrekking tot
CD-writing onder Linux. En er wordt van vermeld dat ze voorzien zijn van
een beter foutenherstel. Of dat de hogere prijs compenseert kan over
het algemeen niet worden beantwoord.
4.26 Hoe kan ik een CD overbranden met {cdrecord,cdrdao}?
Het overbranden van een CD-R is niets speciaals.
Het is op eigen risico dat de data op de CD-ROM past, maar dat is alles.
Er zijn onder Linux geen 650 Mbytes-limieten in de software.
4.27 Wat doet cdrecord als het geen invoer meer krijgt vanuit de pipe?
Het zal stoppen met schrijven. Dus kunt je favoriete backuptool koppelen
met cdrecord door gebruik te maken van een pipe, zoals in
"bru -size=640m -f - | cdrecord dev=0,1,0 speed=2 -".
Je moet speciale aandacht schenken aan het backuputility als de backup
meerdere CD-R's beslaat.
4.28 Is er een equivalent met ignore=hdX voor de ide-scsi emulatie?
Ik zou geen manier weten, maar iedereen is welkom deze feature toe te voegen
aan de Linux kernelsource.
4.29 Hoevaak kun je een CD-RW hergebruiken voor hij fouten gaat vertonen?
Goede vraag.
4.30 Welk formaat moet ik kiezen voor een platformafhankelijke CD-ROM?
Een CD-ROM welke moet kunnen worden ingelezen door alle systemen kan alleen
gebruik maken van het ISO 9660 formaat. Dat betekent stomme 8+3 bestandsnamen
van het oude MS-DOS en zonder enige HFS (Macintosh), Joliet (Microsoft) of
RockRidge (nieuwere Unices) extensies. Er bestaat geen extensie voor
langere bestandsnamen, welke kan worden ingelezen door alle besturingssystemen.
4.31 Is multi-sessie voor audio tracks mogelijk?
Audio CD-players zijn alleen in staat om te gaan met tracks die zijn
opgeslagen in de eerste sessie.
Met andere woorden: je kunt geen audio-tracks toevoegen in
opeenvolgende sessies.
Het schrijven van data tracks in de tweede sessie verbergt ze echter
effectief van audio CD-spelers. Op deze wijze kun je voorkomen dat je
een stille track op je gemengde modus CD (audio en data gemengd) hebt.
4.32 Welke hardwarebronnen heb ik nodig? Is een oude Pentium genoeg?
Een antwoord hangt af van je wensen. Als je reden hebt een nieuwe computer
te kopen, is hier het antwoord van de internationale associatie van
computerfabrikanten: Wat je ook van plan bent, je hebt een processor nodig
van 800 Mhz. Omdat het niet in je bestaande moederbord past, heb je ook
een nieuw moederbord nodig. De makkelijkste oplossing is gewoon een
typisch compleet aanbod zoals te zien in advertenties op TV te kopen.
Negeer alsjeblieft de rest van deze sectie.
Nu het geval als je gewoon een rationeel antwoord wilt: Ik beschreef
succesvol verscheidene CD-ROM's met behulp van een "486'r" van 66 Mhz.
Alhoewel MS dit niet meer aanmerkt als PC's, maar aanbeveelt daar een
CE versie op te draaien (gezien op CeBIT), draait Linux zelfs prima op
de voorgangers van de Pentium en is zelfs in staat er CD's op te beschrijven.
Je kunt er makkelijk achterkomen of de kracht van je hardware voldoende is
voor het beschrijven van CD-ROM's door het uit te testen. Voeg gewoon de
opdrachtregel -dummy toe wanneer je cdrecord uitvoert en de laser zal
uitblijven. Bekijk het schrijfproces.
Denk eraan dat je beschadigde CD-ROM's nog altijd als onderzetters kunt
gebruiken. :-)
5.1 Het werkt niet: onder Linux
Controleer alsjeblieft eerst of de writer werkt onder de software welke
is meegeleverd (=onder een andere besturingssysteem). Concreet:
- Herkent de controller de writer als een SCSI-device?
- Herkent de driversoftware de writer?
- Is het mogelijk een CD te maken met software die werd meegeleverd?
Als het "zelfs niet werkt" met de meegeleverde software dan heb je te maken
met een hardwareconflict of beschadigde hardware. Als het wel werkt en
je gebruikt loadlin om Linux te booten, dan is het een probleem met loadlin.
Loadlin veroorzaakt een warme boot met de meeste hardware reeds
geïnitialiseerd en dat kan de Linux kernel is verwarring brengen.
5.2 Foutmelding: No read access for 'dev=0,6,0'.
Onder Linux zijn een aantal versies van de C-library incompatibel (bevatten
fouten), dus een applicatie die is gelinkt met de ene versie zal niet
werken met een andere. Een voorbeeld van een foutmelding teweeggebracht
door voorgecompileerde binary's is het volgende:
[root@Blue /dev]# cdrecord -eject dev=0,6,0
cdrecord: No such file or directory. No read access for 'dev=0,6,0'.
De oplossing is de installatie van een nieuwere C-library.
5.3 Het werkt niet: onder DOS enzo
Probeer Linux eens. De installatie en configuratie van SCSI-drivers
voor DOS is een hel. Linux is te gecompliceerd? Ha!
5.4 SCSI foutmeldingen tijdens het branden
Naar alle waarschijnlijkheid worden deze foutmeldingen veroorzaakt door
- het ontbreken van de dis-/reconnect feature op de SCSI-bus
- onvoldoende gekoelde hardware
- gebrekkige hardware (zou moeten worden gedetecteerd door 5.1)
Onder diverse omstandigheden verbreken/herstellen SCSI-devices (elektronisch)
de verbinding met de SCSI-bus. Als deze mogelijkheid niet beschikbaar is
(controleer de controller en kernelparameters) komen een aantal writers
in de problemen tijdens het branden of fixeren van de CD-R.
Vooral de NCR 53c7,8xx SCSI-driver heeft deze feature standaard
gedeactiveerd, dus wellicht dat je dit eerst na wilt kijken:
NCR53c7,8xx SCSI support [N/y/m/?] y
always negotiate synchronous transfers [N/y/?] (NEW) n
allow FAST-SCSI [10MHz] [N/y/?] (NEW) y
allow DISCONNECT [N/y/?] (NEW) y
5.5 Medium errors
Als cdrecord medium errors meldt in de vorm van
"Sense Key: ... Medium Error, Segment ...", dan is het medium
niet leeg. Probeer over te schakelen van blank=fast naar
de meer betrouwbare blank=all als je CD-RW's gebruikt. Gebruik je
alleen CD-R, zorg dan dat de CD-R nog nooit eerder een CD-writer heeft
gezien voordat je discs uitprobeert van een andere fabrikant.
5.6 Nieuw geschreven CD's zijn niet leesbaar op sommige spelers.
Een aantal mensen meldde problemen bij het afspelen van hun zelfbeschreven
CD's. Zeer oude audio-spelers of apparaten voor in de auto kunnen problemen
hebben met CD-R's, alhoewel dit heel zeldzaam is. Zeer frequent zijn
problemen met CD-RW's, omdat ze het laserlicht niet zo goed reflecteren
als CD-R's en door de fabriek geperste "silver" discs.
5.7 Mijn scanner werkt niet meer na het laden van de ide-scsi module
Door het invoegen van de SCSI-hostadaptor emulatie, wijzigt de benaming
van SCSI-devices. Als je scanneer voorheen /dev/sg0 was, kan het nu
/dev/sg1 of /dev/sg2 zijn.
Vooraanstaande kernelontwikkelaars dachten niet na, en ontkende in het verleden oplossingen zoals devfs. Maar dat
is een heel ander verhaal. Het eerste dat je zou moeten proberen is
de link naar /dev/scanner in te stellen zodat het verwijst naar het
werkelijke generic SCSI-device. Voorbeelden:
cd /dev
ls -l scanner # toon de huidige instelling
ln -sf sg2 scanner
# test the scanner
ln -sf sg1 scanner
# test the scanner
# and so on
Ontwikkelaars van toepassingen zouden eens zorgvuldig ondersteuning
voor dit gevaarlijke en gevoelig voor fouten bevattende benoemingsschema
moeten overdenken. Overweeg op z'n minst het gebruik van tussenoplossingen
zoals de SCSI-coördinaten gebruikt door cdrecord.
Veel dank aan de lezers van deze HOWTO, die actief een bijdrage leverden
aan de inhoud. Aangezien ik zelf een aantal jaren geen toegang had tot
een CD-writer, zijn verslagen over daadwerkelijke setups en ervaringen
altijd van grote waarde voor me geweest.
- Doug Alcorn <doug@lathi.net>
hielp bij het verbeteren van de afhandeling door nieuwere kernels
- Kalle Andersson <kalle@sslug.dk>
Hoe audio's te schrijven direct vanuit MP3.
- Alan Brown <alan@manawatu.net.nz>
- Rick Cochran <rick@msc.cornell.edu>
hint over het standaard verbreken/herstellen van
de verbinding in de ncr driver
- Robert Doolittle <bob.doolittle@sun.com>
goede argumenten voor het laten vervallen van cdwrite uit de HOWTO
- Markus Dickebohm <m.dickebohm@uni-koeln.de>
- Thomas Duffy <tduffy@sgi.com>
belangrijke opschoning van syntax en spelfouten
- Dave Forrest <dforrest@virginia.edu>
adapter spellingsproblemen gecorrigeerd
- Jos van Geffen <jos@tnj.phys.tue.nl>
merkte het probleem in 4.9 op.
- Bernhard Gubanka <beg@ipp-garching.mpg.de>
merkte op dat een recente versie van mount nodig was
om het loopback device te gebruiken
- Stephen Harris <sweh@mpn.com>
gaf een hint over het beschrijven van audio-CD's
- Janne Himanka <shem@oyt.oulu.fi>
verwijzing naar de kernelpatch om Joliet CD-ROM's te lezen
- Stephan Noy <stnoy@mi.uni-koeln.de>
informatie en ervaring over het beschrijven van audio CD's
- Don H. Olive <don@andromeda.campbellsvil.edu>
URL van de mkhybrid tool
- Jesper Pedersen <jews@imada.ou.dk>
- Pierre Pfister <pp@uplift.fr>
hielp met de beschrijving van 1:1 kopieën
- Daniel A. Quist <dquist@cs.nmt.edu>
informatie over IDE CD-R en nieuwere kernelversies
- Martti.Rahkila@hut.fi
Meldde een probleem met voorgeïnitialiseerde writers wanneer
via loadlin werd geboot.
- Dale Scheetz <dwarf@polaris.net>
- Joerg Schilling <schilling@fokus.gmd.de>
veel informatie over cdrecord
- Martin Schulze <joey@Infodrom.North.DE>
gaf informatie over de cdwrite-mailinglist
- Gerald C Snyder <gcsnyd@loop.com>
testte het beschrijven van een ext2 CD-ROM (zie 4.4)
- Art Stone <stone@math.ubc.ca>
had het idee niet-ISO-9660 bestandssystemen op een CD te plaatsen
- The Sheepy One <kero@escape.com>
deed de suggestie beschadigde CD-ROM's als onderzetter voor drankjes
te gebruiken
- Erwin Zoer <ezoer@wxs.nl>
Ik zou bovendien de volgende mensen willen bedanken voor het melden
van spelfouten: Bartosz Maruszewski
<B.Maruszewski@zsmeie.torun.pl>,
Alessandro Rubini <rubini@prosa.it>,
Ian Stirling <ian@opus131.com>, Brian H. Toby.
Einde van de Linux CD-Writing HOWTO. (Je kunt hier stoppen met lezen.) |