Következő Előző Tartalom

2. A Linux rendszer beállítása CD-íráshoz

Ez a fejezet a CD-írók minden fajtájára vonatkozik, tehát SCSI-ra, IDE/ATAPI-ra és párhuzamos portra köthetőre egyaránt. Az utóbbi két típus egy olyan speciális meghajtóprogramot (compatibility driver) igényel, amely segítségével igazi SCSI eszköznek látszik. Egyfelől hasznos ez az egységesítési stratégia (``minden SCSI''), mert az alkalmazások szintjén megoszthatod a tudásod a többi felhasználóval, függetlenül attól, hogy nekik milyen CD-írójuk van. Másfelől viszont újra kell konfigurálnod például az audio CD-lejátszót vagy a mount segédprogramot, hiszen a meghajtók neve megváltozik. Például ha eddig /dev/hdc néven érted el az ATAPI CD-íródat, akkor a SCSI compatibility driver telepítése után /dev/scd0 néven kell rá hivatkoznod.

Miután sikeresen telepítetted a hardvert és a Linux rendszer többi részét, a `cdrecord -scanbus' parancs megmutatja a SCSI buszra csatlakozó eszközöket. A fejezet célja, hogy segítsen úgy beállítani a Linuxot, hogy a végén valami ilyesmit kapj:

shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
          0) 'Quantum ' 'XP34300         ' 'F76D' Disk
          1) 'SEAGATE ' 'ST11200N        ' '8334' Disk
          2) *
          3) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
          4) 'WANGTEK ' '5150ES SCSI 36  ' 'ESB6' Removable Tape
          5) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
          6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
          7) *
scsibus1:
        100) 'Quantum ' 'XP31070W        ' 'L912' Disk
        101) *
        102) *
        103) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
        104) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
        105) *
        106) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
        107) *
2.1. lista: a SCSI buszra csatlakozó eszközök vizsgálata

A példa Jörg Schillingtől származik, és összesen négy CD-írót mutat. Megjegyzendő, hogy a -scanbus a többi eszközt is megjeleníti, pl. közönséges CD-ROM-okat vagy merevlemezeket. Az utolsó oszlop megadja az eszköz SCSI leírását, amiből nem lehet egyértelműen eldönteni, hogy CD-íróról, vagy közönséges CD-ROM-ról van-e szó. Szerencsére a középső oszlopbeli termékazonosító sokszor segít; CD-íróra utal az `R', a `-R' és a `-RW'.

2.1 A Linux kernel beállítása

A Linux kernel sokféle meghajtóprogrammal felszerelhető. A meghajtóprogramokat belefordíthatjuk a kernelbe statikusan, vagy lefordíthatjuk őket modulként is. A modulokat csak akkor kell betölteni, ha szükség van rájuk. Ez az utóbbi módszer ajánlható akkor, ha olyan meghajtóprogramokról van szó, amelyek nem létfontosságúak a rendszer talpraállásához, ugyanis így kisebb és gyorsabb kernelt kapunk. Vigyázat, néhány meghajtóprogram létfontosságú a rendszer számára az induláskor, ezeket nem szabad modulba fordítani. Például tegyük fel, hogy a rendszer egy IDE merevlemezen foglal helyet. Ekkor az IDE meghajtóprogramnak a kernelben kell lenni, nem modulban.

Három fajtája van a CD-íróknak: SCSI, IDE/ATAPI és külső egységek, amelyek a párhuzamos porton keresztül működnek. Az alábbi táblázat bemutatja, hogy kell konfigurálni a Linux kernelt ezekhez a hardverekhez. A táblázat első oszlopa a kernel konfigurációs menüjének azt pontját jelöli, ahol a beállítás elvégezhető. A második oszlop a kernel konfigurációs menüjéből vett leírása az adott beállításnak. A harmadik oszlopban szerepel a kapott modul neve. A SCSI, IDE és PP oszlopok tartalmazzák a szükséges beállításokat az adott hardverhez (PP = párhuzamos port).

Menü   Leírás                      Modul    SCSI  IDE   PP
------------------------------------------------------------
BLOCK  Enhanced IDE/MFM/RLL...                     Y      
BLOCK  IDE/ATAPI CDROM             ide-cd          M     
BLOCK  SCSI hostadaptor emulation  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    Y     Y
FS     Microsoft Joliet cdrom...   joliet    M/Y  M/Y   M/Y
2.1. táblázat: meghajtók kiválasztása a különböző írótípusokhoz

Az Y azt jelenti, hogy igen, és hogy ezt be kell rakni a kernelbe. Az M jelentése modul, azaz ezt modulba kell fordítani. Az Y/M esetén lehet választani a kettő közül. (A sorrend jelzi, hogy melyikkel lehet kevesebb probléma.) Ha valahova nincs semmi odaírva, akkor az azt jelenti, hogy ott nem kell megváltoztatni a kernel beállítását. Ha nem piszkálod ezeket az üresen hagyott a beállításokat, akkor jó esélyed van arra, hogy a kernel továbbra is működni fog (amennyiben eddig működött). Különösen olyan környezetben van értelme minél több dolgot modulba fordítani, ahol IDE és SCSI eszközök vegyesen vannak.

A loopback eszköz lefordítása nem kötelező. Ennek segítségével tesztelheted az image fájlt felírás előtt. Ha szeretnéd a CD-ROM-okat elolvasni, akkor szükség van az ISO-9660 fájlrendszer támogatására. Ez a meghajtóprogram magában foglalja a RockRidge kiterjesztés támogatását is. A Microsoft Joliet kiterjesztést explicite hozzá kell adni az ISO-9660 fájlrendszerhez. Minden esetben szükség lesz alacsonyszintű hardvermeghajtókra. Az alacsonyszintű azt jelenti, hogy ezek a meghajtóprogramok közvetlenül a hardverrel lépnek kapcsolatba. Rengeteg alacsonyszintű meghajtóprogram van a SCSI-hoz és a párhuzamos porthoz.

Ha szeretnéd a modulokat betölteni, akkor sorold fel őket az /etc/modules konfigurációs fájlban, vagy futtasd a kerneld vagy a kmod démonokat, amelyek automatikusan betöltik a modulokat, ha a kernelnek szüksége van rájuk. A modulokkal kapcsolatos dolgok megkönnyítésére hozzáadhatod a következő sorokat az /etc/conf.modules fájlhoz:

alias   scd0 sr_mod                  # betölti az sr_mod modult ha az scd0 eszközhöz kell fordulni
alias   scsi_hostadaptor ide-scsi    # SCSI kártya emuláció
options ide-cd ignore=hdb            # ha a /dev/hdb a CD-író
2.2. lista: néhány beállítás IDE/ATAPI írókhoz

Az alias-ok ugyanarra a modulra más nevet vezetnek be, nem létszükséglet használni őket. Az options segítségével állíthatod be, hogy a modul betöltése mindig ugyanúgy történjen, például miután sikeresen használtad az modprobe/insmod programokkal. Ha többet szeretnél megtudni a különböző modulok különböző beállításairól, akkor olvass tovább!

Leírás                                  parancs
-------------------------------------------------------------
Megmutatja az aktív meghajtókat         cat /proc/devices
Kilistázza az aktív modulokat           cat /proc/modules
Kilistázza az elérhető modulokat        modprobe -l
Eltávolít egy modult                    modprobe -r
Betölt egy modult manuálisan            modprobe
Betölt egy modult rendszerindításkor    echo "nézd meg az /etc/modules fájlt"
                                        (olvasd el a disztribúciód dokumentációját)
Betölt egy modult, amikor szükséges     echo "futtasd a kmod vagy a kerneld démont"
2.2. táblázat: kernelmodulokkal és meghajtóprogramokkal foglalkozó parancsok

Ha egy olyan modulra van szükséged, amely nem található meg a rendszeredben, akkor újra kell fordítanod, és újra kell telepítened a kernelt. További információkért olvasd el a Kernel HOGYAN-t. A kernelmodulokról szóló legfrissebb információk a Modules HOWTO-ban olvashatóak. Ha sikeresen megtaláltad vagy lefordítottad a szükséges modulokat, akkor vagy írd be a nevüket az /etc/modules fájlba, vagy hagyd, hogy automatikusan betöltse őket egy megfelelő program (kmod, kerneld). Ha nem vagy biztos a dologban, olvasd el a disztribúciódhoz adott dokumentációt.

Ha a magad ura vagy, akkor telepítsd a ``Linux Kernel source'' csomagot, amelyet a disztribúciódhoz adtak, és add ki a következő parancsokat:

cd /usr/src/linux
make menuconfig  # kövesd a menüket és az utasításokat
make dep
make zImage      # vagy "make bzImage"
# helyezz be egy lemezt a meghajtóba
dd if=arch/i386/boot/zImage of=/dev/fd0
make modules
make modules_install
2.3. lista: rendszerindító hajlékony lemez készítése

A fenti parancsokkal egy rendszerindító hajlékony lemez készíthető. Ha tényleg fogalmad sincs, hogy ez az egész miről szól, akkor jobban teszed, ha előbb elolvasod a Kernel HOGYAN-t vagy valami hasonló írást, vagy segítséget kérsz egy barátodtól, mielőtt teljesen tönkreteszed a rendszered. Ne feledd, a kernel a rendszer szíve.

Különleges beállítások a kernel 2.2.9-es verziójáig

ATAPI CD-író tulajdonosok figyelem: ha a kernel ATAPI eszközként ismeri fel az írót a rendszerinduláskor, akkor nem lehet Linux alatt CD-íróként használni. Ha egyszer az IDE/ATAPI meghajtóprogram elkapta az eszközt, a SCSI meghajtóprogram (a SCSI-kártya emulációra ültetve) már nem tudja ezt megtenni. Fordítsd újra a kernelt úgy, hogy a CD-ROM-mal kapcsolatos dolgokat modulba rakod (lásd a fenti táblázat).

A 2.2 és e feletti kernelverzióknál beállíthatod az ide-cd meghajtóprogram mohóságát az ``ignore='' paraméterrel. Ha ezt beállítod, akkor a meghajtóprogram nem fogja megragadni a megadott eszközt, úgyhogy az rendelkezésre fog állni, amikor a SCSI-kártya emuláció elindul. Például használd a `modprobe ide-cd ignore=hdb' parancsot, ha az ATAPI író a hdb, és azt szeretnéd, hogy az ide-scsi meghajtóprogram SCSI eszközként kezelje a hdb-t (általában sr0 lesz). Ezt nem lehet sehogy megadni a kernel parancssorában (mint a 2.0 sorozatnál).

