Portál AbcLinuxu, 26. dubna 2024 03:12

Vypalování CD - II

11. 2. 2003 | Juraj Remenec
Články - Vypalování CD - II  

Nastavení systému: kompilace jádra, používání SCSI emulace.

V dnešnej časti seriálu, sa budeme venovať "spojazdneniu" generic napalovačiek.

Pojmom generic sú zväčša pomenované zariadenia a ovládače, ktoré dokážu medzi sebou navzájom komunikovať, vďaka tomu, že dodržiavajú, alebo podporujú určite štandarty (normy). Týmto štandartom môžu byť napríklad AT príkazy, ktoré využívaju ku komunikácii s počítačom modemy a v prípade napalovačiek sú to SCSI príkazy. Pre používateľov operačného systému Linux, vlastniacích "napalovačku", to znamená asi toľko, že nemusia vlastniť ku svojmu typu napalovačky nejaký konkrétny ovládač od výrobcu, daného modela, ale stačí si na svojom systéme nakonfigurovať tzv. "emuláciu", ktorá bude zabezpečovať komunikáciu medzi počítačom a daným zariadením. V nasledujúcich krokoch si teda povieme niečo o konfigurácii "SCSI emulácie", ktorá je v súčastnosti najpoužívanejšou a najbezpečnejšou metódou, spojazdnenia väčšiny typov napalovačiek na operačnom systéme Linux.

Prvým krokom úspešného nakonfigurovania napalovačky na systéme je mať správne nadstavené a skompilované jadro. Distribúcie typu RedHat, Mandrake, SuSe a niektoré ďalšie už majú jadro prednastavené tak, aby ho bolo možne používať na takmer všetkých typoch hardwéru, takže ho nie je treba kompilovať. Ak je toto váš prípad, preskočte nasledujúci bod.

1. Príprava jadra - kompilácia

Úlohou tohto bodu bude "nahovoriť" vašej napalovačke a systému, aby začala používať SCSI emuláciu a to tak, že sa samotná napalovačka stane akýmsi SCSI zariadením. Z uvedeného je už hádam jasné, že uvedený spôsob bude platiť najmä pre napalovačky, ktoré sú pripojené na IDE zbernicu vašeho počítača. Pokiaľ vlastníte napalovačku využívajúcu SCSI zbernicu, taktiež je potrebne vykonať tento krok.

Jadrá rady 2.4.x majú zabudovanú plnú podporu SCSI emulácie, takže doporučujem použiť nejakú z týchto verzíi. Pokiaľ nechcete využívať SCSI emulácie, tak nová metóda pálenia, cez ATAPI t.j. za použitia ovládača ide-cd je k dispozícii už aj v (sučastnosti vývojových) jadrách rady 2.5.x. Len stručne pripomeniem, že zdrojové kódy jadra, potrebné na kompiláciu, môžte stiahnúť z adresy www.kernel.org, alebo aj z domácej siete napríklad na "zrkadielku" na www.linux.cz.

Pred konfigurovaním jadra si treba uvedomiť, že ovládače je možné zakompilovať buď priamo do jadra, alebo ako modul. V prípade, že sa rozhodnete pre kompiláciu priamo do jadra, docielite toho, že sa vám zariadenie už od začiatku spustenia systému bude chovať ako SCSI zariadenie. V prípade, že sa rozhodnete pre kompiláciu ovládačov ako modulov, môžte vlastnosti napalovačky meniť podľa možností aj za behu systému. Posledný spôsob je výhodnejší hlavne pre užívateľov, ktorý majú v DVD-ROM zabudovanú aj možnosť napalovania. SCSI emulácia totiž kladie na zariadenie aj určité obmedzenia. Napríklad na takto emulovanej napalovačke sa stáva, že pri prehrávani DVD cédečka (ktoré je v nej zasunuté) nestačí emulácia na prenos niekedy vysokého objemu dát medzi počítačom a týmto zariadením. Kedže sa pri emulácii zariadenia na SCSI nedá použiť ani funkcia DMA, ostáva len možnosť spraviť z SCSI napalovačky opäť obyčajnu IDE CD-ROMku. Tento problém rieší práve metóda pálenia cez ATAPI. O tom ale neskôr.

