Skip to main content

Minden a Linux / Unix parancsról: insmod

How to use lsmod, insmod, and rmmod commands in Linux (Június 2026)

How to use lsmod, insmod, and rmmod commands in Linux (Június 2026)
Anonim

A Linux / Unix parancs insmod egy futó modulot telepít a futó rendszermagban.insmod megpróbálja összekapcsolni egy modult a futó rendszermaggal az összes szimbólum törlésével a kernel exportált szimbólumtáblájából.

Ha a modul fájlnevét könyvtárak vagy kiterjesztés nélkül adják meg,insmod megkeresi a modult néhány gyakori alapkönyvtárban. A környezeti változóMODPATH használható az alapértelmezés felülbírálására. Ha egy modul konfigurációs fájlt, például/etc/modules.conf létezik, felülírja a megadott útvonalakatMODPATH.

A környezeti változóMODULECONF más konfigurációs fájl kiválasztására is használható/etc/modules.conf (vagy/etc/conf.modules (elavult)). Ez a környezeti változó felülírja a fenti definíciókat.

Amikor környezeti változóUNAME_MACHINE van beállítva, a modutils a gép mező helyett az értéket használja az uname () syscall-ból. Ez elsősorban akkor használható, amikor 64 bites modulokat készít 32 bites felhasználói területen, vagy fordítvaUNAME_MACHINE a modulok típusához. A jelenlegi modulok nem támogatják a teljes kör keresztmetszetű modult a modulokhoz, csak a gazdagép 32 és 64 bites verzióinak kiválasztására korlátozódnak.

Opciók

-e persist_name , --persist= persist_name

Megadja, hogy a modullal kapcsolatos állandó adatokat meg lehessen-e olvasni a terhelésről, és be kell írni, amikor a modul ilyen instantiálása ki van töltve. Ezt az opciót figyelmen kívül hagyja, ha a modulnak nincsenek tartós adatai. A tartós adatokat csak olvassa elinsmod ha ez az opció jelen van, alapértelmezés szerintinsmod nem dolgozza fel a tartós adatokat.

Mint rövidített forma,-e "" (üres karakterlánc) a következőképpen értelmezi:insmod mint értékétpersistdir az alábbiakban meghatározottak szerint:modules.conf, ezt követi a modul fájlnévje a modul keresési útvonalához képest, amely a ".gz", ".o" vagy ".mod" alatt van. Hamodules.conf meghatározza a "persistdir ="(azaz.persistdir üres mező), akkor ezt a rövidített formát csendben figyelmen kívül hagyja. (Látmodules.conf (5).)

-f, --erő

Kísérlet a modul betöltése akkor is, ha a futó rendszermag és a rendszermag azon verziója, amelyhez a modul össze lett állítva, nem egyeznek meg. Ez csak felülbírálja a rendszermagverzió ellenőrzését, nincs hatása a szimbólumnevek ellenőrzésére. Ha a modulban szereplő szimbólumnevek nem egyeznek a rendszermaggal, akkor nincs erőfeszítésinsmod a modul betöltése.

-h, --Segítség

Jelenítse meg az opciók összefoglalását, és azonnal lépjen ki.

-k, --automatikus tisztítás

Állítsa be az auto-clean jelzőt a modulon. Ezt a zászlót fogja használnikerneld(8) olyan modulok eltávolítására, amelyeket nem használtak bizonyos időtartam alatt - általában egy percig.

-L, --zár

Használatnyáj(2) egyazon modul egyidejű terhelésének megakadályozására.

-m, --térkép

Készítsen terhelési térképet a stdouton, megkönnyítve a modul hibakeresését a rendszermag pánik esetén.

-n, --noload

Dummy futni, mindent megtenni, kivéve, ha betölti a modult a rendszermagba. Ha egy-m vagy-O, a futtatás térképet vagy blob fájlt hoz létre. Mivel a modul nincs betöltve, a valódi rendszermag betöltési címe ismeretlen, így a térkép és a blob fájl egy 0x12340000 tetszőleges terhelési címen alapul.

-o module_name , --név= module_name

