Vypalování pod Linuxem jedna radost

Několik praktických rad a tipů V rámci nynějšího dosti velkého rozmachu Linuxu jsem se rozhodl, že vás seznámím s...


Několik praktických rad a tipů
V rámci nynějšího dosti velkého rozmachu Linuxu jsem se rozhodl, že vás
seznámím se svými úspěchy při jeho zapojování do běžného života. Vzhledem k
tomu, že se nejedná o operační systém jen pro servery, ale i pro normální
domácí počítače, bylo potřeba vyřešit i problematiku pálení.
Bohužel jsem k tomu nikde nenašel návody v češtině, takže mi nezbylo nic
jiného, než se prokousat několika HowTo soubory a dokumentací k vypalovacím
programům. Každopádně si ale myslím, že to nakonec stálo za to.
Proč pod Linuxem? A proč ne? Je pravdou, že pro většinu vypalovaček jsou krásné
a uživatelsky přítulné programy pro Windows. Ale pokud chcete vypálit nějaké
nestandardní CD, jako je třeba CD-Extra, zaplatíte nemalý obnos peněz např. za
Easy-CD Creator DeLuxe. Naproti tomu pro Linux máte vše zadarmo. Vadí vám snad
příkazový řádek? Existují různé Xkové nadstavby (např. XCDRoaster), které vše
schovávají pod GUI (ale stejně je potřeba mít programy pro příkazovou řádku
nainstalované). Další problém může být se stabilitou Windows, nevíte nikdy, co
vám běží a co se s tím stane...
Upozorňuji, že se vyžaduje určitá elementární znalost kompilace jádra, práce s
lilo a jeho konfiguračním souborem. Předností je také orientace v příkazové
řádce. Každopádně předpokládám, že opravdový začátečník by se do tohoto
nepouštěl.
Co je potřeba
Základní věcí je překvapivě vypalovačka. Doporučuji SCSI, protože s nimi nejsou
moc velké problémy, ale v tomto článku se budu zabývat ATAPI vypalovačkou,
která je v našich krajinách pro běžného domácího uživatele nejdostupnější.
Nejlepší je, aby vypalovačka vyhovovala standardu MMC (MultiMedia Component,
aktuálně ve verzi MMC-2), což by měla být většina modelů vyrobených od roku
1999. Pokud máte starší model, je stále možné, že bude tomuto standardu
vyhovovat. Ani v záporném případě však ještě není vše ztraceno a je možné, že
pro ni budou přímo ovladače. Vše se dá zjistit na adrese www.guug.
de/8080/cgi-bin/winni/lsc.pl.
Pro vypalování doporučuji stabilní jádro z řady 2.0, nebo ještě lépe 2.2 (Red
Hat 6.x, Slackware 7,0 i SuSE 6.x jej mají, do Debianu 2.1 je potřeba jej
dokompilovat). To jsou víceméně všechny nároky na systém Linux. Dále je
samozřejmě zapotřebí vypalovací balík každopádně nejlepší je nejposlednější
verze programu cdrecord (nezalekněte se verze 1.8alpha36, je sice vývojová, ale
velmi stabilní) a jeho podpůrný program mkisofs pro tvorbu ISO9660 disků. Pro
grabování audio CD doporučuji program cdparanoia, který má velmi propracovaný
systém oprav dat.
Disk doporučuji co nejrychlejší a největší. Počítejte s tím, že když budete
dělat ISO-image toho, co se vypaluje, budete potřebovat ještě jednou tolik
místa. Máte na disku adresářovou strukturu, připravenou na vypalování, tedy asi
650 MB, vytvoříte ISO-image, který má také 650 MB (možná víc), takže
potřebujete něco kolem 1,4 GB pokud ovšem iso-image, produkovaný programem
mkisofs nepošlete přes standardní výstup do standadrního vstupu cdrecordu, což
povětšinou krásně jde.
Předpokládám, že v poslední době už víceméně odpadá problém s rychlostí
počítače a velikostí paměti, 32 MB a 200 MHz bohatě pro vypalování stačí. Navíc
je pravděpodobné, že ten, kdo má na vypalovačku, má i na rychlý počítač.
Úprava jádra pro naše potřeby
Protože cdrecord komunikuje pouze pomocí SCSI příkazů, je nutné donutit ATAPI
vypalovačku, aby si s nimi rozuměla. To se provede přes emulaci ide-scsi,
kterou moderní jádra mají zabudovanou. Ve svém vyprávění se zabývám jádrem
2.2.12, v jiných jádrech mohou být položky v jiných menu, i když to
nepředpokládám.
Je potřeba v podmenu Block devices vypnout položku Include IDE/ATAPI CDROM
Support a zapnout položku SCSI emulation support. Dále v podmenu SCSI support
zvolte položku SCSI CD--ROM support a SCSI generic support. Ostatní položky
mohou zůstat vypnuté, stejně jako v submenu SCSI low-level drivers. V
dokumentaci k cdrecordu se doporučuje je dát do jádra napevno a ne jen jako
moduly.
Po kompilaci, instalaci vytvořeného jádra a přenastavení lilo loaderu je možné
vyzkoušet funkci nového jádra. Je ale nezbytné ověřit, zda ve vašem adresáři /
dev/ jsou zařízení sg* (kde * nahrazuje čísla 0-7), která se jinak musí
vytvořit.
Spuštění nového jádra
Pokud vše probíhá tak jak má, mělo by se při výpisu hlášení při startu systému
objevit něco podobného:
scsi0: SCSI host adapter emulation for IDE ATAPI devices
scsi: 1 host.
Vendor: HP Model: CD-Writer+ 7500 Rev: 1.0a
Type: CD-ROM ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
Vendor: TEAC Model: CD-532E-B Rev: 1.0A
Type: CD-ROM ANSI SCSI revision: 02
Detected scsi CD-ROM sr1 at scsi0, channel 0, id 1, lun 0
scsi: detected 2 SCSI cdroms total.
sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
Uniform CDROM driver Revision: 2.56
sr1: scsi3-mmc drive: 32x/32x cd/rw xa/form2 cdda tray
(pozn.: pokud vám to ujelo, podívejte se na konec souboru /var/log/messages)
Dalším testem je spuštění programu cdrecord s parametrem -scanbus, který
projede připojené SCSI zařízení na všech SCSI sběrnicích, výpis by měl vypadat
přibližně takto:
Cdrecord release 1.8a29 Copyright (C) 1995-1999 JÖrg Schilling
Using libscg version schily-0.1
scsibus0:
0,0,0 0) HP CD-Writer+ 7500 1.0a Removable CD-ROM
0,1,0 1) TEAC CD-532E-B 1.0A Removable CD-ROM
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
Zde je vidět, že mám 2 SCSI zařízení na první SCSI sběrnici (ve skutečnosti to
je ATAPI vypalovačka a ATAPI CD-ROM).
Musíte si také uvědomit, že již CD-ROMy nemáte jako IDE-zařízení, ale
SCSI-zařízení, proto je potřeba např. symbolický link /dev/cdrom přenastavit na
zařízení, kde CD-ROM je (tj. pokud je master na druhém IDE řadiči, tedy
zařízení /dev/hdc, nyní bude první SCSI zařízení, buď /dev/sr0 nebo /dev/scd0).
Jinak cdrecord používá zařízení /dev/sg?.
Popis nejběžnějších programů, používaných pro vypalování vidíte ve zvýrazněném
textu na této straně.
Pálení datových CD
Začneme tím víceméně nejjednodušším, co můžeme vypalovat, a to jsou data. Na
disku si v určitém adresáři připravíme adresářovou strukturu se soubory, které
chceme vypálit. Dejme tomu, že si je dáme do adresáře /cd-image. Potom musíme z
tohoto adresáře vytvořit ISO-image. Můžeme si vybrat, jaké rozšíření použijeme.
Doporučoval bych buď RockRidge, nebo Joliet, je to samozřejmě závislé na tom,
co vypalujeme a kdo to bude používat (na MP3 bych doporučil Joliet, na CD s
programy z Linuxu RockRidge).
Nejjednodušší použití je:
mkisofs -J -o image.cd /cd-image/
Zde parametr -J zapíná Joliet rozšíření, parametrem -o image.cd určujeme, kam
se bude zapisovat výstup z programu (tedy vytvořený ISO-image), a poslední
parametr je cesta ke zdrojovým souborům. Místo parametru -J můžeme použít -r,
což vytvoří image v rozšíření RockRidge a nastaví práva na čtení dat všem.
Podle všeho lze použít oba parametry, abychom měli přístup k dlouhým názvům
souborů v Linuxu i pod Windows.
Dalšími důležitými parametry programu jsou:
-a použije všechny soubory, nevynechává např. záložní soubory
-f za symbolický link doplní soubor, na který tento ukazuje
-J Joliet rozšíření
-l použití 32znakových názvů pro ISO9660
-L použití názvů souborů, začínajících tečkou v iso9660
-r RockRidge upravený
-R RockRidge
-print-size vypíše pouze velikost budoucího filesystému
Pro otestování vytvořeného iso-image použijeme jednu z nejgeniálnějších
vlastností Linuxu, a to připojení souboru do adresářové struktury. Na námi
vytvořený image použijeme tento příkaz (předpokládáme, že mount-point
/mnt/cd-test existuje):
mount -t iso9660 -o loop image.cd /mnt/cd-test
Pak se již můžeme podívat do adresáře /mnt/cd-test, kde je vidět, jak bude
vypadat CD.
Nyní konečně přichází to nejdůležitější vlastní pálení na CD. Pokud tedy máte
vše v pořádku, cdrecord vypalovačku najde a umí s ní komunikovat, iso-image
vypadá tak, jak by měl a už jsme se odhodlali, zbývá napsat tento příkaz:
cdrecord -v speed=2 dev=0,0,0 -data image.cd
Po spuštění nám program dává ještě 9 sekund na to, abychom se definitivně
rozhodli, jestli opravu vypalovat, nebo ne. Pokud si to tedy rozmyslíte, stačí
stisknout Ctrl--C a proces pálení neproběhne. Parametr -v slouží pro výpis
informací ohledně vypalování, tedy něco o vypalovačce, o médiu, o image a dále
i informace o průběhu zápisu na CD. Bez něj je program velmi skoupý na
jakoukoliv informaci a to, že vypalujete, se pozná pouze podle blikající diody
na vypalovačce. Parametr speed=2 udává rychlost, jakou budeme pálit (zde tedy
2rychlostně a nesnažil bych se používat větší rychlost než vypalovačka
podporuje), dev=0,0,0 udává zařízení, kterým budeme pálit (čísla jsou závislá
na tom, co vypíše cdrecord -scanbus, podle toho se použijí). A konečně parametr
-data znamená, že budeme pálit data a pak již název našeho ISO-image.
Pro první pokusy bych rozhodně doporučoval použít parametr -dummy, který
provádí vše, tak jak má být, ale s vypnutým laserem (tzn. na CD se nic
nezapisuje).
Jak vše zjednodušit
Pokud máte silný stroj a jste trochu dobrodruhy, můžete vyzkoušet tento sled
příkazů (opsáno z CD-Writing HowTo a je vhodné si z toho udělat skript):
IMG_SIZE=`mkisofs -R -q -print-size /cd-image/ 2>&1 | sed -e "s/.* = //"`
echo $IMG_SIZE
[ "0$IMG_SIZE" -ne 0 ] && mkisofs -r /cd-image/ | cdrecord {}speed=2 dev=0,0,0
tsize=$IMG_ SIZEs -data První příkaz spustí mkisofs pro zjištění délky
iso-image, kterou druhý příkaz vypíše (to můžete vynechat). Poslední příkaz
zjistí, zda není velikost nulová, a jestli ne, tak spustí mkisofs, jehož výstup
si odebírá cdrecord. Ten ví, jak budou data velká (parametr tsize, nesmí se
zapomenout na s na konci) a že je bere ze standardního vstupu (to udává znak
"-" na konci), a zapisuje je na zařízení dev=0,0,0 rychlostí speed=2.
Audio CD grabování audiostop
Pro grabování osobně doporučuji program cdparanoia (www. xiph.org/paranoia). Po
vložení CD do mechaniky spustíme program cdparanoia příkazem:
cdparanoia -B "1-"
Cdparanoia díky němu najde, kde máme audio CD a začne do aktuálního adresáře
grabovat audiostopy ve formátu wav. Výsledné soubory se budou jmenovat
trackXX.cdda.wav. Cdparanoia má velmi dobré výsledky v opravování chyb
(škrábanců), ale neoplývá příliš velkou rychlostí.
Pokud tedy máte připravené wavy v příslušné kvalitě (16bitové samply ve stereu
v kódování PCM, v kvalitě 44.1 kHz), můžete přistoupit k vypalování. To se
provede následujícím způsobem:
cdrecord -v dev=0,0,0 speed=2 -audio track1.wav track2.wav ...trackN.wav
Tímto způsobem vypálíte audiostopy s 2sekundovými mezerami mezi písničkami.
Někdy se ale objeví audio CD, která mezery mezi skladbami nemají. Jestliže se
při vypalování vytvoří, mohou působit rušivě a poslechový zážitek není úplně
dokonalý. Je zde ale nutno podotknout, že tyto pauzy přesně odpovídají
standardu (který říká, že každá audiostopa začíná 2sekundovým tichem,
následovaným nejméně 4 sekundami zvukových dat).
I když to tedy odporuje standardu, cdrecord umí CD v módu Disk At Once (DAO)
vypálit, a to pomocí parametru -dao. Pak příkaz vypadá takto:
cdrecord -v dev=0,0,0 speed=2 -dao -audio track1.wav .. trackN.wav
Multisession
Multisession disky jsou v podstatě neuzavřená CD, na která se dají připálit
další stopy. Jejich hlavní výhoda tedy spočívá v tom, že pokud máte neúplné CD
a chcete si je vypálit, stále ještě máte šanci si na ně dodatečně nahrát další
data. Nevýhodou je, že každá session si "sežere" asi 20-30 MB prostoru na CD.
Principem je, že se na disk uloží normální data a pak se nahraje tabulka TOC.
Disk se neuzavírá, ale je možné jej přečíst (skoro) všude. Pokud chceme přidat
další data, přečte se stará tabulka TOC, nahrají se data a pak se vypálí nová
tabulka TOC, která obsahuje starou tabulku a nově přidaná data. Vychází se z
toho, že mechanika čte vždy poslední tabulku TOC (u CD-DA přehrávačů je to
naopak).
Nejdříve je potřeba zdůraznit, že je nutné mít image v ISO9660 s RockRidge
rozšířením. Dále je vždy nutné použít u cdrecordu parametr -multi, což zajistí
možnost přidání další stopy. Jinak by se disk uzavřel a už by na něj nešlo nic
dalšího zapsat.
Nejdříve tedy zapíšeme první session příkazem
cdrecord dev=0,0,0 speed=2 -multi -data session1.iso
Pokud pak budete chtít přidat další session, musíte si nejdříve zjistit, kde
vlastně má začínat. To se provede příkazem:
cdrecord dev=0,0,0 seed=2 -msinfo
což vypíše nějaké číslo, například 0,204562. Toto číslo je potřeba si
zapamatovat a použít pro vytvoření nového iso-image pro druhou session:
mkisofs -R -o session2.iso -C cislo_z_cdrecordu -M /dev/sr0 dalsi_data/
kde číslo za parametrem -C je to, co vypíše cdrecord a zařízení za parametrem
-M je zařízení, ze kterého se bude brát TOC minulé session. Celé se to pak
vypálí standardním způsobem:
cdrecord dev=0,0,0 spee=2 -multi session2.iso
Takto lze tedy dělat multisession CD.
Další informace týkající se problematiky vypalování pod Linuxem můžete najít na
Webu linux. mystik.cz, případně na stránkách www.cdr.cz.
0 2144 / wepn

