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.
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 1A `
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.
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.