A kernel 2.2.9-es verziójáig ne engedélyezd a CONFIG_SCSI_MULTI_LUN (``probe for multiple luns'') opciót és az ide-scsi támogatást egyszerre, mert egy hiba az ide-scsi meghajtóprogramban ezt nem teszi lehetővé.

Néhány felhasználó ütközéseket tapasztalt egyes előre lefordított binárisok és a 2.2 sorozat között. A problémát a Linux kernel okozza. A lehetséges megoldások:

Különleges beállítások a kernel 2.2.10-es és újabb verzióihoz

Úgy hallottam, hogy a 2.2.10 és e feletti kernelekben használhatjuk a 2.0.x sorozatban megismert lehetőséget éppúgy, mint a korábbi 2.2.x verziókban meglevő lehetőséget. Én azt a stratégiát javaslom, hogy mondd meg egyértelműen a kernelnek, hogy melyik eszközhöz melyik meghajtóprogram való, úgy ahogy a 2.0.37-es verziónál tehetnéd. A következő fejezet megvilágítja ezt a módszert.

Különleges beállítások a 2.0.x sorozatú kernelekhez

A 2.0.31 előtti kernelekben számos hiba van, és nem tudják elolvasni a CD-ROM-ról az utolsó fájlt. Frissíts 2.0.37-re vagy újabbra. Ebben a verzióban az eddig ``SCSI emulation''-nak nevezett sajátosságot átnevezték a precízebben megfogalmazott ``SCSI host adaptor emulation''-ra.