Popis používaných programů
mkisofs: program, který slouží k vytvoření ISO9660 filesystému, který se
následně vypálí na CD. Program podporuje většinu rozšíření pro tento fs, např.
Joliet, El Torito atd. V článku budu uvažovat verzi 1.12b5, která je v
distribuci Red Hat 6.1. Nejnovější verzi najdete na adrese
ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs.
cdrecord: je moderní vypalovací program, který slouží pro zápis dat na CD.
Podporuje většinu formátů disků, umí pálit audio CD, datová CD, a to jak na
obyčejná CD-R média, tak i na CD-RW (ale jen jako by to byla obyčejná CD-R),
zvládá multisession, zápis TAO (Track At Once) a DAO (Disk At Once). Na
domovské adrese www.fokus.gmd.de/nthp/emplyees/schilling/cdrecord.html
naleznete vždy nejnovější verzi.
filesystém iso9660 a jeho rozšíření:
ISO 9660: filesystém, v jehož formátu jsou data uložena na CD. Největším
rozdílem např. od ext2 je to, že se na něj nedá zapisovat. Mezi další omezení
patří, že adresářová struktura může mít pouze 8 úrovní, maximální délka názvu
souborů 32 znaků a maximální velikost 650 MB. Proto se objevila další rozšíření
tohoto standardu.
RockRidge: rozšíření, které slouží pro větší hloubku adresářové struktury a
delší názvy souborů. To ovšem není možné pod microsoftskými OS, ale při čtení
CD v tomto rozšíření pod Linuxem se zobrazují veškeré atributy, které soubor má
(tedy vlastník, skupina, práva a hlavně symbolické linky).
El Torito: slouží k tvorbě bootovacích CD-ROMů. K tomu je potřeba BIOS, který
tuto možnost podporuje. Vtip spočívá v tom, že na začátku CD je "zkopírovaná"
disketa (prvních 1,44 MB zabírá floppy-image). BIOS pak použije CD jako disketu
a nabootuje z ní.
Joliet: rozšíření, které uchovává dlouhé názvy OS Windows (95/98/NT). Je to v
poslední době asi nejrozšířenější formát CD-ROMů.