Pontosan nevezze el a modult, ahelyett, hogy származtatná a nevet a forrás objektumfájl alapnevéből.

-O blob_name , --folt= blob_name

A bináris objektum mentése blob_name . Az eredmény egy bináris blob (nincs ELF fejléc), amely pontosan mutatja, mi történik a rendszermagban a szekció manipuláció és áthelyezés után. választási lehetőség-m ajánlott az objektum térképének elkészítése.

-p, --szonda

Vizsgálja meg a modult, hogy láthassa, sikeresen betölthető-e. Ez magában foglalja az objektumfájl megtalálását a modulútvonalon, a verziószámok ellenőrzése és a szimbólumok feloldása. Nem ellenőrzi az áthelyezést, és nem készít térképet vagy blob fájlt.

-P előtag , prefix= előtag

Ez az opció SMP vagy bigmem rendszermag verziószámú modulokkal használható, mivel ezeknek a moduloknak extra előtagja van a szimbólumnevekben. Ha a rendszermagot szimbólum verziókkal építettük ki, akkorinsmod automatikusan kivonja az előtagot a "get_module_symbol" vagy az "inter_module_get" definícióból, amelyek közül az egyiknek léteznie kell minden olyan rendszermagban, amely támogatja a modulokat. Ha a rendszermag nem rendelkezik szimbólumverziókkal, de a modul szimbólumverziókkal van felépítve, akkor a felhasználónak kell megadnia-P.

-q, --csendes

Ne nyomtasson ki semmilyen megoldatlan szimbólumot. Ne panaszkodj a verzió eltérése miatt. A probléma csak akkor jelenik meg, ha a rendszer kilépési státusza vaninsmod.

-r, --gyökér

Egyes felhasználók modulokat készítenek egy nem root felhasználóként, majd a modulokat rootként telepítik. Ez a folyamat hagyhatja el a nem root felhasználóként működő modulokat, annak ellenére, hogy a modulok könyvtára a root tulajdonában van. Ha a nem root felhasználói azonosító sérül, az betolakodó felülírhatja az adott felhasználónév tulajdonában levő meglévő modulokat, és ezt az expozíciót a rendszerindításkor root hozzáférésre használhatja.

Alapértelmezés szerint a modutils elutasítja a gyökér nélküli tulajdonlási modult. megadása -r átkapcsolja a csekket, és engedélyezi a gyökérnek, hogy betöltse azokat a modulokat, amelyek nem a gyökér tulajdonában vannak.

Jegyzet: A gyökérellenőrzés alapértelmezett értéke módosítható a modutils konfigurálásakor.A -r használata a gyökérellenőrzés letiltásához vagy az alapértelmezett beállításhoz a "nem gyökércsomag" beállításhoz a konfigurációs idő alatt jelentős biztonsági expozíció, és nem ajánlott.

-s, --syslog

Készítsen mindentsyslog(3) a terminál helyett.

-S, --kallsyms

A betöltött modul kényszerítésekallsyms adatokat, még akkor is, ha a rendszermag nem támogatja. Ez a lehetőség kisebb rendszerek esetén, ahol a rendszermag nincs betöltvekallsyms az adatokra, de a kiválasztott modulokra van szükségkallsyms a hibakereséshez. Ez az opció a Red Hat Linux alapértelmezett beállítása.

-v, --bőbeszédű

Legyen szóba.

-V, --változat

Megjeleníti ainsmod.

-X, --export; -x, --noexport

Végezze el és ne exportálja az összes modul külső szimbólumát. Az alapértelmezés szerint a szimbólumok exportálhatók. Ez az opció csak akkor érvényes, ha a modul kifejezetten nem exportál saját ellenőrzött szimbólumtábláját, így elavult.

Y, --ksymoops; -y, --noksymoops

És ne adj hozzáksymoops szimbólumokat a ksime-khez. Ezt a szimbólumot használjaksymoops hogy jobb hibakeresést biztosítson, ha van egy Oops ebben a modulban. Az alapértelmezett azksymoopsszimbólumok meghatározása. Ez a lehetőség független a-X/-x opciók.

