Provided by:
manpages-hu_20010119-4_all 
NÉV
insmod - betölthető kernel modult tölt be
ÁTTEKINTÉS
insmod [-fkmpqrsxXvyY] [-P prefix] [-o modul_név] objektum_fájl
[ symbol=value ... ]
LEÍRÁS
Insmod Betölt egy betölthető kernelmodult a futó kernelbe.
Az insmod parancs megpróbál hozzáfűzni egy modult a futó kernelhez úgy,
hogy feloldja annak minden szimbólumát a kernel exportált szimbólum-
táblázatából.
Ha az objektum fájl neve kiterjesztés nélkül adott, akkor az insmod
parancs alapértelmezett alkönyvtárakban fogja keresni a modult. A
MODPATH környezeti változó használható ennek felülbírálására. Ha egy
modul konfigurációs fájl (pl. /etc/modules.conf) létezik, akkor annak
tartalma fogja felülbírálni a MODPATH-ban definiált elérési utakat.
A MODULECONF környezeti változó is használható arra, hogy az
alapértelmezett /etc/modules.conf -tól (vagy /etc/conf.modules, ez
utóbbi használata nem javasolt) eltérő konfigurációs fájlt válasszunk.
Ez a környezeti változó az összes fenti definíciót felülbírálja.
OPCIÓK
-f Megpróbálja betölteni a modult akkor is, ha a futó kernel és a
modul kernelverziója nem egyezik meg.
-k Az automatikus törlés kapcsolót állítja be a modulban. Ezt a
kerneld(8) használja, hogy eltávolítsa az egy ideje nem használt
modulokat -- rendszerint egy perc eltelte után.
-m Egy betöltési térképet ír ki, megkönnyítve a modul hibakeresését
egy kernelpánik esetén.
-o module_name
Expliciten megnevezi a modult ahelyett, hogy az objektum fájl
nevéből származtatná.
-p Teszteli a modult, hogy sikeresen be lehetne-e tölteni. Ebbe
beleértendő az objektum megkeresése a modul-útvonalon, a
verziószám ellenőrzése és a szimbólumok feloldása.
-q Nem írja ki a feloldhatatlan szimbólumok listáját. Nem
panaszkodik verzióeltérésről. A problémát csak az insmod
visszatérési értéke jelzi.
-r Egyes felhasználók nem root azonosítóval fordítják a modulokat,
majd root-ként installálják azokat. Ezen művelet után a modulok
tulajdonosa egy nem root felhasználó lesz, még ha a modulokat
tartalmazó könyvtár root tulajdonú is. Ha ezt a nem root
azonosítót feltörik, a behatoló felülírhatja az általa
tulajdonolt létező modulokat, és ezt felhasználhatja root jog
szerzésére.
Alapértelmezés szerint a modutils programok visszautasítják
olyan modulok használatát, amelyeknek nem root a tulajdonosa. A
-r megadása ezt a hibát elnyomja, és megengedi a root-nak, hogy
nem root tulajdonosú modulokat töltsön be.
A -r használata komoly biztonsági probléma, és nem ajánlott.
-s A terminál helyett mindent a syslog(3)-ba ír.
-v Bőbeszédűbb lesz.
-X, -x Exportáld (-X), illetve ne exportáld a modul külső szimbólumait.
Alapértelmezés szerint a szimbólumokat exportálja. Ez az opció
csak akkor hatásos, ha maga a modul nem exportálja explicite a
saját szimbólumtábláját, így ez egy ritkábban használt opció.
-Y, -y Hozzáadja, illetve nem adja hozzá a ksymoops szimbólumokat a
ksyms-hez. Ezeket a szimbólomukat a ksymoops program használja,
jobb hibakeresést lehetővé téve, ha egy Oops történik a
modulban. Alapértelmezés szerint a ksymoops szimbólumok
definiálódnak. Ez az opció független a -X/-x opcióktól.
A ksymoops szimbólumok kb. 260 byte-al növelik a betöltött
modult. Használd inkább az alapértelmezést és a pontosabb Oops
hibakeresés lehetőségét, kivéve ha tényleg kevés a kernelmemória
és a ksyms-t próbálod a minimális méretére összehúzni.
-P prefix
Ez az opciót használható verzióval ellátott modulokhoz SMP vagy
bigmem kernelek mellé, mivel az ilyen modulok egy extra prefixet
tartalmaznak a szimbólumaik nevében. Ha a kernel szimbólum
verzióval volt fordítva, akkor az insmod automatikusan felderíti
ezt a prefixet a "get_module_symbol" definíciójából, ami minden
olyan kernelben létezik, amelyik modulokat támogat. Ha a
kernelben nincs modul verzió, de a modul szimbólum verzióval
volt fordítva, akkor a felhasználónak meg kell adnia a -P
opciót.
MODUL PARAMÉTEREK
Néhány modul elfogad betöltéskor paramétereket, melyekkel
testreszabható a működésük. Ezek a paraméterek gyakran I/O címek és IRQ
számok, amelyek gépról-gépre változnak, és nem lehet a hardverből
megállapítani.
A 2.0-ás sorozatú kernelekhez fordított moduloknál bármilyen egész vagy
karakteres mutató szimbólum kezelhető paraméterként és módosítható. A
2.1-es kernelektöl kezdve a paraméter szimbólumok expliciten meg vannak
jelölve. Továbbá típusinformációt is tartalmaznak az érték
ellenőrzéséhez betöltéskor.
Egész típus esetén minden érték lehet decimális, oktális vagy
hexadecimális, pl.: 17, 021 vagy 0x11. A tömbelemeket vesszővel
elválasztott sorozattal adhatjuk meg; egyes elemek kihagyhatók az érték
meg nem adásával.
A 2.0-ás sorozatú modulokban azok az értékek, amelyek nem számjeggyel
kezdődnek, karakterláncnak tekintendőek. 2.1-től kezdve a paraméter
típusa határozza meg azt, hogy az értéket karakterláncként értelmezze-
e. Ha az érték macskakörömmel (") kezdődik, akkor az érték a C nyelv
szerint lesz értelmezve, escape-szekvenciákkal, stb. Figyelembe kell
venni, hogy héj (shell prompt) értelmezi a macskakörmöt, ezért "meg
kell védeni".
KSYMOOPS TÁMOGATÁS
Modulok használata esetén a kernel Oops hibakeresésének megkönnyítésére
az insmod alapértelmezésként hozzáad néhány szimbólumot a ksyms-hez,
lásd a -Y opciót. Ezek a szimbólumok "__insmod_modulename_"-el
kezdődnek. A modulename szükséges ahhoz, hogy egyedileg azonosítsuk a
szimbólumokat, és lehetséges ugyanazt az objektumfájlt többször más
néven betölteni. A jelenleg definiált szimbólumok
__insmod_modulename_Oobjectfile_Mmtime_Vversion
Az objectfile a fájl neve, amelyből az objektum betöltődött. Ez
biztosítja, hogy a ksymoops egyeztetni tudja a kódot a megfelelő
objektummal. mtime annak a fájlnak az utolsó módosítás ideje
hexadecimális értékben, 0 ha a stat() hibát jelzett. version a kernel
verziója, amelyhez a modult fordították, -1 ha nem nincs verziószám. A
_O szimbólumnak ugyanaz a kezdőcíme, mint a modul fejlécének.
__insmod_modulename_Ssectionname_Llength
Ez a szimbólum a kiválasztott ELF szekciók elején jelenik meg, amelyek
jelenleg .text, .rodata, .data és .bss. Csak akkor jelenik meg, ha az
adott szekciónak nullánál nagyobb a mérete. sectionname az ELF szekció
neve, length a szekció hossza decimálisan. Ezek a szimbólumok segítik a
ksymoops-ot olyan szekciók feltérképezésében, ahol nincsenek
hozzáférhető szimbólumok.
A kernel Oops hibakeresés másik problémája, hogy a /proc/ksyms és a
/proc/modules tartalma változhat az Oops és a hiba logjának
feldolgozása között. Ennek áthidalására, ha létezik a /var/log/ksymoops
könyvtár, akkor insmod és rmmod automatikusan átmásolja a /proc/ksyms
és /proc/modules fáljokat a /var/log/ksymoops könyvtárba a
`date +%Y%m%d%H%M%S` prefix-szel. A rendszer adminisztrátor
megmondhatja a ksymoops-nak, hogy melyik "pillanatfelvételt" használja
amikor egy Oops-t debuggol. Nincs olyan opció, ami letiltaná ezt az
automatikus átmásolást, ha nem akarjuk, hogy megtörténjen, akkor ne
hozzuk létre a /var/log/ksymoops könyvtárat. Ha a könyvtár létezik,
akkor a tulajdonosa root, és a joga 644 vagy 600 kell hogy legyen, és
az alábbi script naponta futtatandó. A script insmod_clean_ksymoops
néven található meg.
#!/bin/sh
# Törli a 2 napnál régebbi ksyms és modules mentéseket.
if [ -d /var/log/ksymoops ]
then
set -e
# Biztosítjuk, hogy mindig van legalább egy verzió
d=`date +%Y%m%d%H%M%S`
cp -a /proc/ksyms /var/log/ksymoops/${d}.ksyms
cp -a /proc/modules /var/log/ksymoops/${d}.modules
find /var/log/ksymoops -type f -atime +2 -exec rm {} \;
fi
LÁSD MÉG
rmmod(8), modprobe(8), depmod(8), lsmod(8), ksyms(8), modules(2),
genksyms(8), kerneld(8), ksymoops(kernel).
TÖRTÉNELEM
A modul támogatást először Anonymous készítette el.
A kezdeti Linux változat: Bas Laarhoven <bas@vimec.nl>
A 0.99.14-es verzió: Jon Tombs <jon@gtex02.us.es>
Kibővítette: Bjorn Ekwall <bj0rn@blox.se>
Az eredeti ELF támogatás: Eric Youngdale <eric@aib.com>
Újraírta a 2.1.17-es kernelhez Richard Henderson <rth@tamu.edu>
Bővítés a modutils-2.2.*-hez: Bjorn Ekwall <bj0rn@blox.se>, 1999
márciusa
Ksymoops támogatás: Keith Owens <kaos@ocs.com.au>, 1999 májusa
MAGYAR FORDÍTÁS
Böszörményi Zoltán <zboszor@mail.externet.hu>
Narancs v1 <narancs1@externet.hu>