Poďme sa najprv baviť o tom, ako "rozbehať" aspoň SCSI emuláciu. V jadre nás bude zaujímať sekcia SCSI support, ktorú zakompilujeme priamo do jadra, alebo ako modul.(voľba "y/m") a pod touto sekciou zakompilujeme do jadra ako modul položku SCSI CD-ROM support - pre schopnosť používať napalovačku naďalej aj ako CD-ROM, teda na čítanie (voľba "m") a položku SCSI generic support - kde skompilujeme podporu generic zariadení tiež buď ako modul, alebo priamo do jadra (voľba "y/m"). Ďalšiu zmenu v jadre uskutočníme v sekcii IDE, ATA and ATAPI block. Aby sme mali konfiguráciu jadra kompletnú a nevracali sa stále ku jeho kompilovaniu - doporučujem, aby ste si ďalej aj v sekcii Block devices skompilovali ako modul položku Loopback devices (voľba "m"). Význam tejto poslednej položky si ale vysvetlíme až v ďalšej časti seriálu, lebo v tejto nie je nijak podstatný.

Konfigurácia jadra - SCSI emulácia
Položka v JADRE Voľba kompilácie
SCSI support Y/M
   SCSI CD-ROM support M
   SCSI generic support Y/M
IDE,ATA and ATAPI block devices
   SCSI emulation support Y/M
Block devices
   Loopback device M

A môžme začat kompilovať.

Aj napriek stále postupujúcej dobe sa napalovanie cez ATAPI moc nevyužíva. Je to preto, lebo v minulosti bola ATA moc pomala na vypalovanie a pouzivalo sa SCSI (v minulosti boli len SCSI vypalovacky). Hoci dnes uz toto tvrdenie neplati, pouziva sa stale SCSI emulacia kvoli spetnej kompaktibilite. Aby sme však poslanie tohto článku naplnili - povieme si niečo aj o konfigurácii jadra pre ATAPI napalovanie. Upozorňujem však, že v ďalších častiach seriálu už tento spósob rozoberať nebudeme. Takže je na vás, aby ste sa rozhodli pre jeden z uvedených metód, ktorý budete používať.

Základom je, aby ste mali jadro rady 2.5.x, ktoré už túto podporu poskytuje. Zaujímať nás bude sekcia IDE, ATA and ATAPI block devices a v nej položky IDE/ATAPI CD-ROM, ktorú zakompilujeme ako modul (voľba "m") a položku SCSI emulation support, ktorú zakompilujeme takisto ako modul (voľba "m"). Podporu SCSI support môžme zakompilovať buď priamo do jadra, alebo ako modul (voľba "y/m"). Ak sa rozhodneme pre druhú možnosť, tak volanie tohto modulu musíme samozrejme nariadiť v súbore /etc/modules.conf. V tejto sekcií nás bude ešte zaujímať položka SCSI generic support, ktorú takisto môžme zakompilovať buď priamo do jadra, alebo ako modul. Samozrejmosťou ostáva voľba "m" na Loopback devices (viď. SCSI emulácia).

Konfigurácia jadra - ATAPI
Položka v JADRE Voľba kompilácie
SCSI support Y
   SCSI generic support Y/M
IDE,ATA and ATAPI block devices
   IDE/ATAPI CD-ROM M
   SCSI emulation support M
Block devices
   Loopback device M

Ďalšou metódou je napalovanie na externých napalovačkách pripojených cez paralélný port. Osobne nemám žiadne skúsenosti s touto metódou. Myslím si však, že to nebude nič svetoborné, nakoľko prenos dát cez paralélny port je riadený, alebo uskutočnovaný cez CPU a takto to "zožiera" väčšiu časť jeho výkonu.