A 2.0.37 és e feletti kernelverziókban kiválaszthatod, hogy melyik meghajtóprogramot (IDE vagy SCSI) szeretnéd használni az adott ATAPI eszközhöz. Pontosabban hozzáadhatod a ``SCSI host adaptor emulation'' sajátosságot a kernelhez, és az adott eszközhöz a kernel parancssorában aktivizálhatod az emulációt rendszerindításkor. Például ha a CD-író a /dev/hdb, akkor add hozzá hdb=ide-scsi kifejezést a parancssorhoz. A következő listákban olvasható, hogy hogyan kell módosítani a LILO és a chos bootmanagerek konfigurációs fájljait, hogy állandóvá tegyük ezeket a beállításokat.

image=/boot/zImage-2.0.37
  label=Linux
  read-only
  append="hdb=ide-scsi"
2.4. lista: a lilo egy lehetséges beállítása (/etc/lilo.conf)

linux "Linux 2.0.37" {
        image=/boot/zImage-2.0.37
        cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
2.5. lista: a chos egy lehetséges beállítása (/etc/chos.conf)

2.2 A hardver és az eszközfájlok

Miután telepítetted az összes szükséges meghajtóprogramot, indítsd újra a gépet az új kernellel. Ez minden olyan tulajdonsággal rendelkezni fog, amire a következő fejezetekben szükség lesz.

A devfs felhasználóinak nem kell törődniük az eszközfájlok manuális beállításával. Ha devfs-t használsz, minden meg fog jelenni automatikusan a megfelelő helyen.

Lépj be a /dev könyvtárba, és nézd meg, hogy megvannak-e a loopback eszközök. Nem súlyos hiba, ha nincsenek ott, de hasznos lehet, ha ott vannak (lásd 3.5. fejezet). Ha már ott vannak, akkor az ls parancs megmutatja őket:

shell> cd /dev
shell> ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
2.6. lista: a loopback eszközök

Ha nincsenek meg ezek az eszközfájlok, akkor hozd létre őket a /dev/MAKEDEV script segítségével:

shell> cd /dev/
shell> modprobe loop   # a "loop" nevű modul betöltése
shell> ./MAKEDEV loop
2.7. lista: a loopback eszközöket létrehozó parancsok

Az utolsó parancs csak akkor fog sikerülni, ha a loop modul a kernelben van. Amit eddig a loop eszközök kezeléséről olvastál, az a többi eszközre is érvényes (sg*, pg*, hd*, ...), ezért ezeket nem tárgyalom külön ebben a dokumentumban.

Ha a Linux diszribúciód nem tartalmazza a /dev/MAKEDEV scriptet, akkor kézzel kell létrehozni az eszközfájlokat egy ilyen ciklussal:

for i in 0 1 2 3 4 5 6 7
do
        mknod /dev/loop$i c 7 $i
done

IDE/ATAPI CD-írók

Az ATAPI az IDE eszközök számára készített kiterjesztés, amely minden újabb IDE eszközben megvan. Ez a kiterjesztés lehetővé teszi a SCSI protokoll használatát az IDE buszon. Az ide-scsi modullal együtt, amely az IDE-vezérlőt részben SCSI-vezérlővé alakítja, úgy használhatjuk az IDE/ATAPI eszközöket, mintha SCSI eszközök lennének. Töltsd be ezt a modult és folytasd a munkát, mintha SCSI CD-íród lenne.

SCSI CD-írók

Győződj meg róla, hogy az írót felismeri a számítógéped BIOS-a. Semmi értelme továbblépni, ha a számítógép nem fogadja el a hardvert. (Az a tény, hogy nem köpi ki, nem vehető elfogadásnak, a képernyőn egy üzenetnek kell megjelennie.)

Ha a SCSI eszközt a párhuzamos porton keresztül szeretnéd a gépedhez kötni (ne keverd össze a párhuzamos porton keresztül csatlakozó IDE eszközökkel), akkor egy különleges kábelre és egy különleges kernel-meghajtóprogramra van szükséged. Olvasd el a http://www.torque.net/parport/parscsi.html weblapot, ha többet szeretnél tudni erről.

Általános SCSI eszközök

A /dev/sd* és a /dev/sr* eszközfájlok, amelyek a SCSI merevlemezeknek és a SCSI CD-ROM meghajtóknak felelnek meg, csak blokkokban tudnak adatokat küldeni és fogadni. Emiatt nagyon gyorsak, és nagyon alkalmasak adattárolásra. A CD-író lézerének vezérlése bonyolultabb, és nem elégséges a blokkos író/olvasó megközelítés. Mivel az sd* és sr* eszközöket célszerű a tiszta és gyors állapotukban meghagyni, egy új típusú SCSI eszköz került bevezetésre, az úgynevezett általános SCSI eszköz. Bármit meg lehet csinálni a SCSI hardverrel az általános eszközökön keresztül, nincsenek rögzítve egy bizonyos célra, ezért hívják általánosnak őket.

Akárcsak a többi eszközt, ezt is a /dev könyvtárban kell keresni (konvenció szerint):

shell> cd /dev
shell> ls sg*
sg0  sg1  sg2  sg3  sg4  sg5  sg6  sg7

Ha nincsenek meg ezek az eszközfájlok, akkor hozd létre őket a /dev/MAKEDEV script segítségével:

shell> cd /dev/
shell> ./MAKEDEV sg

Ha a Linux diszribúciód nem tartalmazza a /dev/MAKEDEV scriptet, akkor kézzel kell létrehozni az eszközfájlokat egy ilyen ciklussal:

for i in 0 1 2 3 4 5 6 7
do
        mknod /dev/sg$i c 21 $i
done

Párhuzamos portos CD-írók

Fogalmam sincs, sajnálom. Olvasd el a http://www.torque.net/parport/paride.html weblapot, vagy a /usr/src/linux/Documentation/paride.txt fájlt.

2.3 CD-égetéshez való felhasználói programok

Egy részletesebb lista a CD-ROM készítéséhez használatos segédprogramokról megtekinthető a http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html weblapon.

Parancssori alkalmazások

A következő csomagok egyike szükséges a CD-R lemezre felírandó image fájl készítéséhez (csak adatokat tartalmazó CD-ROM-okhoz kell):

ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)
ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)

