CD-Writing-HOWTO <author>Winfried Trümper <tt><winni@xpilot.org></tt> <date>v2.9.3, 23. julija 2000, prevod 27. avgusta 2002 <abstract> Ta dokument opisuje, kako v Linuxu zapišemo CD-ROM. </abstract> <toc> <sect>Uvod <p> Mnogi uporabljajo Linux za peko cedejev, ker je to početje z njim zanesljivo in enostavno. Nobenih modrih zaslonov s sporočili o kritičnih napakah, nobenih glavobolov pri usklajevanju strojne in programske opreme. Ko je enkrat sistem postavljen, preprosto deluje. Ta spis razlaga nastavitev, kako zapisati podatke na disk, podaja pa tudi nekaj zanimivih uporab, ki so jih prijazno prispevali bralci. <sect1>Jamstvo ter pogoji razširjanja in uporabe <p> Copyright Winfried Trümper 1996-2002. Vse pravice pridržane. Razširjanje in uporaba izvirne ali modificirane različice tega spisa sta dovoljeni pod pogojem, da se ime avtorja ne uporablja za promocijo izdelkov, izvirajočih iz te programske opreme, brez vnaprejšnjega pisnega dovoljenja. Prevodi so dobrodošli in zanje ni treba imeti posebnega dovoljenja. <bf> Avtor z ničimer ne jamči za ta spis, tudi impliciranega jamstva ne daje, denimo za trženje ali primernost za določen namen; v nobenem primeru ni odgovoren za posebno, neposredno ali posledično škodo, ki bi nastala zaradi izgube rabe, podatkov ali dobička, bodisi zaradi pogodbenih obveznosti, zanemarjanja ali drugih kaznivih dejanj, posredno ali neposredno povezanih z uporabo tega dokumenta. </bf> Povedano na kratko: ta dokument berete in uporabljate na lastno odgovornost. Nobenega jamstva z vračilom denarja nimate. Če vas zanima, zakaj se ta dokument lahko razširja pod pogoji šibke licence, ne pa GPL ali podobne, si morate prebrati članek v nemški računalniški reviji <it>c't</it>,<url url="http://www.heise.de/tp/deutsch/inhalt/te/8375/1.html"> (v nemščini). <sect1>Dostopnost <p> Kot urednik tega spisa večinoma zbiram in urejam podatke, ki mi jih pošljejo drugi. Nisem ne programer ne izvedenec za strojno opremo, zato se morate za specifične težave s programjem ali železjem obrniti na koga drugega. Vedno pa se je smiselno obrniti name s poročili o rešitvah, ki v spisu še niso opisane. <p> Vsako leto prejmem več sto e-dopisov, nanašajočih se na ta spis. Zato prosim za nekaj potrpljenja, saj ne morem vedno odgovoriti v nekaj urah. Vendar pa vedno takoj preberem vsa sporočila in vaše postavim v vrsto CDR. Preden mi zastavite vprašanje, prosim, preverite, ali ni že odgovorjeno nanj v zadnji izdaji tega spisa. Ta je vedno dostopna na naslovu <url url="http://wt.xpilot.org/">. <sect1>Priporočljivo branje <p> Kar zadeva namestitev novega jedra, se obrnite na priročnik za vašo distribucijo Linuxa. Na to se res ne spoznam, kadar gre za distribucije, ki jih ne uporabljam. <htmlurl url="http://www.cdrfaq.org/" name="CD-R FAQ"> je splošni spis z vprašanji in odgovori o zapisovanju kompaktnih diskov (CD-R), zapisovalnikih in potrebnem programju. Ker lahko z večino zapisovalnikov CD diske tudi berete, so morda vredni branja tudi <it>Linux CD-ROM HOWTO</it>, <it>Linux SCSI HOWTO</it> in <it>Linux Kernel HOWTO</it>. <sect1>Terminologija... Laserji na maksimalno moč... Ogenj!<label id="1.3"> <p> <it>CD-ROM</it> je kratica za Compact Disc Read Only Memory, bralni pomnilnik na kompaktnem disku. Laser zazna mikroskopsko majhne vdolbinice na srebrni svetlikajoči se površini. Te vdolbinice predstavljajo bite informacije in so tako drobne, da jih gre na ploščo več milijard. CD je torej hranilnik za obsežne količine podatkov. Izraz <it>CD-R</it> pomeni krajši zapis za <it>CD-ROM recordable</it> (zapisljivi CD-ROM) in se nanaša na kompaktni disk, ki na površini nima vdolbinic, zatorej je prazen. CD-R ima namesto tega posebno kemično prevleko, v katero lahko laser vžge vdolbinice. To napravimo tako, da laser, s katerim navadno vdolbinice le zaznavamo, nastavimo na nekaj večjo moč, tako da v prevleko vžge vdolbinico. To lahko na prevleki napravimo le <it>enkrat</it>. Lahko pa pustimo na disku nekaj prostora, kamor lahko pozneje še kaj dosnamemo. Takim diskom se po angleško pravi <it>multi-session CD</it>. Da bi odpravili omejitev enega zapisa na ploščah CD-R, so razvili tehnologijo <it>CD-RW</it> (CD-ROM rewritable, vnovično zapisljivi CD-ROM). Pri teh diskih lahko laser vžge vdolbinice, pa tudi stali jih, tako da je mogoče na disk znova pisati. Slednje je mogoče, ker laser v resnici ne vžiga luknjic v sredstvo. Boljša je primerjava s hokejsko tekmo: z drsanjem po ledeni ploskvi igralci (laser) puščajo na njej raze. Vzorec na ledu (disku) je potemtakem zapis dogajanja v eni četrtini tekme. V odmoru pride rolba Zamboni in zgladi raze v ledu. Vzorec na ledu je tako počiščen in led je pripravljen za novo četrtino. Skupni znanstveni izraz za izhlapevanje, kondenzacijo, taljenje, zmrzovanje ipd. je <it>fazna sprememba</it> (angl. <it>phase change</it>), zato se za naprave CD-RW uporablja tudi izraz "phase change devices". Ta spis obravnava zapisovanje diskov CD-R in CD-RW. Dobrodošli na krovu, kapitan! <sect1>Podprti zapisovalniki plošč CD<label id="supported"> <p> Glede podpore zapisovalnikom na vodilu USB si oglejte <it>Linux USB HOWTO</it>. Sicer pa lahko s precejšnjo gotovostjo domnevate, da večina naprav IDE/ATAPI in SCSI v Linuxu deluje. Večina novejših pogonov je združljivih s standardom MMC in potemtakem podprtih. Če je podprta izvedba SCSI določenega zapisovalnika, potem najverjetneje deluje tudi izvedba IDE/ATAPI, in nasprotno. Ker pa nekatere ljudi prevzameta neizmerna toplina in sreča, če med podprtimi napravami vidijo izrecno naveden njihov model, tu navajamo še seznam naprav, ki jih podpira <tt>cdrecord</tt>: <tscreen><it>Tabela: Zapisovalniki CD, podprti v Linuxu</it><verb> 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 (model ni naveden) Kodak: PCD 200, PCD 225, PCD 260, PCD 600 Matsushita: Matsushita je japonsko ime za znamko Panasonic, glej tam 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 </verb></tscreen> Podroben seznam modelov, ki delujejo ali ne delujejo z različnimi Unixu podobnimi operacijskimi sistemi, najdete na <url url="http://www.guug.de:8080/cgi-bin/winni/lsc-orig.pl">. Če vaša strojna oprema ni podprta, lahko Linux vseeno uporabljate za ustvarjanje slik bodočih plošč CD, vendar boste za zapisovanje morali uporabiti programsko opremo za DOS. Slike diskov je smiselno izdelati v Linuxu, ker večina programske opreme za DOS ne podpira dolgih imen datotek, ki so na voljo v Linuxu. <sect1>Podprte možnosti <p> Pri pripravljanju diskov imamo opravka z dvema vrstama programov. S prvimi ustvarimo sliko diska, z drugimi pa sliko zapišemo na disk. Slednji podpirajo naslednje možnosti: <tscreen><it>Tabela: možnosti zapisovalnikov diskov</it><verb> Podprta lastnost cdwrite-2.1 cdrecord-1.6 cdrdao ---------------------------------------------------------- IDE/ATAPI da da da Parallel Port ne da da CD-RW ne da da Audio CD da da da Data CD-ROM da da delno Multisession delno da ne TAO (track at once) da da da DAO (disk at once) ne delno da paketni zapis ne ne ne </verb></tscreen> Program <tt>cdwrite</tt> ni več podprt in je naveden samo zaradi popolnosti. Namesto njega uporabite <tt>cdrecord</tt>, ker podpira širši razpon naprav in ima mnogo več možnosti. Poglavitna prednost rabe programa <tt>cdrdao</tt> je možnost zapisa glasbenih plošč, pri katerih med zapisi ni dvesekundnega premora. To doseže z zapisom celotnega diska naenkrat (Disk at Once, DAO). Spodnja orodja so oblikovalniki podatkov, ki podatke pred zapisom uredijo v predpisani obliki. <tscreen><it>Tabela: možnosti programov za izdelavo slik diskov</it><verb> Možnost mkisofs mkhybrid mkvcdfs ------------------------------------------------------- ISO 9660 yes yes no RockRidge yes yes no El Torito yes yes no HFS no yes no Joliet yes yes no Multisession yes yes no CD-Extra yes yes no Video-CD no no yes </verb></tscreen> Najočitnejša razlika med datotečnim sistemom ISO 9660 ter datotečnimi sistemi, kot sta ReiserFS ali ext2, je seveda ta, da zapisanih datotek ne morete več spreminjati. Druge omejitve datotečnega sistema ISO 9660 pa zajemajo še: <itemize> <item>8 ravni podimenikov, šteto od vrhnjega imenika CD <item>do 32 znakov dolga imena datotek <item>velikost 650 MB </itemize> <it>RockRidge</it> je razširitev, ki omogoča daljša imena datotek in globljo strukturo imenikov kot ISO 9660. Ko disk CD-ROM z razširitvami RockRidge preberemo v Linuxu, vidimo vse znane podatke o datotekah, kot so lastnik, skupina, dovoljenja; delujejo tudi simbolne povezave. RockRidge se torej navidez obnaša kot običajen datotečni sistem Unix. Teh razširitev ne podpirajo sistemi DOS in Windows. <it>El Torito</it> se lahko uporablja za izdelavo zagonskih (bootable) plošč CD. Da ta možnost deluje, jo mora podpirati BIOS računalnika. Grobo rečeno, prvih 1,44 MB (ali 2,88 MB, če BIOS podpira to možnost) na disku vsebuje sliko zagonske diskete. To sliko BIOS obravnava kot disketo in z nje zažene sistem. Slednje posledično tudi pomeni, da do prave diskete (<tt>/dev/fd0</tt>) morda ne boste mogli. <it>HFS</it> omogoča, da računalniki Macintosh berejo CD-ROM, kot da bi bil ta disk z datotečnim sistemom HFS (domači datotečni sistem za računalnike Macintosh). <it>Joliet</it> med drugim prinaša podporo dolgim imenom v nekaterih novejših različicah sistemov Windows (od Windows 95 dalje). Avtorju ni znano nobeno orodje, s katerim bi omogočil dolga imena v sistemih DOS ali Windows 3.11. <it>Video-CD</it> lahko neposredno predvajamo v predvajalnikih DVD. Razdelek <ref id="2.8" name="Uporabniška programska oprema za zapisovanje na plošče CD"> navaja, kje je moč dobiti omenjeno programsko opremo. <sect1>Poštni seznami <p> Če bi se radi priključili razvojni skupini (z namenom, da bi aktivno sodelovali), pošljite elektronsko sporočilo <tt>cdwrite-request@pixar.com</tt>, v telo sporočila pa napišite <tt>subscribe</tt>. <sect>Priprava Linuxa na zapisovanje plošč CD-ROM <p> Ta razdelek se nanaša na naslednje vrste zapisovalnikov CD: SCSI, IDE/ATAPI ter enote, ki se priključijo na tiskalniška vrata. Med pisanjem tega spisa (maj 2000) zapisovalniki na vodilu USB niso bili podprti. Zapisovalniki, ki ne uporabljajo vodila SCSI, potrebujejo posebne gonilnike, s katerimi se predstavljajo kot zapisovalniki SCSI. Po eni strani je taka strategija poenotenja ("vse je SCSI") koristna, ker se na ravni namenskih programov z vsemi zapisovalniki dela enako. Po drugi strani pa zahteva, da znova nastavite nekatere namenske programe kot predvajalnike plošč ali ukaz <tt>mount</tt> -- če ste bili navajeni svoj zapisovalnik ATAPI uporabljati prek datoteke <tt>/dev/hdc</tt>, bo to treba z aktivacijo združljivosti spremeniti, denimo na <tt>/dev/scd0</tt>. Ko ste uspešno nastavili svoje železje in preostanek sistema Linux, ukaz <tt>cdrecord -scanbus</tt> prikaže seznam vseh enot na vodilih SCSI. Namen tega razdelka je, da bi vam pomagal pri nastavljanju sistema Linux, tako da boste čim prej zagledali nekaj takega kot: <tscreen><verb> 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' Removable Tape 0,5,0) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Removable Tape 0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable 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' Removable CD-ROM 1,4,0) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Removable CD-ROM 1,5,0) * 1,6,0) 'YAMAHA ' 'CDR400t ' '1.0d' Removable CD-ROM 1,7,0) * </verb><it>Programski izpis: Zaznavanje naprav na vodilu SCSI.</it></tscreen> Zgled, ki ga je prispeval Jörg Schilling, kaže skupaj štiri zapisovalnike SCSI na dveh vodilih. Izbira <tt>-scanbus</tt> prikaže tudi druge naprave SCSI, kot so enote CD-ROM, diski in tračne enote. Zadnji stolpec prikazuje opis enote SCSI, iz katerega pa ni mogoče zlahka ločiti zapisovalnikov CD od enot CD-ROM, s katerimi lahko le beremo. V oznaki izdelka (srednji stolpec) pa je pogosto kakšen namig (pripone R, -R ali -RW), ki nam pomaga pri prepoznavanju, katera enota je zapisovalnik. <sect1>Za nestrpne <p> Ta razdelek skuša ponuditi hiter in enostaven opis nastavitve. Res ne pokriva vseh mogočih situacij, kljub temu pa ste vabljeni, da nadaljujete in poskusite. Najprej z ukazom <tt>uname -r</tt> preverite, katero različico jedra Linuxa poganjate. Rezultat bo verjetno 2.4.nekaj ali 2.2.nekaj (pri čemer je ta drugi nekaj večji od 11). Če uporabljate jedro, starejše od različice 2.0.36, si morate pomagati, kakor veste in znate. Enako velja tudi, če uporabljate katero od razvojnih različic jedra (2.5.nekaj ipd.). Z namestitvijo novega jedra ni nič več dela kot s popravljanjem starega, zato tu ne navajamo nobenih receptov za krpanje napak v jedru. Spodnji izpis prikazuje nabor ukazov, ki jih potrebujete za začetek. Z ukazi ustvarimo datoteke naprav v imeniku <tt>/dev</tt>, razen če ti že obstajajo. <tscreen><verb> test `whoami` = 'root' || echo "You must be root to execute the commands." 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 </verb><it>Programski izpis: ustvarjanje datotek naprav</it></tscreen> Dostop do strojne opreme se v Linuxu izvaja prek datotek naprav. Preden se torej lotimo česarkoli, moramo preveriti, ali te datoteke obstajajo v imeniku <tt>/dev</tt>. Resda mi še nihče ni prepričljivo razložil, zakaj to ne gre samodejno, denimo z datotečnim sistemom naprav (devfs). Ta je na voljo že nekaj let in je standardna oprema jeder 2.4. Ponuja varnejši in veliko jasnejši način poimenovanja naprav, tako da se te samodejno pojavijo v imeniku <tt>/dev</tt>. Nekaj pomembnih ljudi resda trdi, da devfs ni idealna rešitev, vendar ne le, da niso ponudili ničesar boljšega -- ponudili niso niti ničesar primerljivega ali vsaj česa, kar bi bilo dostopno in preizkušeno. Začnimo že enkrat uporabljati devfs, da bom lahko zgornji programski izpis izpustil iz tega spisa. Naslednja pomembna stvar, ki jo moramo preveriti, je, ali je jedro Linuxa opremljeno s potrebnimi gonilniki. Z naslednjimi ukazi v več datotekah preverimo, ali so gonilniki naloženi v jedro. Navadno ukaz <tt>cdrecord -scanbus</tt> samodejno sproži nalaganje vseh potrebnih gonilnikov v jedro. Če se to ne zgodi, dobimo sporočilo o napaki in modularni gonilnik lahko z ukazom <tt>insmod</tt> ročno naložimo v jedro. <tscreen><verb> test `whoami` = 'root' || echo "You must be root to execute the commands." cdrecord -scanbus > /dev/null if ! (pidof kerneld || test -f "/proc/sys/kernel/modprobe"); then echo "Neither kerneld nor kmod are running to automatically load modules". fi report_no_autoload() { echo "Ensure the module $1 is loaded automatically next time." } 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 "The following is only needed for 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 </verb><it>Programski izpis: Preverjanje gonilnikov</it></tscreen> Če ukaz <tt>insmod</tt> sporoči napako o manjkajočem gonilniku, si, prosimo, preberite naslednje poglavje. Če delujete v terminalskem načinu, boste ob nalaganju gonilnikov videli izpisano vrsto diagnostičnih sporočil. Te lahko v grafičnem okolju (X11, KDE, GNOME) prikličete nazaj z ukazom <tt>dmesg</tt>. Dva načina sta, da potrebne module samodejno naložimo v jedro ob zagonu: <itemize> <item>Ustrezen ukaz <tt>insmod</tt> vnesemo v zagonski skript (<tt>rc.local</tt> ali ustrezno). <item>Poganjamo <tt>kerneld</tt> ali <tt>kmod</tt>, ki ju nastavimo v datoteki <tt>/etc/modules.conf</tt> (pravzaprav je to nastavitvena datoteka za ukaz <tt>modprobe</tt>, ki ga kliče en ali drug demon) </itemize>. Uporabniki zapisovalnika na vodilu SCSI lahko preostanek tega razdelka preskočijo, ker je ukaz <tt>cdrecord</tt> najverjetneje že zaznal njihovo strojno opremo. Če je ni, prosim, pošljite avtorju tega spisa elektronsko sporočilo z osnovnimi podatki o vašem sistemu, tako da bo lahko izboljšal razdelek o zapisovalnikih SCSI. Zdaj pa k uporabnikom, ki uporabljajo zapisovalnike CD na vodilu IDE/ATAPI. Kot smo že omenili v prejšnjem poglavju, morate naložiti združljivostni modul <tt>ide-scsi</tt>. Vendar pa ima ta gonilnik lahko dostop do zapisovalnika le, če ga že ne uporablja kak drug gonilnik. Z drugimi besedami: svojemu običajnemu gonilniku IDE morate dopovedati, naj zapisovalnika ne prepozna in naj ga pusti pri miru, tako da ga lahko pograbi gonilnik <tt>ide-scsi</tt>. <tscreen><verb> hda = IDE vodilo/vtič 0 master hdb = IDE vodilo/vtič 0 slave hdc = IDE vodilo/vtič 1 master hdd = IDE vodilo/vtič 1 slave </verb><it>Tabela: datoteke naprav za naprave IDE/ATAPI</it></tscreen> Zgornja razpredelnica kaže povezavo med imeni datotek naprav in položajem naprav na katerem od vodil IDE. Ime datoteke naprave, ki predstavlja vaš zapisovalnik CD, je treba podati jedru Linuxa, na primer <tt>hdb=ide-scsi</tt>. Tako nastavitev moramo dodati v datoteki <tt>lilo.conf</tt> ali <tt>chos.conf</tt>, če je gonilnik statični del jedra, kar je najpogostejši primer. Če morate podati jedru več kot en parameter, parametre ločite s presledki, tako kot v zgledu za chos spodaj. V programskih izpisih zgleda nastavitev, ki sledita, je prikazano več vrstic, ne le tista, ki jo je treba dodati. Vedite, da so vrstice append- in cmdline- odvisne od jedra, zatorej jih ne dodajajte na začetek datoteke. <tscreen><verb> image=/boot/zImage-2.2.14 label=Linux read-only append="hdb=ide-scsi" </verb><it>Programski izpis: Zgled nastavitve za LILO (/etc/lilo.conf)</it></tscreen> <tscreen><verb> linux "Linux 2.1.14" { image=/boot/zImage-2.0.37 cmdline= root=/dev/hda5 readonly hdb=ide-scsi } </verb><it>Programski izpis: Zgled nastavitve za chos (/etc/chos.conf)</it></tscreen> Če gonilnik IDE/ATAPI nalagamo kot modul, nam zgornja dva izpisa nista v pomoč. Namesto tega vključimo vrstico "options" iz naslednjega izpisa. Vključitev zadnjih treh vrstic navadno svetujejo zato, da se nadalje avtomatizira samodejno nalaganje potrebnih modulov. <tscreen><verb> options ide-cd ignore=hdb # tell the ide-cd module to ignore hdb alias scd0 sr_mod # load sr_mod upon access of scd0 #pre-install ide-scsi modprobe imm # uncomment for some ZIP drives only pre-install sg modprobe ide-scsi # load ide-scsi before sg pre-install sr_mod modprobe ide-scsi # load ide-scsi before sr_mod pre-install ide-scsi modprobe ide-cd # load ide-cd before ide-scsi </verb><it>Programski izpis: Zgled nastavitve /etc/modules.conf</it></tscreen> Če je zapisovalnik CD edina enota CD-ROM v sistemu, vedite, da jo morate zdaj uporabiti prek datoteke naprave <tt>/dev/scd<it>x</it></tt>, kjer je <it>x</it> številka od 0 do 7. Verjetno boste želeli tudi simbolno ime <tt>cdrom</tt> spremeniti tako, da bo kazalo na novo ime naprave. Spodnji programski izpis kaže, kako to izvedemo za napravo <tt>scd0</tt>. <tscreen><verb> cd /dev && rm cdrom && ln -s scd0 cdrom </verb><it>Programski izpis: Nastavitev cdrom kot simbolno ime za scd0</it></tscreen> Če sta zapisovalnik CD in enota CD-ROM dve različni napravi, potem pustite simbolno ime cdrom pri miru. <sect2>Posebni napotki za zapisovalnike CD na vodilu SCSI <p> Preverite, ali je BIOS krmilnika SCSI prepozna zapisovalnik. Krmilniki SCSI ob zagonu preiščejo vodilo SCSI in izpišejo vse najdene naprave. Izpis obsega identifikacijsko številko SCSI ID naprave in oznako izdelka. Nobenega smisla nima nadaljevati, če vaš pisalnik ob zagonskem pregledu naprav SCSI ni naveden. Če načrtujete priklop naprave SCSI prek vzporednih vrat (ne zamenjujte tega s priključitvijo naprav IDE prek vzporednih vrat), potrebujete posebni aktivni kabel in posebni gonilnik za jedro. Več podatkov o takih sistemih najdete na naslovu <url url="http://www.torque.net/parport/parscsi.html">. <sect2>Posebni napotki za zapisovalnike CD na vzporednih vratih <p> Pisec priznava, da o tem nima pojma, in bralca vljudno vabi, naj obišče stran <url url="http://www.torque.net/parport/paride.html"> ali prebere datoteko <tt>/usr/src/linux/Documentation/paride.txt</tt> v svojem računalniku. <sect2>Prevajanje manjkajočih modulov jedra (neobvezno) <p> Ta razdelek lahko preskočite, če je bila vaša strojna oprema pravilno prepoznana in nastavljena, kot je bilo opisano zgoraj. Jedro Linuxa je lahko opremljeno z gonilniki za različne naprave. Gonilniki so lahko statično naloženi v jedru, lahko pa jih prevedemo tudi kot module, ki se naložijo po potrebi. Zadnji način je priporočljiv za gonilnike, ki niso nujno potrebni ob zagonu sistema, ker bo tako jedro manjše in se bo hitreje naložilo. Pri gonilnikih za naprave, ki so nujno potrebne za zagon sistema, izbire nimamo, temveč jih moramo vključiti v jedro. Če imamo sistem naložen na disku IDE, je gonilnik IDE zgled za tak gonilnik -- vključiti ga moramo neposredno v jedro in ne kot modul, sicer se sistem ne bo pravilno zagnal. Poznamo tri različne vrste zapisovalnikov CD: take na vodilu SCSI, na vodilu IDE/ATAPI in zunanje naprave, ki jih priključimo na vzporedna vrata. Spodnja tabela kaže, kako nastaviti jedro Linuxa za vsako od treh navedenih vrst. Prvi stolpec tabele podaja razdelek na nastavitvenem menuju jedra, kjer lahko najdemo nastavitev. Drugi stolpec navaja kratek opis, prav tako pobran z nastavitvenega menuja. V tretjem stolpcu najdemo ime modula. Zadnji trije stolpci navajajo, kateri moduli so potrebni za katero vrsto vodila: SCSI, IDE in PP (parallel port, vzporedna vrata). <tscreen><verb> Razd. Opis Modul 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 </verb><it>Tabela: izbira gonilnikov za različne vrste zapisovalnikov</it></tscreen> Oznaka <tt>Y</tt> pomeni, da moramo gonilnik vključiti kot del jedra, <tt>M</tt> pa, da ga moramo prevesti kot modul. Pri oznaki <tt>Y/M</tt> imamo na izbiro, ali gonilnik vključimo neposredno v jedro ali pa kot modul. Če ni navedeno nič, to pomeni, da te izbire ni treba spreminjati. Veliko večje so možnosti, da bo ob vnovičnem zagonu vse še naprej delovalo, če jih v tem primeru tudi res ne spreminjamo. Posebej v mešanih okoljih (IDE/SCSI) je pametno, če prevedemo čim več gonilnikov kot module. Prevajanje povratnozančne naprave (loopback device) ni obvezno, vendar pa nam omogoča preizkušanje slike CD, preden jo zapišemo na ploščo. Če želimo brati CD, moramo vključiti podporo datotečnemu sistemu ISO 9660. Ta že vključuje razširitve Rock Ridge, podporo razširitvam, ki jih prinaša Microsoftov zapis Joliet, pa moramo izrecno dodati. V vsakem primeru pa potrebujemo nizkonivojski gonilnik za našo vrsto strojne opreme. To je gonilnik, ki občuje neposredno z izbrano napravo. Za gonilnike na vodilu SCSI in vzporednih vratih imamo na voljo široko paleto gonilnikov. Nameščanje tako prevedenega jedra Linuxa presega zastavljeni okvir tega spisa, zato se za podrobnosti obrnite na dokumentacijo za vašo distribucijo Linuxa. Uporabniki sistemov Red Hat Linux morajo poleg navedenega vključiti še podporo za "Ramdisk support" in "Initial ramdisk", poleg tega pa morajo z ukazom <tt>mkintrd --preload ide-cd initrd-2.2.16.img 2.2.16</tt>ustvariti nov pomnilniški disk z novimi moduli. <sect1>Uporabniški programi za zapisovanje na CD<label id="2.8"> <p> Podrobnejši pregled orodij za izdelavo diskov CD je na voljo na naslovu <url url="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html">. <sect2>Programi za ukazno vrstico <p> Za pripravo slik CD-R je potreben eden od naslednjih paketov: <quote> <url url="ftp://tsx-11.mnt.edu/pub/linux/packages/mkisofs/"> (mkisofs)<p> <url url="ftp://ftp.ge.ucl.ac.uk/pub/mkhfs"> (mkhybrid) </quote> Za zapisovanje slik CD-R na diske pa boste potrebovali enega od naslednjih programov: <quote> <url url="ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/"> (cdrecord)<p> <url url="http://www.ping.de/sites/daneb/cdrdao.html"> (cdrdao) <p> <url url="http://www.munich-vision.de/vcd/"> (mkvcdfs) </quote> Ne verjemite navodilom za starejše izdaje programa <tt>mkisofs</tt>, ki trdijo, da morate uporabljati izdajo 1.5 programa <tt>cdwrite</tt>. Namesto tega raje uporabite <tt>cdrecord</tt>. Novejše različice programa <tt>cdrecord</tt> vsebujejo poleg tega še izboljšano izdajo programa <tt>mkisofs</tt> in nekaj dodatnih orodij v podimeniku <tt>misc/</tt> (readcd, isosize...), ki jih ne najdete nikjer drugje. <sect2>Grafični uporabniški vmesnik (neobvezno) <p> Navedeni grafični uporabni vmesniki so čelni programi -- za delovanje poleg njih potrebujemo še prej navedene programe, ki jih poganjamo iz ukazne vrstice. <it>X-CD-Roast</it> je program za Linux, ki poenostavlja pripravo plošč CD in ponuja enovit vmesnik tako za pripravo slik CD (<tt>mkisofs</tt>) kot za zapis le-teh na disk (<tt>cdrecord</tt>). <quote> <url url="http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html"> </quote> <it>BurnIT</it> je javanski čelni program za cdrecord, mkisofs and cdda2wav, kar je vse, kar potrebujemo za pripravo CD v okolju Unix. Dostopen je na naslovu: <quote> <url url="http://sunsite.auc.dk/BurnIT/"> </quote> <it>CD-Tux</it> je terminalski čelni program za programa mkisofs in cdrecord. Z uporabo (ne)slavne knjižnice ncurses ustvarja enostavno okolje, v katerem lahko počnemo s CD skoraj vse, in to v barvah. Pri vsem skupaj je koda prevedenega programa manjša od 75 KB. <quote> <url url="http://www.datadictator.co.za/cdtux/"> </quote> <sect>Pisanje CD <p> <quote> <it>»Še ko goriš, izginjaš v dim, piščalke te ne odložim.«</it> (rimski cesar Neron, 64 n. št., o zažiganju svojih klasičnih cedejev. Popolnoma napak je razumel in požgal Rim do tal.) </quote> <p> <!-- Zgornje sem prepesnil iz angleškega izvirnika "If to smoke you --> <!-- turn I shall not cease to fiddle while you burn." Avtorja uspem --> <!-- slediti do Ambrosa Biercea, The Devil's Dictionary, lahko pa da --> <!-- gre za kakšno klasično delo (Shakespeare), za katerega je že na voljo --> <!-- boljši slovenski prevod. -pp --> Zapisovanje na diske CD se v Linuxu ponavadi izvaja v dveh korakih: <itemize> <item>zbiranje želenih podatkov (datoteke, glasba ali oboje) in zapis slike diska v posebni obliki <item>zapisovanje slike diska na CD-R s programom <tt>cdrecord</tt> </itemize> V tem poglavju nekoliko podrobneje opisujemo ta dva koraka za pripravo podatkovnih in glasbenih cedejev. <sect1>Zapisovanje diskov CD-ROM s podatki <p> Priprava podatkov za zapis na CD navadno traja dlje, kot si predstavljamo. Vedeti moramo, da datotek ne moremo dodajati na CD-ROM, ko je ta enkrat zapisan in zaprt. Enako velja za diske CD-RW, ki jih za zdaj lahko samo v celoti prepišemo. Uporaba večkratnega zapisa je za posamične datoteke preveč potratna, ker moramo vsakič na novo zapisati še celoten imenik datotek na disku (TOC). Datotečni zapis UDF za Linux pa je za zdaj še v preizkusni fazi. Pomnite tudi, da je določeni del diska (navadno nekaj MB) uporabljen za shranjevanje informacij datotečnega sistema ISO 9660. Gotovi pa smo lahko, da na disk CD-R velikosti 650 MB shranimo 620 MB svojih podatkov. <sect2>Priprava slike diska CD-ROM <p> Preden lahko na kakršenkoli pomnilniški nosilec (disketa, disk ali CD) zapišemo svoje podatke, moramo na njem ustvariti datotečni sistem. V terminologiji MS-DOS se je temu postopku reklo tudi formatiranje diska. Datotečni sistem je način organizacije podatkov na nosilcu, ki ga uporablja operacijski sistem za zapis in branje podatkov. Navadno programi za ustvarjanje datotečnega sistema ustvarijo prazen datotečni sistem na prostem razdelku na disku, tega z ukazom <tt>mount</tt> priklopimo v korenski datotečni sistem, potem pa uporabniki po potrebi na njem ustvarjajo svoje datoteke. Z diski CD-R ne gre tako. Na tak disk lahko podatke zapišemo samo enkrat. Če bi takrat zapisali prazen datotečni sistem, bi disk ostal prazen za vedno. Podobno velja tudi za diske CD-RW -- na disku ne moremo spremeniti vsebine poljubnega sektorja, temveč lahko le ves disk zbrišemo in spet zapišemo. Kar potrebujemo, je orodje, ki hkrati ob prepisu datotek na CD ustvari še datotečni sistem. Orodju se pravi <tt>mkisofs</tt>. Uporabljamo ga, kakor kaže zgled: <tscreen><verb> mkisofs -r -o slika_cd osebna_zbirka/ \----------/ \--------------/ | | kam gre izhod odkod beremo vhod </verb></tscreen> Stikalo <tt>-r</tt> nastavi dovoljenja vseh datotek tako, da so dostopne vsem, in vklopi razširitev Rock Ridge. Za veliko večino uporabnikov je to natančno tisto, kar želijo; izpustite jo le, če res dobro veste, zakaj tako ravnate (namig: brez izbire <tt>-r</tt> obdrži priklopna točna lastnika in zaščito imenika <tt>osebna_zbirka</tt>). <!-- Opomba lektorici: izrazi *standardni* vhod, standardni izhod, --> <!-- standardni izhod za napake (stdin, stdout, stderr) so del --> <!-- terminologije Unixa, zato jih prosim, ne popravljati. --> Program <tt>mkisofs</tt> bo poskušal vsa imena datotek prevesti v zapis 8.3 (osem znakov imena in trije znaki pripone), ki ga uporablja DOS, in s tem zagotoviti kar največjo mogočo združljivost. V primeru sporov glede imen (različne datoteke z enakimi imeni 8.3), se v imenih datotek uporabijo številke, informacije o sporni datoteki pa se izpišejo na standardni izhod za napake (navadno na zaslon). Samo brez panike! V Linuxu s čudnimi imeni 8.3 tako ali tako nikoli ne boste imeli opravka, ker Linux uporablja razširitve Rock Ridge, s katerimi povrne izvirne podatke o datoteki (dovoljenja, ime datoteke itd.). Če želite ustvariti disk z dolgimi imeni datotek, berljiv v okolju MS Windows, uporabite izbiro <tt>-J</tt> (razširitve MS Joliet) ali pa ukaz <tt>mkhybrid</tt>. Za pripravo diskov v Macintoshevem zapisu HFS pa raje podrobneje preučite navodila za večjega brata programa <tt>mkisofs</tt>, program <tt>mkhybrid</tt>. Verjetno ste se vprašali, zakaj se izhod programa <tt>mkisofs</tt> ne pošlje neposredno zapisovalni napravi. Za to so vsaj trije razlogi: <itemize> <item>Program <tt>mkisofs</tt> ne zna upravljati zapisovalnikov CD. <item>Sliko diska lahko na ta način preizkusimo, preden jo zares zapišemo. <item>Na starejših in počasnejših računalnikih tako zapisovanje ne bi bilo zanesljivo. </itemize> Na voljo je tudi način, da disk CD-R zapišemo v eni potezi. Predstavili ga bomo pozneje. Za zapis diskov CD bi lahko tudi ustvarili dodaten razdelek na disku in sliko zapisovali nanj. Tako strategijo močno odsvetujemo, saj lahko drobna tipkarska napaka pri tipkanju imena razdelka pomeni, da izgubite vse podatke na disku (primer ni izmišljen, avtor govori iz lastnih izkušenj). Poleg tega je to tudi zapravljanje prostora na disku, saj slika diska CD predstavlja zgolj začasne podatke in jo lahko zbrišemo, brž ko smo zapisali (in preizkusili) disk CD. Edina prednost uporabe ločenega razdelka je majhen prihranek časa, ki ga potrebujemo za brisanje 650 MB dolge datoteke. <sect1>Preizkušanje slike plošč CD<label id="3.5"> <p> V Linuxu lahko tudi posamezne datoteke “priklopimo” tako, kakor da bi bile razdelki na disku. To lastnost lahko s pridom uporabimo pri preverjanju slike CD. Čeprav so zapisljivi diski CD dandanes nemarno poceni, pa zapis diska vseeno vzame nekaj časa. Ta čas si s kratkim preizkusom lahko prihranimo. Prej ustvarjeno datoteko <tt>slika_cd</tt> priklopimo v imenik <tt>/mnt/cdrom</tt> z ukazom <tscreen><verb> mount -t iso9660 -o ro,loop=/dev/loop0 slika_cd /mnt/cdrom </verb></tscreen> Zdaj lahko preverite datoteke v imeniku <tt>/mnt/cdrom</tt> -- videti so natanko tako, kakor da bi bile na disku CD. Sliko diska odklopimo z ukazom <tt>umount /mnt/cdrom</tt>. (Opozorilo: v starih izdajah jedra Linuxa -- 2.0.31 ali starejše -- morda ne boste mogli do zadnje datoteke v imeniku <tt>/mnt/cdrom</tt>. V tem primeru nadgradite jedro - v izdajah od 2.0.36 naprej ni opisa težav. Izbira <tt>-pad</tt> programa <tt>cdrecord</tt> se nanaša samo na glasbene CD, izbrani <tt>-pad</tt> v programu <tt>mkisofs</tt> pa zahteva krpanje le-tega, s tem pa je prav toliko dela kakor z zamenjavo jedra z novejšo izdajo.) Opomba: <quote> Nekatere res stare izdaje programa <tt>mount</tt> ne znajo delati s povratnozančnimi napravami. Če imate take težave, vam svetujem, da nadgradite sistem Linux. <p> Dobil sem že veliko predlogov, naj v ta spis vnesem tudi informacije, kje dobiti najnovejšo različico programa <tt>mount</tt>. To vedno odločno zavrnem. Če je v vaši distribuciji Linuxa star program <tt>mount</tt>, spročite to kot napako. Če vaše distribucije Linuxa ni mogoče enostavno nadgraditi, sporočite to kot napako. <p> Če bi vključil vse informacije, ki so potrebne za odpravo napak slabo zgrajenih distribucij Linuxa, bi bil ta spis dosti obsežnejši in teže razumljiv. </quote> <sect1>Zapisovanje slike plošče CD na CD <p> Ta razdelek pokriva le zapis podatkov na disk CD v načinu TAO (track at once, ena steza naenkrat), kar je najpogostejši način zapisa podatkov. Za podrobnejši opis razlike med zapisoma TAO in DAO (disk at once, ves disk naenkrat) si oglejte poglavje o zapisu glasbenih CD. Če uporabljate način DAO z orodjem, kot je <tt>cdrdao</tt>, dodajte prazno glasbeno “stezo” na konec imenika TOC (podrobnosti so v datoteki README). Skoraj smo že gotovi. Če ukaza niste poskusili že prej, je zdaj pravšnji trenutek za ukaz <tscreen><verb> cdrecord -scanbus </verb></tscreen> Izpis programa vam bo povedal številko enote SCSI, ki ustreza vašemu zapisovalniku. Program <tt>cdrecord</tt> opravi to dovolj dobro, da ni vredno navajati drugih načinov, kako bi še lahko uganili ta podatek. Preden vam povem še zadnji ukaz, naj vas opozorim, da želijo biti zapisovalniki CD krmljeni z nepretrganim tokom podatkov. Postopka zapisovanja zatorej ne smemo prekinjati, drugače bo končni izdelek neberljiv disk. Brisanje zelo velike datoteke, denimo stare slike diska CD, zlahka pomeni usodno prekinitev pisanja, saj mora jedro Linuxa obnoviti podatke za 650.000 blokov na disku (ob predpostavki, da je bila datoteka dolga 650 MB in je velikost bloka 1 KB). Običajne dejavnosti, denimo branje pošte, brskanje po spletu ali celo prevajanje jedra, pa na sodobnih računalnikih ne bi smele biti usodne. Vedite tudi, da noben zapisovalnik ne zmore znova nastaviti laserja na isto mesto, kjer je bil prekinjen. Tudi močni tresljaji ali drugi mehanski vplivi bodo zato verjetno zmotili zapis CD. Ko boste psihično pripravljeni, si oblecite črno čarovniško haljo, pomnožite identifikacijsko številko SCSI-ID zapisovalnika CD z izdajo standarda SCSI, ki ga podpira, ter prižgite čim več sveč. Izgovorite dva verza ASR-FAQ (novičarska skupina <tt>alt.sysadmin.recovery</tt>) in končno vnesite: <tscreen><verb> shell> SCSI_BUS=0 # vzeto s programskega izpisa 1 "scsibus0:" shell> SCSI_ID=6 # vzeto s programskega izpisa 1 "TOSHIBA XM-3401" shell> SCSI_LUN=0 shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \ -data slika_cd # isto kot zgoraj, a krajše shell> cdrecord -v speed=2 dev=0,6,0 -data slika_cd </verb></tscreen> Zaradi preglednosti smo naslov zapisovalnika v prvem zgledu shranili v tri spremenljivke okolja: SCSI_BUS, SCSI_ID in SCSI_LUN. Da bi prepisali disk CD-RW, dodajte še stikalo “<tt>blank=...</tt>”, s čimer zbrišete staro vsebino. Več o različnih načinih brisanja diskov CD-RW najdete v priročniku cdrecord(1). Dandanes, ko ima že bolj ali manj vsakdo stroj s procesorjem vsaj 400 MHz, nekateri izhod iz <tt>mkisofs</tt> napeljejo neposredno na vhod <tt>cdrecord</tt>: <tscreen><verb> shell> IMG_SIZE=`mkisofs -R -q -print-size osebna_zbirka/ 2>&1 \ | sed -e "s/.* = //"` shell> echo $IMG_SIZE shell> [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r osebna_zbirka/ \ |cdrecord speed=2 dev=0,6,0 tsize=${IMG_SIZE}s -data - # ne pozabite na s --^ ^-- beremo s standardnega vhoda </verb></tscreen> S prvim ukazom <tt>mkisofs</tt> pripravimo do tega, da izračuna, kako velika bo izhodna datoteka, ki pa je ne naredi (potrebujemo izdajo <tt>mkisofs</tt>, ki je priložena <tt>cdrecord</tt>). Pri tem ukazu moramo določiti vse izbire, ki jih bomo uporabili pri dejanskem zapisu na disk, npr. <tt>-J</tt>, <tt>-hfs</tt> ipd. Nekateri zapisovalniki ne potrebujejo podatka o tem, kako velika je slika diska; pri teh lahko ta, prvi korak v celoti izpustimo. Izpisano velikost podamo kot parameter <tt>tsize</tt> programu <tt>cdrecord</tt> (shranjena je v spremenljivki IMG_SIZE). Pri drugem ukazu sta <tt>mkisofs</tt> in <tt>cdrecord</tt> sklopljena s cevovodom. <sect1>Zapis glasbenih CD <p> Zapisovanje glasbenih plošč je zelo podobno pravkar opisanemu zapisovanju podatkov. Izbirate lahko med dvema načinoma zapisa: DAO ali TAO. Način TAO (track at once, ena steza naenkrat) je za glasbo manj primeren, ker med posameznimi stezami (skladbami) slišimo klikanje. Vseeno ga bomo prvega opisali, ker je nekoliko enostavnejši in ker način DAO še ni na voljo za vse zapisovalnike. Poglavitna razlika med zapisovanjem glasbenih in podatkovnih CD-R je v zapisu slike diska. Pri slednjih je v zapisu ISO 9660 (in izbranimi razširitvami), ki pa za glasbo ni primeren, ker ga noben laserski gramofon ne zna brati. Namesto tega mora biti glasba zapisana kot 16-bitni stereo zapis, vzorčen s frekvenco 44.100 Hz in PCM-kodiran. Eden od pripomočkov, s katerim lahko pretvorimo zvočne zapise v zapis, primeren za zapis na CD, je <tt>sox</tt>. Uporaba je enostavna: <tscreen><verb> shell> sox killing-my-software.wav killing-my-software.cdr </verb></tscreen> Ukaz pretvori skladbo “killing-my-software” iz zapisa WAV v glasbeni zapis CDR. Priročnik sox(1) vsebuje podrobnosti o zapisih in priponah datotek, ki jih program prepozna. Ker ročno pretvorjene datoteke zasedajo tako veliko prostora, je v <tt>cdrecord</tt> vgrajena tudi možnost branja zapisov WAV in AU s primerno hitrostjo vzorčenja (16 bitov, stereo, 44.100 Hz). Če so vaše skladbe v katerem od teh dveh zapisov, jih ni treba pretvarjati v zapis CDR s programom <tt>sox</tt>, ker jih zna <tt>cdrecord</tt> uporabiti v njihovem izvirnem zapisu. Vendar pa ima <tt>cdrecord</tt> določene omejitve: velikost zvočnih podatkov mora biti večkratnik 2352, obenem pa mora biti daljša od 705.600 bajtov. Vse datoteke WAV tem pogojem ne ustrezajo, in te morate s programom <tt>sox</tt> dopolniti do zahtevane dolžine. <sect2>Zapis glasbenih CD v načinu TAO <p> Glasbeni CD ima več stez (skladb) in vsaka od njih je v načinu TAO zapisana kot ločena slika diska. Če želite imeti na disku deset skladb, morate pripraviti deset slik. Cdrecord zapiše slike na disk kot skladbe, če je podana izbira <tt>-audio</tt>. Druge izbire so enake tistim pri zapisu podatkovnih CD, razen če nimate kakšnih zelo posebnih zahtev. Naslednji trije zgledi izvedejo isto, le da vsak bere skladbe iz različnih zapisov: <tscreen><verb> shell> cdrecord -v speed=2 dev=0,6,0 -audio skladba1.cdr skladba2.cdr ... shell> cdrecord -v speed=2 dev=0,6,0 -audio skladba1.wav skladba2.wav ... shell> cdrecord -v speed=2 dev=0,6,0 -audio skladba1.au skladba2.au ... </verb></tscreen> Na tako izdelanem glasbenem CD so dvesekundni presledki med skladbami. Omembe vreden zapis, ki ga Cdrecord ne bere neposredno, je MPEG Layer 3. Datoteke v tem zapisu moramo najprej pretvoriti v zapis CDR, denimo z ukazom “<tt>mpg123 --cdr - skladba1.mp3 > skladba1.cdr</tt>”. Z izborom <tt>---cdr</tt> smo izbrali način izhodnega zapisa (CDR). Izbor <tt>-</tt> pomeni izpis na standardni izhod; v starejših izdajah Mpg123 dosežemo isto z izborom <tt>-s</tt>. Pretvorbo v nasprotno smer (iz WAV v MP3) lahko opravimo s programom LAME, skladbe s plošče pa lahko shranimo v zapisu WAV s programom <tt>cdda2wav</tt>. Če bi radi pripravili disk CD-R s kopico skladb v zapisu MP3, si lahko pomagamo s skriptom: <tscreen><verb> for I in *.mp3 do mpg123 --cdr - "$I" | cdrecord -audio -pad -nofix - done cdrecord -fix </verb></tscreen> Odvisno od hitrosti vašega računalnika lahko izberete zapisovanje pri nižji hitrosti, npr. <tt>speed=1</tt>. Če uporabite <tt>speed=4</tt>, mora biti vaš računalnik sposoben predvajati datoteke MP3 pri štirikratni hitrosti! Predvajanje datotek MP3 je računsko precej intenzivno. Če ste v dvomih, poskusite najprej $ldquo;zapisati” z ugasnjenim laserjem (izbira <tt>-dummy</tt>). <sect2>Zapis glasbenih CD v načinu DAO <p> Če se želite znebiti nadležnih presledkov med skladbami, morate zapisati ves disk naenkrat v načinu DAO (disk at once). Spomnimo se, v načinu TAO (track at once) ustreza posamezni skladbi svoja slika na disku. Podpora za način DAO je trenutno najboljša v programu <tt>cdrdao</tt>. Za podrobnosti si oglejte njegovo domačo stran. Če pripravljate CD v načinu DAO, uporabljate monolitno sliko (datoteka z zapisom glasbe) in nadzirate podatke o posameznih skladbah z nastavitveno datoteko. <tscreen><verb> 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 </verb></tscreen> <sect1>Mešani glasbeno-podatkovni CD <p> O tem niti nimamo kaj dosti povedati. Pri posamezni stezi z izbirama <tt>-data</tt> ali <tt>-audio</tt> označimo, ali gre za podatkovno ali glasbeno stezo. Zgled: <tscreen><verb> cdrecord -v dev=0,6,0 -data slika_cd -audio skladba*.cdr </verb></tscreen> <sect>Dragi Winfried <p> Ta razdelek je navadno označen kot “pogosta vprašanja” (z odgovori). Če imate težave s partnerjem, otroki ali psom, kar pišite, da je le povezano z zapisovanjem CD-R ali pa vsaj kako drugače zabavno. <sect1>Kako občutljiv je proces zapisovanja? <p> Preverite. Z izbiro <tt>-dummy</tt> poženite Cdrecord in počnite vse, kar bi sicer počeli, in videli boste, ali bo pisanje preživelo. Če krmite Cdrecord neposredno z izhoda Mkisofs, potem lahko procesi, ki imajo veliko opraviti s pisanjem po disku (npr. obnavljanje zbirke <tt>locate</tt>), toliko upočasnijo pretok podatkov, da zapisovanje CD ne bo uspelo. Preverite, ali med pisanjem ukazi <tt>cron</tt>, <tt>at</tt> ali <tt>anacron</tt> ne bodo pognali kakega takega procesa. <sect1>Ali fragmentiranost diska vpliva na hitrost pretoka? <p> Fragmentiranost diska je navadno tako majhna, da tega ni zaznati. Prav nič težko pa ni doseči tudi patološke fragmentiranosti, ki zniža hitrost dostopa na vrednosti pod 100.000 KB/s. Izogibajte se jim. :) V resnici se fragmentiranost diska z leti povečuje. Čim bolj je datotečni sistem poln, tem hitreje narašča. Vedno puščajte kakih 10 ali 20 % prostora praznega, pa z zapisovanjem CD-R ne boste imeli težav. Če niste gotovi, si lahko ogledate sporočila, ki se izpišejo ob zagonu sistema. Delež fragmentiranosti je izpisan pri preverjanju konsistentnosti datotečnega sistema. Vrednost lahko izveste tudi z <it>zelo nevarnim</it> ukazom <tscreen><verb> shell> e2fsck -n /dev/sda5 # '-n' je pomemben! [veliko izpuščenega...] /dev/sda5: 73/12288 files (12.3% non-contiguous) </verb></tscreen> V tem zgledu je videti fragmentiranost zelo visoka. Vendar pa je po drugi strani v razdelku vsega 73 majhnih datotek, tako da stanje še <it>ni</it> alarmantno. V poskusni fazi je na voljo pripomoček e2defrag, s katerim lahko defragmentiramo datotečne sisteme ext2. Trenutna izdaja ni dovolj zanesljiva niti za domačo rabo. Če bi res radi defragmentirali razdelek, naredite varnostno kopijo (še bolje: dve kopiji!), preverite, ali znate z nje povrniti podatke, potem pa prek starega datotečnega sistema ustvarite novega (s tem zbrišete starega) in povrnite podatke z varnostne kopije. To je gotovo najvarnejša pot. <sect1>Ali je mogoče hraniti slike CD v datotečnem sistemu UMSDOS? <p> Da. Edini datotečni sistem, ki ni ne dovolj zanesljiv ne dovolj hiter za zapisovanje CD, je <it>omrežni datotečni sistem</it> (NFS). Avtor je sam uporabljal UMSDOS za deljenje diskovnega prostora med okolji Linux in DOS/Windows v starem osebnem računalniku (486/66), namenjenem zapisovanju CD. <sect1>Ni nobene poti, po kateri bi se obšlo omejitve ISO 9660? <p> Seveda je. Na disku CD lahko ustvarite katerikoli datotečni sistem. Vendar pa v tem primeru drugi operacijski sistemi ne bodo mogli prebrati diska. Recept je naslednji: <itemize> <item>Ustvarimo prazno datoteko velikosti 650 MB. <tscreen><verb> dd if=/dev/zero of="prazna" bs=1024k count=650 </verb></tscreen> <item>V datoteki ustvarimo datotečni sistem ext2. <tscreen><verb> shell> /sbin/mke2fs -b 2048 prazna prazna is not a block special device. Proceed anyway? (y,n) y </verb></tscreen> <item>Prazno datoteko priklopimo prek povratnozančne naprave na novo priklopno točko (glej zgoraj). <tscreen><verb> mount -t ext2 -o loop=/dev/loop1 prazna /mnt </verb></tscreen> <item>V datoteko, zdaj priklopljeno v imenik <tt>/mnt</tt>, prepišemo datoteke in datoteko odklopimo. <item>Z ukazom <tt>cdrecord</tt> prepišemo datoteko <tt>prazna</tt> (ki v resnici ni več prazna) na disk CD enako, kot bi prepisali sliko diska z datotečnim sistemom ISO 9660. </itemize> Če želite vnesti to priklopno točko v <tt>/etc/fstab</tt>, onemogočite njeno preverjanje ob zagonu, denimo: <tscreen><verb> /dev/cdrom /mnt/cdrom ext2 defaults,ro 0 0 </verb></tscreen> Prva vrednost 0 pomeni “ne vključi v varnostno kopijo”, druga, za nas pomembnejša, pa “ne preverjaj napak ob zagonu”. Program Fsck namreč ne more uspešno “popravljati” napak na disku CD. <sect1>Kako preberem skladbe z glasbenih plošč? <p> Na voljo je več paketov. Najnovejši je Cdparanoia, ki ga dobite na naslovu <quote> <url url="http://www.xiph.org/paranoia/"><p> </quote> Namesto njega lahko uporabite tudi kombinacijo Cdda2wav in Sox. Na voljo sta V strežniku Sunsite in zrcalnih strežnikih_ <quote> <url url="ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz"> <p> <url url="ftp://sunste.unc.edu/pub/Linux/apps/sound/convert/sox-11gama-cb3.tar.gz"> </quote> Program <tt>cdda2wav</tt> omogoča zajetje določenega intervala (ali celotne skladbe) z glasbenega CD in ga pretvori v datoteko WAV. Program <tt>sox</tt> pretvori datoteke wav nazaj v zapis CDDA, ki ga uporabljajo glasbeni CD, tako da jih lahko s programom <tt>cdrecord</tt> zapišemo na CD-R. V novejše izdaje programa <tt>cdrecord</tt> je že vgrajena podpora branju zapisov WAV in AU, tako da programa <tt>sox</tt> niti ne potrebujete. <sect1>Kako po zagonu poiskati naprave vrste SCSI? <p> V datoteki <tt>drivers/scsi/scsi.c</tt> so informacije <tscreen><verb> /* * 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 hotplugging 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 corruot an ongoing data transfer. */ </verb></tscreen> Pazite: Z opisanim ukazom lahko le dodaste napravo na konec verige SCSI. Vrivanje naprav v staro verigo zmoti poimenovanje naprav v imeniku <tt>/dev</tt>, kar lahko uniči vsebino vašega diska. Nekatere izdaje jedra ne marajo vnovičnega pregleda vodila SCSI in lahko ob takem posegu zmrznejo. Opozorili smo vas. <sect1>Ali je mogoče narediti 1:1 kopijo CD? <p> Da, vendar se morate zavedati dejstva, da lahko vsaka napaka med branjem izvirnika (zaradi prahu ali prask) povzroči okvaro na kopiji. Obe opisani metodi odpovesta pri glasbenih ploščah! Za te morate uporabiti programe, kot sta Cdrdao ali Cdda2wav. Prvi zgled: imate zapisovalnik CD in ločen pogon CD-ROM. Z ukazom <tscreen><verb> cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0 </verb></tscreen> berete tok podatkov s pogona CD-ROM, ki je priključen kot <tt>/dev/scd0</tt>, in ga zapisujete neposredno na zapisovalnik CD. Drugi zgled: nimate ločenega pogona CD-ROM. V tem primeru boste za branje CD-ROM morali uporabiti zapisovalnik. <tscreen><verb> dd if=/dev/scd0 of=slika_cd </verb></tscreen> Ukaz prebere vsebino diska CD-ROM z naprave <tt>/dev/scd0</tt> in jo zapiše v datoteko “slika_cd”. Vsebina je enakovredna rezultatu <tt>mkisofs</tt>, tako da lahko nadaljujete, kakor smo prej opisali, torej jo s programom Cdrecord zapišete na disk CD. Če bi radi še merilnik poteka in podobne lepote, pa uporabite program <tt>sdd</tt> Jörga Schillinga. Če so pri prepisu nastale napake, namestite najnovejšo različico programa Cdrecord. V imeniku <tt>misc/</tt> najdete orodje <tt>readcd</tt>, ki počne isto kot <tt>dd</tt>, vendar vsak sektor na CD-ROM prebere večkrat, tako da se morebitne napake izpovprečijo. <sect1>Ali lahko Linux bere CD z zapisom joliet? (odvečno) <p> Da. Vse novejše izdaje jedra (od 2.0.36 dalje) imajo vgrajeno podporo zapisu joliet. Zapomnite si, da morate v datoteki <tt>/etc/fstab</tt> navesti tako <tt>iso9660</tt> kot <tt>joliet</tt> (slednji ni datotečni sistem, temveč le razširitev). Več podrobnosti najdete na naslovu: <url url="http://www-plateau.cs.berkeley.edu/people/chaffe/joliet.html">. <sect1>Kako lahko berem/priklopim CD-ROM z zapisovalnikom CD? <p> Povsem enako, kot to storite z običajnim pogonom CD-ROM. Tu ni nobenih zvijač. Za branje CD morate uporabiti naprave <tt>scd</tt> (SCSI CD-ROM), čeprav imate CD-ROM na vodilu IDE/ATAPI (spomnite se, da ste zapisovalnik nastavili kot enoto SCSI). Zgled vnosa v <tt>/etc/fstab</tt>: <tscreen><verb> /dev/scd0 /mnt/cdrom iso9660 ro,user,noauto 0 0 </verb></tscreen> <sect1>Kako lahko shranim na CD-R še več podatkov? <p> Podatke stisnite s programom <tt>bzip2</tt>, ki doseže večjo stopnjo stiskanja kot programa <tt>gzip</tt> ali <tt>pkzip</tt>. Tako lahko pri večjih datotekah (100 KB in več) prihranite do 30 % prostora na disku. Najdete ga na naslovu: <quote> <url url="http://www.muraroa.demon.co.uk/"><p> </quote> Namesto zapisovanja glasbenih CD lahko datoteke WAV pretvorite v datoteke MP3 in jih shranite na disk ISO 9660 kot navadne datoteke. Zapis MP3 navadno doseže stopnjo stiskanja 1 : 10. Seveda takega diska v večini laserskih gramofonov ne boste mogli prebrati, kar je slabost tega postopka. Po drugi strani pa, zakaj ne bi na naslednji zabavi vrteli glasbe kar z diska? 40 GB je dovolj za kakih 8000 skladb. :) Programski kodirnik MP3 je na voljo na naslovu: <quote> <url url="http://www.sulaco.org/mp3/"><p> </quote> Predvajalnik MP3 pa dobimo na naslovu <quote> <url url="http://www.mpg123.org/"><p> </quote> Posneti govor lahko skrčite v velikosti s programom <tt>shorten</tt>, ki vsebuje isti postopek, kot se uporablja v telefoniji GSM: <quote> <url url="ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/"><p> <url url="http://kbs.cs.tu-berlin.de/~jutta/toast.html"><p> </quote> <sect1>Kako izdelamo CD-ROM, s katerega lahko zaženemo sistem? <p> Imeti morate zagonsko disketo velikosti 1,44 MB. Natančno sliko te diskete izdelamo z ukazom <tscreen><verb> dd if=/dev/fd0 of=boot.img bs=18k </verb></tscreen> Prepišite to sliko v imenik, v katerem je zbirka datotek, ki bi jih radi shranili na CD-ROM. Če želite, jo lahko shranite tudi v poseben podimenik. Programu <tt>mkisofs</tt> podaste sliko zagonske diskete s stikalom <tt>-b</tt>; uporabiti boste morali tudi izbiro <tt>-c</tt>. Podrobnosti si oglejte v datoteki <tt>README.eltorito</tt>, ki je del paketa Mkisofs. Zanimiva uporaba po meri izdelanih zagonskih CD je izdelava sistemov DOS ali Windows, varnih pred virusi. Na ta način lahko tudi prihranite denar za diske, če so računalniki vključeni v omrežje in imajo dostop do uporabniških podatkov v strežniku Samba. Nemška računalniška revija c't je obravnavala tak zgled v novembrski številki leta 1999, na strani 206 (glej tudi <url url="http://www.heise.de/">). Nekaj podrobnosti o zagonskem disku Red Hat je na voljo na naslovu <url url="http://members.bellatlantic.net/~smithrod/rhjol-technical.html">. <sect1>Kako lahko na disk CD-ROM pišemo kot na računalniški disk? <p> Na voljo je <it>prekrivni datotečni sistem</it> za Linux, ki ga priklopimo prek diska CD-ROM, tako da prestreže vse poskuse pisanja. Nove in spremenjene datoteke so v resnici shranjene nekje drugje, na ravni uporabnika pa je videzi, kot da se je spremenila vsebina diska CD-ROM. Za več informacij si oglejte <url url="http://home.att.net/~artnaseef/ovlfs/ovlfs.html">. Če vam to ne zadošča, si oglejte datotečni sistem UDF (<url url="http://trylinux.com/projects/udf/">). Sistem še razvijajo, na voljo pa so že delujoči moduli. <sect1>Je mogoče uporabljati več zapisovalnikov naenkrat? <p> Da. Obstaja poročilo o nekom, ki je hkrati uporabljal tri zapisovalnike na enem vodilu SCSI pri polni (šestkratni) hitrosti na osebnem računalniku s taktom 233 MHz z jedrom 2.2.12. Potrebujete jedro izdaje 2.2.12 ali novejšo. <sect1>Kaj pa Solaris, *BSD, AIX, HP-UX ipd.? Je moja različica Unixa podprta? <p> Samo drugo poglavje tega spisa je omejeno zgolj na Linux. Vse, povedano v tretjem in četrtem poglavju, pa velja tudi za druge operacijske sisteme. Oglejte si datoteke README.NetBSD, README.aix, README.hpux, README.next, README.solaris, README.sunos, README.vms ali README.xxxBSD iz paketa Cdrecord. Odgovor je najverjetneje pritrdilen. Prevedite Cdrecord v vašem sistemu in poženite <tt>cdrecord -scanbus</tt>. V imeniku z izvirno kodo Cdrecorda poiščite datoteko README za svojo različico Unixa in jo preučite. Vedite pa, da vse različice Unixa, čeprav jih boste znali zapisati, ne znajo <it>brati</it> razširitev Rock Ridge, Joliet ali HFS. <sect1>Kje je najbolje trajno shraniti lokalne nastavitve? <p> Dve možnosti imate. Uporabite lahko privzeto datoteko z nastavitvami programa Cdrecord ali pa ovojni skript, kot je prikazan spodaj. Ovojni skript prebere nastavitveno datoteko, v kateri so naštete izbire in parametri programa Cdrecord. Imena izbir so natanko enaka, kot bi jih navedli v ukazni vrstici, manjka jim le uvajalna črtica. Dovoljeni so tudi komentarji. Zgled: <tscreen><verb> # z razlago poteka v # nastavitev hitrosti speed=2 # naslov naprave v obliki BUS,ID,LUN dev=0,6,0 </verb></tscreen> Nastavitvena datoteka spada v imenik <tt>/etc/cdrecord</tt> in jo moramo navesti v ukazni vrstici, na primer: “<tt>cdrecord.sh mojcdr.cfg -audio track1...</tt>”, če se sklicujemo na nastavitveno datoteko <tt>/etc/cdrecord/mojcdr.cfg</tt>. Vse izbire za <tt>mojcdr.cfg</tt> se prenesejo programu Cdrecord. <tscreen><verb> #! /bin/bash CFGDIR="/etc/cdrecord" CFG="$1" shift ARGS_LEFT="$@" if [ ! -f "$CFGDIR/$CFG" ] then echo "Nastavitvene datoteke $CFGDIR/$CFG ni moč najti. Končujemo." 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 "Zagon Cdrecord ni uspel." </verb></tscreen> <sect1>Kako lahko preberemo podatke o CD? <p> Nekje za prvimi 32 KB na CD je blok s podatki o CD. Te podatke lahko dosežete z naslednjim skriptom: <tscreen><verb> #! /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 </verb></tscreen> <sect1>Kaj pa pisanje prek diskov CD-RW? <p> Pri pisanju prek popisanih diskov CD-RW dodajte programu Cdrecord parameter <tt>blank=fast</tt>. To je vse. Za podrobnosti o tem parametru si oglejte priročnik cdrecord(1). <sect1>Kako lahko dodajamo podatke na disk CD-R? <p> Slika CD, na katerega dodajamo podatke (diskom CD, na katere zapišemo podatke v več pisanjih, pravimo tudi “multi-session” CD), mora biti formatirana kot datotečni sistem ISO 9660 z razširitvami Rock Ridge. Pri zapisovanju moramo v programu Cdrecord uporabiti izbiro <tt>-multi</tt>, če nameravamo za tem zapisom dodati še kakega (zanesljivo moramo torej izbiro <tt>-multi</tt> navesti pri prvem zapisovanju). Nekateri zapisovalniki ne podpirajo načina CD-ROM XA mode 2 SAO (session at once); pri teh morate podati programu Cdrecord tudi stikalo <tt>-data</tt>. Slike drugega in naslednjih zapisovanj je malce bolj zapleteno izdelati. Program Mkisofs mora namreč vedeti, kje se začne prosti prostor na disku CD-R (privzeto je, da na začetku, kar je dobro le za povsem prazne diske). Ta podatek lahko izvemo z izbiro <tt>-msinfo</tt>, podano programu Cdrecord (zgled spodaj). <tscreen><verb> shell> NEXT_TRACK=`cdrecord -msinfo dev=0,6,0` shell> echo $NEXT_TRACK shell> mkisofs -R -o slika_cd2 -C $NEXT_TRACK -M /dev/scd5 osebna_zbirka/ \ </verb></tscreen> Več podatkov si lahko preberete v datoteki README.multi, ki je del paketa Cdrecord. <sect1>Ali naj uporabim krmilnik SCSI, ki sem ga dobil z zapisovalnikom? <p> Sporočeno po elektronski pošti: Dokumentacija za večino zapisovalnikov priporoča namestitev zapisovalnika na ločeno vodilo SCSI, če obenem uporabljamo enoto CD-ROM in zapisovalnik CD. Tudi sam sem opazil naslednje: Imam krmilnik Adaptec 2940UW, 24x SCSI CD-ROM in 4x4 SCSI zapisovalnik CD. Skupaj s slednjim sem dobil še preprost krmilnik SCSI na vodilu ISA, ki lahko krmili le eno napravo SCSI. Seveda sem ga ignoriral in zapisovalnik lepo priključil na krmilnik Adaptec, vendar pa sem med delom opazil, da medpomnilnik na zapisovalniku pri štirikratni hitrosti snemanja pogosto ne zmore kompenzirati prekinitve toka podatkov. Ko sem priključil zapisovalnik na krmilnik ISA, so težave izginile. Vem za vsaj še dva druga (oba s krmilnikom 2940), ki sta pri zapisovanju CD neposredno z enote CD-ROM naletela na podobne težave. Pri zapisovanju CD z diska, ki je bil na istem vodilu SCSI kot zapisovalnik, nisem nikoli imel težav. <sect1>Zapisovanje CD po omrežju <p> Hitrost prenosa s FTP po 10 MHz lokalnem omrežju je navadno dovolj visoka za krmljenje zapisovalnika CD pri štirikratni hitrosti zapisa. Odjemnika FTP lahko s programom Cdrecord sklopimo s poimenovano cevjo (FIFO). Najprej ustvarimo FIFO z imenom <tt>slikacd</tt>: <tscreen><verb> mkfifo slikacd ftp oddaljeni.gostitelj.si get slika_cd slikacd </verb></tscreen> Zdaj lahko uporabljamo <tt>slika_cd</tt> kot navadno datoteko, torej jo lahko zapišemo na CD z ukazom Cdrecord: <tscreen><verb> cdrecord dev=0,1,0 speed=2 slikacd </verb></tscreen> Odjemnik FTP bo opazil, kadar želi Cdrecord brati iz datoteke, in bo začel prenašati datoteko <tt>slika_cd</tt> iz gostitelja <tt>oddaljeni.gostitelj.si</tt>. <sect1>Na koncu vsake skladbe slišim klikanje in prasketanje <p>. Če se hočete znebiti prasketanja, morate za zapisovanje glasbenih CD uporabiti način zapisa DAO (disk at once). <sect1>Kako nastavim, da lahko zapisovalnik uporabljajo tudi navadni uporabniki, ne le skrbnik sistema? <p> Ena možnost je, da prevedenemu programu Cdrecord nastavite bit SUID, kar pa lahko ustvari razpoko v varnosti sistema. Preprosta sprememba nastavitev datoteke naprave ne pomaga, ker Cdrecord pošilja ukaze, ki zahtevajo sistemske pristojnosti, tudi po generičnem vmesniku SCSI. <tscreen><verb> which cdrecord chown root.root /usr/bin/cdrecord chmod 4111 /usr/bin/cdrecord </verb></tscreen> <sect1>Kje lahko dobim specifikacije standardov “Yellow Book” in “Orange Book”? <p> Pri družbi Philips in to za drag denar. <sect1>Kje najdem podatke o zapisovanju Video-CD v Linuxu? <p> Nekaj podatkov o pripomočkih za ustvarjanje videov MPEG in Video-CD najdete na naslovu <quote> <url url="http://www.mainconcept.de/"><p> <url url="http://www.johanni.de/munich-vision/vcd/"><p> </quote> Tisti, ki so politično korektni, omenjajo uporabo berkeleyjskih orodij in strategije YUV. Raba le-teh je zapletena, vzame veliko časa in prostora na disku in ne podpira zvoka v posnetkih MPEG. Namesto tega priporočam v predhodnem besedilu omenjena orodja, ki olajšajo delo. <sect1>Je laže pripraviti za delo zapisovalnike IDE ali SCSI? <p> Zapisovalnike SCSI v Linuxu malce laže pripravimo za zapisovanje. Po poročilih drugih imajo tudi boljše odpravljanje napak. Če to odtehta dejstvo, da so dražji, je težko v splošnem odgovoriti. <sect1>Kako lahko spravimo na disk CD več od nazivne zmogljivosti? <p> Pisanje prek nazivne zmogljivosti (angl. overburning) ni nič posebnega. Na svojo odgovornost lahko shranite na CD več od nazivne zmogljivosti diska (650 MB ali 700 MB), vendar do podatkov na drugih enotah morda ne boste mogli. Sicer pa v Linuxu ni nobene programske omejitve na 650 MB ali kaj takega. <sect1>Kaj napravi Cdrecord, ko tok podatkov iz cevovoda presahne? <p> Neha pisati. To pomeni, da lahko Cdrecord sklopite s svojim priljubljenim orodjem za izdelavo varnostnih kopij, denimo “<tt>ru -size=640m -f - | cdrecord dev=0,1,0 speed=2 -</tt>”. Če sega varnostna kopija prek več diskov CD, mora za to skrbeti program ta izdelavo varnostne kopije. <sect1>Je pri posnemanju ide-scsi kaj enakovrednega izbiri “ignore=hdX”? <p> Ne vem, bi pa podpiral vsakogar, ki bi v jedro Linuxa želel dodati to možnost. <sect1>Kolikokrat lahko zbrišemo in spet uporabimo diske CD-RW? <p> Dobro vprašanje. <sect1>Katera oblika zapisa je najboljša, če želimo CD-ROM brati v različnih strojnih okoljih? <p> Edini datotečni sistem za diske CD-ROM, ki ga zagotovo lahko beremo v vseh strojnih okoljih, je ISO 9660 brez razširitev HFS (Macintosh), Joliet (Microsoft) ali Rock Ridge (Unix). To obenem pomeni omejitev pri imenih datotek na 8+3. Nobenega skupnega standarda, ki bi podpiral daljša imena datotek, ni. <sect1>Je mogoče dodajanje skladb na glasbene CD? <p> Laserski gramofoni zmorejo brati le skladbe, zapisane v prvem zapisu, tistih, shranjenih v naslednjih zapisih (multi-session), pa ne. Pač pa lahko pozneje dopišemo podatkovni del in ga na ta način uspešno skrijemo pred laserskimi gramofoni. Ta postopek lahko uporabimo pri mešanih (glasbeno-podatkovnih) ploščah, če ne želimo, da laserski gramofon “vidi” podatkovni del kot “prazno” skladbo. <sect1>Kakšen računalnik potrebujem za zapisovanje CD? Je stari Pentium dovolj? <p> Odgovor je odvisen od vaših želja. Če potrebujete izgovor za nakup novega računalnika, vam lahko postrežemo z odgovorom Mednarodnega združenja izdelovalcev računalniške opreme: Karkoli že nameravate početi, potrebujete procesor s taktom vsaj 2,8 GHz. Ker ga vaša osnovna plošča ne podpira, to obenem pomeni tudi zamenjavo osnovne plošče. Če se želite izogniti napornemu in zamudnemu razstavljanju, sestavljanju in nastavljanju računalnika, je najlaže, če kupite že izdelan računalniški sistem, kot ga vidite v oglasih po televiziji. Preostanek tega razdelka lahko preskočite. Če bi radi razumen odgovor -- pisec tega spisa je uspešno zapekel kar spodobno število diskov na starem računalniku 486 s taktom 66 MHz. Čeprav Microsoft takega sistema niti ne šteje več med osebne računalnike, temveč priporoča, da na njem poganjamo Windows CE (predstavljeno na sejmu CeBIT), Linux ne le, da čisto lepo teče na teh prednikih Pentiuma, ampak jih lahko uporabljamo tudi za zapisovanje CD. Ali vaše železje zadošča za zapisovanje CD, lahko ugotovite z enostavnim preizkusom. Program Cdrecord poženite s stikalom <tt>-dummy</tt>, ki izklopi laser, in opazujte, kako se “peče” CD. <sect>Iskanje in odpravljanje težav <p> Naj vas vnaprej potolažimo, da so po najnovejših raziskavah okvarjeni diski CD-R (angleški termin zanje je “coaster”, podstavek za kozarec) povsem enako uspešni pri motenju policijskih radarjev kakor pravilno zapisani. :) <sect1>Ne deluje: v Linuxu<label id="doesntwork"> <p> Najprej preverite, ali zapisovalnik deluje s priloženim programjem (najverjetneje to pomeni tudi v nekem drugem operacijskem sistemu). Konkretno: <itemize> <item>Ali krmilnik prepozna zapisovalnik kot SCSI napravo? <item>Ali programska oprema zazna zapisovalnik? <item>Ali je mogoče s priloženo programsko opremo “zapeči” CD? </itemize> Če ne deluje niti v drugih operacijskih sistemih, gre najverjetneje za spor z drugo strojno opremo ali pa je strojna oprema okvarjena. Če deluje in uporabljate za zagon Linuxa program Loadlin, je najverjetneje vzrok napaka v njem. Loadlin izvede “topli zagon” sistema, pri katerem je večina strojne opreme že inicializirana, to pa lahko zmede jedro Linuxa. <sect1>Napaka: enota 'dev=0,6,0' ni dostopna za branje <p> Nekatere izdaje knjižnice Libc so med seboj nezdružljive (kar je napaka), tako da program, povezan z eno izdajo knjižnice, ne deluje, če je nameščena druga izdaja. Zgled take napake, do katere pride pri uporabi že prevedenih programov, je: <tscreen><verb> [root@Blue /dev]# cdrecord -eject dev=0,6,0 cdrecord: No such file or directory. No read access for 'dev=0,6,0'. </verb></tscreen> Napako odpravimo tako, da namestimo novejšo izdajo knjižnice Libc. <sect1>Ne deluje: v sistemu DOS in sorodnih operacijskih sistemih <p> Poskusite uporabiti Linux. Namestitev in nastavitev naprav SCSI v sistemu DOS je pravi pekel. Linux da je preveč zapleten? Ha! <sect1>Napake SCSI med procesom zapisovanja <p> Te napake najpogosteje nastanejo zaradi: <itemize> <item>manjkajoče možnosti za odklop in priklop naprav na vodilih SCSI, <item>preslabo hlajene strojne opreme, <item>okvare strojne opreme (to bi morali zaznati že v <ref id="doesntwork" name="Ne deluje: v Linuxu">). </itemize> Zaradi različnih okoliščin naprave SCSI elektronsko prekinejo in znova vzpostavijo povezavo z vodilom SCSI. Če ta izbira ni na voljo (preverite parametre krmilnika in jedra), lahko pride na nekaterih zapisovalnikih med procesom zapisovanja do okvar. Konkretno krmilnik NCR 53c7, 8xx ima privzeto to izbiro izključeno, zato najprej preverite: <tscreen><verb> 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 </verb></tscreen> <sect1>Napake na nosilcu <p> Če Cdrecord sporoči napako, kot so “Sense Key: ... Medium Error, Segment ...”, to pomeni, da pomnilniški nosilec ni prazen. Če gre za disk CD-RW, poskusite nadomestiti izbiro <tt>blank=fast</tt> z izbiro <tt>blank=all</tt>. Če gre za disk CD-R, preverite, ali disk še ni videl zapisovalnika od znotraj, ali pa poskusite diske drugega izdelovalca. <sect1>Novo zapisanih diskov CD nekateri predvajalniki ne znajo brati <p> Nekateri poročajo o težavah z diski CD-R lastne izdelave. Nekateri zelo stari laserski gramofoni in avtomobilski laserski gramofoni imajo včasih z njimi težave, vendar so te redke. Pogoste pa so težave pri branju diskov CD-RW v navadnih laserskih gramofonih, ker ti laserske svetlobe ne odbijajo enako dobro kakor tovarniško odtisnjeni, srebrni diski. <sect1>Ko sem naložil modul ide-scsi, je nehal delovati skener <p> Poimenovanje naprav SCSI se spremeni, ko vključimo posnemanje SCSI. Če ste prej skener uporabljali prek naprave <tt>/dev/sg0</tt>, se je ta zdaj morda spremenila v <tt>/dev/sg1</tt> ali <tt>/dev/sg2</tt>. Pomembnim ljudem, odgovornim za razvoj jedra, se tako obnašanje ni zdelo nenavadno, zato so zavračali rešitve, kot je denimo devfs. To je resda že druga zgodba, zato raje najprej poskusite ustvariti simbolno povezavo <tt>/dev/scanner</tt>, ki kaže na dejansko generično napravo SCSI. Zgled: <tscreen><verb> cd /dev ls -l scanner # trenutna nastavitev ln -sf sg2 scanner # preizkusimo skener ln -sf sg1 scanner # preizkusimo skener # in tako naprej </verb></tscreen> Razvijalci namenskih programov bi morali pozorno razmisliti o podpori nevarni in k napakam nagnjeni shemi poimenovanja naprav. Če ne drugega, razmislite o vmesni rešitvi, kot je uporaba naslova SCSI, tako kot uporablja program Cdrecord. <sect>Zasluge <p> Veliko zaslug imajo bralci tega spisa, ki so dejavno sodelovali pri nastajanju vsebine. Ker sam nekaj let nisem imel dostopa do zapisovalnika CD, so bila poročila s terena o dejanskih nastavitvah in izkušnjah zame neprecenljivega pomena. <descrip> <tag/Doug Alcorn <doug@lathi.net>/ je pomagal izboljšati delovanje novejših izdaj jedra, <tag/Kalle Andersson <kalle@sslug.dk>/ zapisovanje glasbenih CD neposredno iz datotek MP3, <tag/Alan Brown <alan@manawatu.net.nz>/, <tag/Rick Cochran <rick@msc.cornell.edu>/ namig o odklopu in vnovičnem priklopu, privzeto onemogočenem pri krmilnikih NCR, <tag/Robert Doolittle <bob.doolittle@sun.com>/ dobri argument, da v spisu povsem izpustimo program Cdwrite, <tag/Markus Dickebohm <m.dickebohm@uni-koeln.de>/, <tag/Thomas Duffy <tduffy@sgi.com>/ večje čiščenje slovnice in črkovanja, <tag/Dave Forrest <dforrest@virginia.edu>/ je popravil napako v imenih adapterjev, <tag/Jos van Geffen <jos@tnj.phys.tue.nl>/ je opozoril na problem, opisan v razdelku 4.9, <tag/Bernhard Gubanka <beg@ipp-garching.mpg.de>/ pa na to, da moramo za uporabo povratnozančne naprave imeti nameščeno sodobno izdajo programa mount. <tag/Stephen Harris <sweh@mpn.com>/ je prispeval namig o zapisovanju glasbenih CD, <tag/Janne Himanka <shem@oyt.oulu.fi>/ kazalec na krpo jedra, potrebno za branje CD-ROM z razširitvami joliet, <tag/Stephan Noy <stnoy@mi.uni-koeln.de>/ podatke in izkušnje z zapisovanjem glasbenih CD, <tag/Don H. Olive <don@andromeda.campbellsvil.edu>/ URL orodja Mkhybrid, <tag/Jesper Pedersen <jews@imada.ou.dk>/, <tag/Pierre Pfister <pp@uplift.fr>/ pa je pomagal pri izdelavi recepta za prepisovanje 1:1. <tag/Daniel A. Quist <dquist@cs.nmt.edu>/ je prispeval podatke o IDE CD-R in novejših izdajah jedra, <tag/Martti.Rahkila@hut.fi/ poročilo o težavah s prednastavljenimi zapisovalniki pri zagonu s programom Loadlin, <tag/Dale Scheetz <dwarf@polaris.net>/, <tag/Joerg Schilling <schilling@fokus.gmd.de>/ veliko podatkov o programu Cdrecord, <tag/Martin Schulze <joey@Infodrom.North.DE>/ podatke o dopisnem seznamu programa Cdwrite, <tag/Gerald C Snyder <gcsnyd@loop.com>/ je preizkusil zapis CD-ROM z datotečnim sistemom ext2 (razdelek 4.4). <tag/Art Stone <stone@math.ubc.ca>/ je prispeval zamisel, da na CD-ROM zapišemo od ISO 9660 različen datotečni sistem, <tag/The Sheepy One <kero@escape.com>/ je predlagal uporabo okvarjenih diskov CD-ROM kot podstavkov za kozarce, <tag/Erwin Zoer <ezoer@wxs.nl>/. </descrip> Rad bi se zahvalil tudi naslednjim ljudem, ki so me opozorili na tipkarske napake: Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>, Alessandro Rubini <rubini@prosa.it>, Ian Stirling <ian@opus131.com>, Brian H. Toby. Izdajo 2.4.1 tega spisa je decembra 1998 v slovenščino prevedel Andrej Grauf, to izdajo pa avgusta 2002 Primož Peterlin. </article>