Vissza Előre Tartalom

9. Modulok

A betölthetõ kernel modulok memóriát takaríthatnak meg és megkönnyíthetik a konfigurálást. A modulok köre egyre bõvül, magában foglal többek között fájlrendszereket, ethernet-kártya meghajtókat, szalagos egység és nyomtató meghajtókat.

9.1 A segédprogramok telepítése

A modulok használatához szükséges segédprogramokat ugyanonnan lehet megszerezni, ahonnan a kernel forrást is, modules-x.y.z.tar.gz néven. Válaszd a legnagyobb x.y.z verziószámot, ami még kisebb-egyenlõ a kerneled verziószámánál. Csomagold ki a `tar zxvf modules-x.y.z.tar.gz' paranccsal, menj be a könyvtárba, amit létrehoz (modules-x.y.z), nézd át a README fájlt és hajtsd végre az installálási utasításokat (ami általában elég egyszerû, például make install). Ezután kell hogy legyenek insmod, rmmod, ksyms, lsmod, genksyms, modprobe és depmod nevû programok az /sbin könyvtárban. Ha akarod, kipróbálhatod õket az insmod-ban található ``hw'' példa-meghajtóval. Ebben az alkönyvtárban, az INSTALL fájlban olvashatóak a részletek.

Az insmod beilleszt egy modult a futó kernelbe. A moduloknak általában .o kiterjesztésük van. A fent említett példa-meghajtó neve drv_hello.o, ezt a `insmod drv_hello.o' paranccsal lehet beilleszteni. Az lsmod kilistázza az éppen használt modulokat. Az output így néz ki:

    blah# lsmod
    Module:        #pages:  Used by:
    drv_hello          1
`drv_hello' a modul neve, egy lap (``page'', 4k) memóriát használ és egyetlen másik kernel modul sem támaszkodik rá pillanatnyilag. A `rmmod drv_hello' távolítja el a modult. Figyeljük meg, hogy az rmmod egy modul nevet vár, nem egy fájlnevet. Az elõbbit az lsmodlistájából lehet megtudni. A többi modul segédprogram is dokumentálva van a manual oldalakon.

9.2 Kernellel terjesztett modulok

A 2.0.30 verziótól kezdve majdnem minden elérhetõ modul formában is. Használatuk a következõ: ne konfiguráld bele a kernelbe, azaz ne mondj rá y-t a `make config' alatt. Fordíts egy új kernelt és bootolj vele újra. Menj be megint az /usr/src/linux-ba és add ki a `make modules' parancsot. Ez lefordítja az összes olyan modult, amely nem szerepelt a kernel konfigurációban és linkeket helyez el rájuk az /usr/src/linux/modules könyvtárban. Lehet õket közvetlenül innen is használni, vagy kiadhatod a `make modules_install' parancsot, ami elhelyezi õket a /lib/modules/x.y.z könyvtárban, ahol x.y.z a kernel verziója.

Ez különösen a fájlrendszerek esetén lehet kényelmes. Bizonyos fájlrendszereket általában ritkán használnak. Például ha a kezembe kerülne egy msdos floppy, akkor annyit tennék, hogy insmod /usr/src/linux/modules/msdos.o, aztán rmmod msdos ha végeztem. Ez az eljárás kb. 50k memóriát szabadít fel a szokásos mûködés közben. Egy megjegyzést kell tenni a minix fájlrendszerrel kapcsolatban: a ``mentõlemeznek'' készített kernelbe mindig közvetlenül bele kell fordítani.


Vissza Előre Tartalom