Něco málo o cdrecordu
Cdrecord, jak plyne z předchozího textu, slouží pro zápis dat na CD. Jeho
ovládání parametry z příkazové řádky je jednoduché a parametry jsou celkem
jasné.
Nejdříve se podíváme na nějaké informace ohledně vypalovačky. Příkaz -scanbus
jsme si již popsali, ale pokud víte, že program vypalovačku najde, můžete si
vypsat veškeré zjistitelné informace o ní. To se provede příkazem:
cdrecord dev=0,0,0 -prcap
Ten vypíše informace o zařízení připojené na dev=0,0,0. Výpis začíná
informacemi o zařízení, pak následují schopnosti čtení a zápisu na CD-R, CD-RW,
DVD-R, DVD-RAM a zda podporuje testovací zápis (bez zapnutého laseru). Dále
jsou to informace ohledně schopnosti čtení různých formátů, informace o
přehrávání audio CD, o uložení CD v mechanice a rychlosti čtení a zápisu.
Pro zápis si můžeme vybrat několik typů formátů, pro ně slouží tyto parametry:
-audio zapisuje data jako audiostopy
-data data jsou normální data
-xa2 data jsou CDROM XA mód 2 (používá se při multisession)
-dao zápis v Disk At Once módu
-fix uzavře neuzavřený disk, nebo se ho pokusí opravit
-multi vygeneruje TOC (Table Of Contents) podporující multisession (zápis je
pak v módu XA 2)
-msinfo vypíše informace o multisession, které jsou potřeba pro mkisofs
-toc vypíše TOC
-dummy zapisuje bez zapnutého laseru
-v vypisuje informace o průběhu zápisu
blank= vymaže CD-RW, může nabývat hodnot all, fast, track... při použití help
se vypíší možnosti čištění CD-RW disku
Zde samozřejmě nebudu vypisovat všechny parametry, pouze ty nejdůležitější.
Podrobný popis všech parametrů najdete v manuálové stránce programu. Každopádně
doporučuji k prostudování.