ksymoops a szimbólumok körülbelül 260 bájtot adnak meg a betöltött modulonként. Hacsak nem vagy nagyon kicsi a rendszermag, és megpróbálják minimalizálni a ksimexeket a minimális méretére, vegye figyelembe az alapértelmezett értéket, és pontosabban ellenőrizze az Oops hibakeresést.ksymoops szimbólumok szükségesek a tartós moduladatok mentéséhez.

-N, --numeric csak

Csak ellenőrizze a modul verziószámát a rendszermag verziójával szemben, azaz figyelmen kívül hagyja a EXTRAVERSION-ot, amikor eldönti, hogy egy modul egy rendszermaghoz tartozik-e. Ez a jelző automatikusan a 2.5 kernelre van állítva, ez a korábbi kernelekhez opcionális.

Modul paraméterek

Néhány modul elfogadja a betöltési idő paramétereket a működésük testreszabásához. Ezek a paraméterek gyakran az I / O port és az IRQ számok, amelyek gépen és gépen eltérnek, és nem határozhatók meg a hardveren.

A 2.0 sorozatú rendszermagokhoz épített moduloknál bármely egész vagy karaktermutató szimbólum paraméterként kezelhető és módosítható. A 2.1-es sorozatú rendszermagoktól kezdve a szimbólumokat kifejezetten paraméterként jelölik, így csak bizonyos értékek módosíthatók. Ezenkívül a beadási időben megadott értékek ellenőrzése céljából típusinformációkat szolgáltatnak.

Az egész számok esetében minden érték lehet decimális, oktális vagy hexadecimális a la C: 17, 021 vagy 0x11. A tömbelemek vesszővel elválasztva kerülnek sorrendbe. Az elemek kihagyhatók az érték elhagyásával.

