Cikkek

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:

  • A probléma megszűnhet, ha újrafordítod a cdrecord-ot, így az alkalmazkodik a linux/include/scsi/sg.h-ban levő értékekhez. Ezek az értékek meg kell hogy egyezzenek az aktuálisan futó kernel értékeivel, mivel az sg felhasználói felülete egyszerű.
  • Esetleg okozhatja egy betölthető sg meghajtóprogram, amely nem tud a DMA-hoz szükséges mennyiségű memóriát lefoglalni (2.2.5 és ez alatti kernelverziók).

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 Hardver eszközök és listák

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


Egyedi ajánlat feliratkozás

Iratkozzon fel itt, és a jövőben elküldjük kiemelt akciós ajánlatainkat. Ne maradjon le!


FACEBOOK

Kövessen minket a világ legnagyobb közösségi portálján! Legyen az ismerősünk!

CIKKEK

Szekciónkban az adattárólással foglalkozó információs tárunkat ismerheti meg.

TWITTER

Ismerje meg cégünk mindennapjait, látogassa folyamatosan mikroblog oldalunkat.
 

Hívjon minket!
+36 1 296 2489
+36 70 3644-066
Írjon nekünk!
info(kukac)adathordozok.hu
cd gyártás dvd gyártás cd sokszorosítás dvd sokszorosítás dvd nyomtatás cd nyomtatás digipack dvd készítés cd készítés Sitemap dvd másolás digipak
dvd lemezek plasztik kártya készítés