Konfigurácia jadra je však úplne odlišná než v predchádzajúcich prípadoch. V sekcii Block devices nájdeme položku Parallel port IDE device support, kde môžme použiť voľbu M. Po určení tejto voľby sa roztvoria ďalšie voliteľné položky z ktorých ako modul zakompulijeme Parallel port ATAPI CD-ROMs, Parallel port generic ATAPI a samozrejme ako modul ostáva aj Loopback device.

Konfigurácia jadra - PP
Položka v JADRE Voľba kompilácie
Block devices
   Loopback device M
   Parallel port IDE device M
   Parallel port ATAPI CD-ROMs M
   Parallel port generic ATAPI M

Tento spôsob pálenia už taktiež nebudem viac rozoberať nakoľko nie je príliš používany. Ak o ňom chcete vedieť viac - prečítajte si súbor uložený na vašom lokálnom disku /usr/src/linux/Documentation/paride.txt. Pokiaľ vlastníte nejaký podobný hybrid napalovačky ako napríklad USB napalovačka, alebo napalovačka využívajúca IEEE 1394 apod., tak asi najlepším zdrojom informácii bude ako vždy internet.

2. Konfigurácia zavádzača - predanie parametrov jadru

Ďalšou dôležitou zmenou budú úpravy parametrov jadra pri bootovani. Tie docielime v konfiguračnom súbore /etc/lilo.conf, pokiaľ používate LILO ako zavádzač systému. Pokiaľ je to GRUB cesta bude /etc/grub.conf a syntax by mala byť rovnaká ako v LILE. V konfiguračnom súbore LILA sú tzv. sekcie jadier. Pokiaľ ich tám máte viac (záleži na tom, či si kompilujete jadro, alebo používate len jadro z distribúcie) musíte si nasledujúci parameter pridať do toho, ktoré aktuálne používate. Nič vám však nebráni ho pridať do všetkých ;-)). Do sekcie treba pridať append="hdX=ide-scsi", kde za X je dosadené zariadenie (označenie zbernice), na ktorom máte svoju napalovačku. Nasledujúci výpis je z môjho konfiguračného súboru lila. Vôbec sa nemusí zhodovať s tým vaším, slúží len ako príklad konfigurácie. Napalovačku mam na zbernici hdc a používam svoje vlastne skompilované jadro s názvom new_linux.

prompt
timeout=50
default=new_linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear

image=/boot/vmlinuz-2.4.20
   label=new_linux
   read-only
   append="hdc=ide-scsi"

Ešte treba hádam povedať, že keď zmenu vykonáte, treba súbor samozrejme uložiť a znova vytvoriť zavádzač príkazom lilo. Ak ste jeden z užívateľov, ktorý jadro nekompilujú, ale používaju priamo z distribúcie, presvečte sa, či už náhodou zmienený riadok v konfiguračnom súbore nejestvuje. Ak áno, tak samozrejme preskočte aj aktuálny bod.

3. Už nám to beží

Po vykonaní príslušných bodov sa konečne dostávame k záveru dnešného seriálu. Aby sme toho, ale ešte nemali málo, môžme si na záver povedať, ako zistíme, či o našej napalovačke už systém vie. Základom je, aby ste mali v systéme nainštalovaný program cdrecord, ktorý si buď stiahnete z domovskej stránky autora. Na tejto stránke môžte objaviť aj zoznam podporujúcich zariadení. Ak tam však to svoje - neobjavíte nemusí automaticky platiť, že to vaše nebude fungovať.

Po reštarte počítača a nabótovani nášho, či už skompilovaného, alebo jadra štandartne dodávaného v distribúcii, nám ostáva na výber, ako danú napalovačku spojazdniť. Pokiaľ patríte medzi užívateľov, ktorý doteraz preskakovali dané body a teda nekompilujete si svoje jadro a používate jednu z ditribúcii uvedených vyššie, môžte prítomnosť svojej napalovačky vyskúšať príkazom cdrecord -scanbus.