Nadstavby pro XWindowXCDRoast 0.98alpha5
XCDRoast je asi nejznámější nadstavba, která se používá pro pálení. Jednalo se
o aplikaci, napsanou v TK/TCL, ale nyní program prochází rekonstrukcí a je
napsán v jazyce C za pomoci GTK+. Bohužel stále ještě není dokončen, ovšem jeho
poslední alphaverze je již použitelná. Neumí sice zatím multisession disky a CD
Extra, ale vše ostatní víceméně funguje.
Po stažení a kompilaci se v adresáři vytvoří program xcdrgtk, který vás po
spuštění upozorní, že se jedná o testovací verzi, která ještě neumí vše, a
zeptá se, jestli si jste jisti, že opravdu víte, co děláte. Při prvním spuštění
si musíte v Setupu nastavit čtecí a zapisovací zařízení, cesty k adresářům, do
kterých se budou zapisovat iso-images (tj. musí být na disku, který je rychlý a
je na něm dost místa). Dále lze nastavit mnoho dalších věcí, ale některé jsou
ještě nepoužitelné.
V hlavním menu máte zatím 2 položky, Duplicate CD a Create CD. První slouží pro
tvorbu kopií už existujících CD. Po zvolení této položky se vám objeví
obrazovka, určená pro kopírování. Zobrazí se informace o médiu a použitých
images. Pro načtení CD zvolte Read CD, kde se zobrazí informace ohledně CD,
vloženého do mechaniky. Po zmáčknutí čudlíku Read all tracks se načtou buď
všechny audiostopy, nebo datové stopy. Tyto načtené stopy se pak objeví po
zvolení volby CD/Image info. Audiostopy si poté můžete přehrát, u všech stop si
lze nechat ověřit, zda se načetly správně, a nakonec volbou Write CD si vše
vypálit. Přitom můžete zvolit různé velikosti cílového CD, typ zápisu (DAO,
TAO), informace o médiu a další. Také si můžete nechat vymazat CD-RW.
Druhou možností tvorby CD v hlavním menu je Create CD. Zde lze načíst stopy,
měnit jejich pořadí apod. je to docela podobné předchozí volbě. Bohužel, ta
nejdůležitější věc, a to volba Master Tracks, ještě není zprovozněna. Ovšem,
máme se asi na co těšit.
Každopádně, xcdroaster je zatím nejlepší grafická nadstavba, kterou jsem viděl.
Má jednoduché ovládání, je intuitivní a celkově dostatečně odzkoušená a
stabilní. Také spolupráce s cdrecordem a mkisofs je bezproblémová, ovšem, jsou
požadovány co nejnovější verze těchto programů. Domovskou stránku najdete na
adrese www.xcdroast.org.
GnomeToaster 0.3
GnomeToaster je program, napsaný speciálně pro prostředí Gnome, využívá jeho
toolkit a jeho snahou je zachování maximální jednoduchosti.
Program se velmi jednoduše zkompiluje a je připraven pro pálení. Jeho okno je
rozděleno na 2 části horní je zdrojová a dolní cílová. Ve zdrojové části je
strom, kde se nachází výpis zdrojových souborů nebo stop, které mohou být k
dispozici z různých zdrojů (CD-ROMu, adresáře na disku nebo speciálního
virtuálního iso tracku, vytvořeného v okně Filesystem Editor). Tento Filesystem
Editor je v podstatě virtuálním stromem, kam můžeme přidávat soubory z horní
části. Virtuální je z toho důvodu, že si musíte vytvořit speciální adresář /
var/cdfs, do nějž se ukládají symbolické linky na soubory, které chcete na CD
mít (nemusíte mít tedy 2x tolik místa na disku). Práce v této části programu je
shodná s prací např. v kfm nebo ve Windows (myš si užije tahání souborů a menu
na pravém tlačítku myši). Další částí programu je Track Editor, ale ten ještě
není moc použitelný, každopádně ukládá wav soubory do audiostopy a vše ostatní
do datové stopy.
Poslední částí je Recording Section, která slouží k samotnému vypálení stop na
CD. Je vcelku přehledná, můžete si také smazat CD-RW nebo vytvořit bootovací CD.
Větší problémy jsou s nastavováním programu. Nastavená konfigurace se neukládá,
navíc se používají jakési příkazy, které nejsou moc popsané, ale s tím
pravděpodobně autoři časem něco udělají. Přesvědčit se o tom lze na adrese
gnometoaster.home.pages.de.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.