Következő Előző 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, modutils-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 modutils-x.y.z.tar.gz' paranccsal, menj be a könyvtárba, amit létrehoz (modutils-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éldameghajtó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éldában a 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 
A `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. Az `rmmod drv_hello' távolítja el a modult. Figyeljük meg, hogy az rmmod egy modulnevet vár, nem egy fájlnevet. Az előbbit az lsmod listájából lehet megtudni. A többi modul segédprogram is dokumentálva van a kézikönyvoldalakon.

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 hajlékony lemez, 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.


Következő Előző Tartalom