Az image fájl CD-re írásához a következő csomagok egyike kell:

ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)

http://www.ping.de/sites/daneb/cdrdao.html (cdrdao)

Ne higgy a (régi) mkisofs kézikönyvoldalának, amely azt állítja, hogy az 1.5-ös verziójú cdwrite programra van szükséged. Nyugodtan használd a cdrecord-ot. Jegyezd meg, hogy az újabb cdrecord verziók csomagjában egy továbbfejlesztett mkisofs van, és még sok más eszköz a misc/ alkönyvtárban (readcd, isosize), amelyek másutt nem találhatóak meg.

Grafikus felhasználói felületek (választható)

A keretprogram tényleg csak egy keret a Linux alatt. Ez azt jelenti, hogy külön kell telepíteni a parancssoros verziót is, de egy szebben kinéző módon férhetsz hozzá.

Az X-CD-Roast egy olyan programcsomag, amely céljául tűzte ki az egyszerű CD-írást Linux alatt. Parancssoros programokat, mint a cdrecord és az mkisofs, egyesít egy szép grafikus felhasználói felület alatt.

http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html

A BurnIT egy JAVA keretprogram a cdrecord, az mkisofs és a cdda2wav-0.95 programokhoz, így egy teljes CD-író csomagot képez a Unix platformon. Letölthető a

http://sunsite.auc.dk/BurnIT/

webhelyről.

Az XDaodio egy grafikus keretprogram a cdrdao-hoz. Fő célja az audio CD-k egy az egyben történő lemásolása.

http://www.lrz-muenchen.de/~MarkusTschan/


Következő Előző Tartalom