Ak je vaše jadro naozaj funkčné, vypíše sa Vám zoznam všetkých dostupných a rozpoznaných SCSI zariadení, ktoré maju čo spoločné s vypalovaním. Toto platí aj pre napríklad externé, paralélne napalovačky. Výstup môže vyzerať aj takto:

[root@gandalf dino]# cdrecord -scanbus
Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jrg Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.5'
scsibus0:
    0,0,0   0) 'TOSHIBA ' 'DVD-ROM SD-R1202' '1026' Removable CD-ROM
    0,1,0   1) *
    0,2,0   2) *
    0,3,0   3) *
    0,4,0   4) *
    0,5,0   5) *
    0,6,0   6) *
    0,7,0   7) *

Ako ste si iste všimli, v mojom systéme bolo rozpoznané jedno zapisovacie zariadenie značky TOSHIBA. Význam čísel pred nájdeným zariadením (0,0,0) si vysvetlíme nabudúce.

Pokiaľ máte v systéme už viac fungujúcich SCSI zariadení, cdrecord ich vypíše v poradí v akom boli inicializované, alebo nakonfigurované. Dokazuje to aj otrepaný príklad od Jörga Schillinga (autora programu cdrecord):

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) *

Uvedená ukážka zobrazuje napríklad aj disky, ktoré nie su súčasťou napalovacieho zariadenia.

Používatelia, ktorý prešli s nami všetkými bodmi si musia uvedomiť ako dali SCSI emuláciu skompilovať. Či ako modul, alebo na pevno do jadra. Pokiaľ na pevno do jadra môžme sa o nájdení napalovacieho zariadenia presvedčiť (okrem uvedeného prikazu) aj "nakuknutím" do výpisu jadra.

scsi0 : SCSI host adapter emulation for IDE ATAPI devices
   Vendor: TOSHIBA Model: DVD-ROM SD-R1202 Rev: 1026
    Type: CD-ROM       ANSI SCSI revision: 02

Pokiaľ ste si dali emuláciu zakomilovať ako modul, tak jej spustenie zabezpečíte príkazom modprobe ide-scsi, po zadaní tohto príkazu vám na obrazovku vyroluje podobný výpis o nájdenom zariadení a potom sa môžte opäť presvedčiť, že zariadenie bolo rozpoznané príkazom cdrecord -scanbus. Pokiaľ teda používate moduly, môžte upraviť svoj konfiguračný súbor /etc/modules.conf tak, aby ich volal automaticky.

options ide-cd ignore=hdc>
# poviete modulu ide-cd, aby ignoroval zbernicu,
# na ktorej máte napalovačku
alias scd0 sr_mod
# nahrať modul sr_mod pri pokuse o pristup k scd0
pre-install sg modprobe ide-scsi
# nahrať ide-scsi pred sg
pre-install sr_mod modprobe ide-scsi
# nahrať ide-scsi pred sr_mod
pre-install ide-scsi modprobe ide-cd
# nahrať ide-cd pred ide-scsi

Dúfam, že som v tejto časti seriálu spomenul všetko, na čo sa spomenúť dalo, a nespomenul som to, čo by tu bolo zbytočné. V budúcej časti seriálu si povieme niečo o napalovacích programoch, ich konfiguračných súboroch a celkovo o filozofii napalovania CD, pod Linuxom.

Související články

Vypalování CD - I (Úvod, teorie, hardware)
Vypalování CD - III (mkisofs, cdrecord, cdrdao)
Vypalování CD - IV (Multisession a Packet Writing)
Vypalování CD - V (Grafické nástavby)
Vypalování CD - VI (FAQ)

Odkazy a zdroje

CDRecord Homepage
The Linux Kernel HOWTO

Seriál Vypalování CD (dílů: 6)

První díl: Vypalování CD - I, poslední díl: Vypalování CD - VI.
Předchozí díl: Vypalování CD - I
Následující díl: Vypalování CD - III

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.