A 2.0 sorozatú modulokban az olyan értékek, amelyek nem kezdődnek számmal, húrként tekintendők. A 2.1-es verziótól kezdődően a paramétertípus-információ jelzi, hogy értelmezi-e az értéket karakterláncként. Ha az érték kettős idézőjelekkel kezdődik ('), a karakterláncot úgy értelmezik, mint a C, a escape szekvenciák és az összes. Ne feledje, hogy a shell parancssorból magának az idézőjeleknek kell védeni a héj értelmezését.

GPL Licensed Modules and Symbols

A 2.4.10-es kerneltől kezdve a moduloknak licenclicencet kell tartalmazniuk, amelyet a következővel kell megadniMODULE_LICENSE (). Számos karakterláncot GPL kompatibilisnek ismerünk el; minden más licencfájl vagy licenc egyáltalán nem jelenti azt, hogy a modult saját tulajdonúnak tekintik.

Ha a rendszermag támogatja a/ Proc / sys / kernel / romlott zászlótinsmod vagy VAGY a megzavart zászló "1" -nel, amikor egy modulot tölt be GPL licenc nélkül. Figyelmeztetés kerül kiadásra, ha a rendszermag támogatja a megfertőzést és a modult licenc nélkül tölti be. Mindig olyan modulokra figyelmeztető jelzést kap, amelyeknek aMODULE_LICENSE () ez nem GPL kompatibilis, még olyan régebbi rendszermagokon is, amelyek nem támogatják a szennyeződést. Ez minimalizálja a figyelmeztetéseket, ha új modutilt használnak a régebbi rendszermagokban.

insmod -f (erő) mód VAGY a zavaros zászló "2" -vel a rendszermagokon, amely támogatja a megfertőzést. Mindig figyelmeztetést ad ki.

Néhány rendszermag-fejlesztő megköveteli, hogy a kódjuk által exportált szimbólumokat csak GPL-kompatibilis licencekkel rendelkező modulok használják. Ezeket a szimbólumokat aEXPORT_SYMBOL_GPL a normális helyettEXPORT_SYMBOL. A rendszermag és más modulok által exportált GPL-szimbólumok csak GPL-kompatibilis licencekkel rendelkező modulok számára láthatók, ezek a szimbólumok megjelennek/ Proc / ksyms egy "GPLONLY_'. insmod figyelmen kívül hagyja aGPLONLY_ a szimbólumok előtagja a GPL engedéllyel rendelkező moduljának betöltése közben, így a modul csak az előtag nélküli normál szimbólumnevet jelenti. A GPL csak szimbólumokat nem áll rendelkezésre a GPL-kompatibilis licenc nélküli modulok számára, ez egyáltalán nem engedélyezett modulokat tartalmaz.

Ksymoops Assistance

Segítség a rendszermag hibakeresésében Hoppá, amikor modulokat használ,insmod Alapértelmezés szerint néhány szimbólumot kell hozzáadnia ksyms-hez, lásd aY választási lehetőség. Ezek a szimbólumok kezdődnek__insmod_ modulename_ . A modulename hogy a szimbólumok egyediek legyenek. Legális, hogy ugyanazt az objektumot többször is betöltsék különböző modulnevek alatt. Jelenleg a meghatározott szimbólumok a következők:

__insmod_ modulename _ Oobjectfile _ Mmtime _ vVERSION

objectfile az a fájl neve, amellyel az objektumot töltötte be. Ez biztosítja, hogy az ksymoopok a kódot a megfelelő objektumhoz igazítsák. mtime az utolsó módosított időbélyegző az adott fájlban hexon, nulla, ha a stat nem sikerült. változat a rendszermag verziója, amelyre a modul fordult, -1 ha nincs elérhető verzió. A_O A szimbólumnak ugyanaz a kezdő címe, mint a modul fejléce.

__insmod_ modulename _ Ssectionname _ Llength

Ez a szimbólum megjelenik a kiválasztott ELF szakaszok kezdetén, jelenleg .text, .rodata, .data, .bss és .sbss. Csak akkor jelenik meg, ha a szakasz nem nulla méretű. sectionname az ELF szakasz neve, hossz a szakasz hossza decimálisan. Ezek a szimbólumok segítséget nyújtanak a ksymoops-nak, hogy címeket adjanak a szekciókhoz, ha nincsenek szimbólumok

__insmod_ modulename _Ppersistent_ fájl név

Csak ainsmod ha a modul egy vagy több paramétert tartalmaz, amelyek tartós adatokként vannak megjelölve, és egy fájlnév a tartós adatok mentéséhez (lásd:-e, fent) elérhető.

A másik probléma a hibakeresési kernelvel Hoppá a modulokban az, hogy a / proc / ksyms tartalom és / proc / modules változhat a Hoppá és a naplófájl feldolgozásakor. A probléma leküzdéséhez, ha a könyvtár / var / log / ksymoops létezik, akkorinsmod ésrmmod automatikusan átmásolja a / proc / ksyms és a / proc / modules parancsot a / var / log / ksymoops fájlra a dátum +% Y% m% d% H% M% S előtagával. A rendszergazda meg tudja mutatni a ksymoopokat, amelyek pillanatképfájlokat használnak az Oops hibakeresésekor. Az automatikus másolat letiltására nincs lehetőség. Ha nem akarja, hogy ez megtörténjen, ne hozzon létre / var / log / ksymoops. Ha ez a könyvtár létezik, akkor a gyökér tulajdonában kell lennie, és 644 vagy 600 módban kell lennie, és minden nap futtatni kell ezt a szkriptet. Az alábbi parancsfájl telepítése insmod_ksymoops_clean.

#! / Bin / sh # Törölje a mentett ksime-ket és modulokat, amelyek nem érhetők el 2 napon belül ha -d ​​/ var / log / ksymoops azután set -e # Győződjön meg róla, hogy mindig van legalább egy verzió d = `dátum +% Y% m% d% H% M% S` cp -a / proc / ksyms /var/log/ksymoops/${d}.ksyms cp -a / proc / modules /var/log/ksymoops/${d}.modules találja a / var / log / ksymoops -típusú f -atime +2 -exec rm {} ; fi

Alapvető információk a tudáshoz

NÉV

insmod - betölthető rendszermag modul telepítése

SZINOPSZIS

insmod -fhkLmnpqrsSvVxXyYN -e persist_name -o module_name -O blob_name -P előtag modul szimbólum= érték …