Linux / Unix Command: insmod

De Linux / Unix Kommando Insmod installéiert en ladbar Modul an de lafen Kernel. Insmod probéiert e Modul an de laangen Kernel ze verbannen andeems all Symboler aus der exportéierter Symboltabelle geléist ginn .

Wann de Moduldateier Numm ouni Verëffentleche oder Extensioun gegeben ass, wäert d' Inmodal de Modul op verschiddene Standardfaarfdiagnosen opsuchen. D' Ëmvirsiichtegt MODPATH kann benotzt ginn fir dëst Standard ze iwwerschreiden. Wann eng Modulkonfiguratiounsdatei wéi /etc/modules.conf existéiert, gëtt et d'Weeër, déi an MODPATH definéiert sinn, überschritt .

D' Ëmvirstellbar Variable MODULECONF kann och benotzt ginn fir eng aner Konfiguratiounsdatei aus der Default / etc / module.conf (oder /etc/conf.modules (vergewëssert)) ze wielen. Dës Ëmweltsvariable wäert all d'Definitioune hei beschriwwe ginn.

Wann Ëmvironnement Variablen UNAME_MACHINE festgesat gëtt, benotzt d'Moduler d'Wäert amplaz vum Maschinnfeld aus der Uname () Syskall. Dëst ass haaptsächlech benotzt wann Dir 64-Bit-Module am 32-Bit-User-Raum erstallt oder ume vereenheetst, UNAME_MACHINE dem Typ vun de Modulen setze. Aktuell Modutiler ënnerstëtzen net voll Quellbuetungsmodus fir Moduler, ass limitéiert op d'Auswiel vu 32- bis 64-Bit Versiounen vun der Hostarchitektur.

Optiounen

-e persist_name , --persist = persist_name

Gitt fest datt all bestännege Daten fir de Modul ofliesen a geschriwwe ginn, wann dës Instantie vum Modul ofgeléist gëtt. Dës Optioun gëtt nawell ignoréiert, wann de Modul keng persistent Donnéeën huet. Persistent Donnéeën gëtt nëmmen vun insmod geliest ginn, wann dës Optioun momentan ass, standard Standard insmodelt net persistent Donnéeën.

Als enger Skizzendform gëtt -e "" (eidel Sait) interpretéiert duerch Insmod als de Wert vu persistdir wéi et an modul.conf definéiert ass, gefollegt vum Fichiernam vum Modul relativ mam Sucher Suchbunn ass et fonnt ginn, minus wéinst ".gz", ".o" oder ".mod". Wann modules.conf spezifizéiert " persistdir = " (dh persistdir ass e leeg Feld) gëtt dës kierchend Form virgesinn ignoréiert. (Kuckt Module.conf (5).)

-f , --fir

Probéiert de Modul opzehuelen, och wann d'Versioun vum Laach Kernel an d'Versioun vum Kernel fir deen de Modul erstallt ass, net matdeelen. Dëst just iwwerdréit de Kernelversioun Check, et huet keen Effekt op Symbolbezunnen. Wann d'Symbolennummeren am Modul mat dem Kernel net passen, da gëtt et kee Wee fir d' Insmod ze zwéngen, de Modul ze lueden .

-h , --help

Affichéieren eng Auswiel vu Optiounen an direkt eraus.

-k , --autokleur

Setzt d'Auto-propper Feet am Modul. Dëse Fändel gëtt vun kerneld benotzt (8) fir Module ze räissen, déi net méi laang benotzt goufen - normalerweis eng Minutt.

-L , --lock

Flocken (2) benotzen fir simultane Laaschte vum selwe an de Modul ze vermeiden.

-m , --map

Auslaalt eng Load Kaart op stdout, fir datt et de Modul ze debugéiere bei engem Kernel Panik.

-n , --noload

Dummy lafen, maachen alles, ausser de Modul an den Kernel ze laden. Wann Dir vun engem -m oder -O gefrot huet , féiert de Laf vun enger Kaart oder der Blobdatei. Säit dem Modul gëtt net gelueden, ass déi richteg KernelLoad-Adress unbekannt, sou datt d'Kaart an d'Blob-Datei op enger arbiträrer Loadadress vun 0x12340000 baséieren.

-o module_name , - name = module_name

Explizéieren éierméiglech den Numm Modul, anstatt den Numm aus dem Basisnam vun der Sourceobjektdatei z'erreechen.

-O BlobName , --blob = BlobName

Späichere vum binäre Objek am BlobName . D'Resultat ass e binär Blob (keng ELF Header) déi exakt a wat an den Kernel no der Manipulatioun an der Verlagerung gedréckt ass. Option -m ass recommandéiert fir eng Kaart vum Objet ze kréien.

-p , --probe

Probéiert de Modul fir ze kucken ob et kéint gelueden sinn . Dëst schreift och d'Lokalisatioun vun der Objektdatei am Modulweeech, Versioun vun Versiounsnummern a Léisung vun Symbolen. Et kontrolléiert d'Verdeelungen net oder produzéiert et e Kaart oder e Blobdatei.

-P Präfix , --prefix = prefix

Dës Optioun kann mat Versiounspläng Module fir e SMP oder Bigmem Kernel benotzt ginn, well sou Module hunn e extra Präfix an de Symbol Symbol. Wann de Kernel mat Symbolversioune gebaut ass, dann entmodelt automatesch de Präfix aus der Definitioun vum "get_module_symbol" oder "inter_module_get", deen u muss an engem Kernel existéieren, deen Module brauch. Wann de Kernel keng Symbolvarianten huet, awer de Modul gouf mat Symbolversioune gebaut an de Benotzer muss -P .

-q , - Quiet

Maacht keng Lëscht vun alle ongeléisten Symboler. Klappt net iwwer d'Versioun vum Passwuert. De Problem wäert nëmmen am Ausstiegsstatus vum Insmod spigelen .

-r , - Root

E puer Benotzer kompiléiert Module ënnert engem net-root-Userid, an dann d'Module als Root installéieren. Dëse Prozess kann d'Module déi vun der net-root Userid gehéieren, obwuel d'Modulverzeichnis am Besëtz vun der Wuerzel ass. Wann de net-root-Userid kompromittéiert ass, kann een Intruder iwwregens iwwregens iwwregens déi existent Module déi iwwernuecht vun dëser Userid iwwerschreiwe a benotzt dës Beliichtung zum Bootstrap bis op root root access.

Standard ginn d'Moduler probéiert Versuche, e Modul ze benotzen deen net am Besëtz vu root ass. Gitt -r wäerte de Scheck deplacéieren a root benotzen fir Module ze laden, déi net am Besëtz vun der Wuerzel sinn. Bemierkung: de Standardwerter fir Rootproblem kann geännert ginn wann de Moduler uginn ass.

Benotze vun -r fir d'Rooten ze kontrolléieren oder de Standard um "keng root-Check" op Konfiguratioun ze setzen ass eng wichteg Security Expositioun an net recommandéiert.

-s , - syslog

All Kënnegen nom Syslog (3) amplaz vum Terminal.

-S , --kallsyms

Force de Laaschtmodus fir Kalsysdaten ze kréien, och wann de Kernel net ënnerstëtzt. Dës Optioun ass fir kleng Systemer wou den Kernel ouni Kallsyma- Daten gelueden gëtt , awer ausgewielte Module brauche Kallsyme fir Debuggen. Dës Optioun ass de Standard um Red Hat Linux.

-v , --verbose

Si verbose.

-V , --version

D'Versioun vum insmod .

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

Maacht a gitt net all Externen Symboler vum Modul. Standard ass fir d'Symboler déi exportéiert ginn. Dës Optioun ass nëmme effektiv wann de Modul net explizit seng eegene kontrolléiert Symboltabelle exportéiert an dofir vergewëssert gëtt.

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

Maacht a ksymoops net Symbol fir ksym eropzelueden. Dës Symboler ginn vun ksymops benotzt fir bessert Debuggen ze kréien, wann et en Oops an dësem Modul ass. De Standard ass fir d' Ksymops Symboler ze definéieren. Dës Optioun ass onofhängeg vun der -X / -x Optiounen.

Ksymoops Symboler addéieren ongeféier 260 Bytes pro Laden Modul. Wann Dir net wierklech um Kuerzelraum ass a probéiert d 'Ksym op déi minimal Gréisst ze reduzéieren, hu se d'Standardastellung a kritt méi genaue Oops debuggen. Ksymops sinn Symboler fir persistent Modul Daten ze retten.

-N , -numeresch-nëmmen

Nëmme just den numeresche Volume vun der Modulversioun iwwer d'Kernelversioun kontrolléieren, dh ignoréieren EXTRAVERSION beim Entscheedung wann e Modul gehéieren zu engem Kernel. Dëse Fändel ass automatesch fir den Kernel 2.5 unzeruffen, et ass optional fir virdru Käerz.

Modulparameter

E puer Module akzeptéieren d'Laaspparameter fir hir Operatioun ze personaliséieren. Dës Parameter sinn oft I / O Hafen an IRQ Nummeren déi variéieren vun der Maschinn op d'Maschinn an däerf net vun der Hardware ermittelt ginn.

Bei Modulen déi fir 2,0-Serie Kernwierker gebaut ginn, kann all Integer oder Zeeche Zeechner Symbol als Parameter behandelt a geännert ginn. Ufank vun den 2,1-Serie Kernwierker, Symboler si explizit als Parameter gekennzeechent datt nëmmen spezifesch Wäerter verännert ginn. Zousätzlech Informatiounsartikelen ginn fir d'Wäertkontrollen ze kontrolléieren op Laaszäitzäit.

Am Fall vun ganzer ganzer Wäerter kënnen an Dezimal, Oktal oder Hexadezimal a la C: 17, 021 oder 0x11 sinn. Elemente vun Array sinn spezifizéiert Sequenz getrennt vu Komma. Elemente kënnen iwwerpréift ginn, andeems de Wäert ofgehale gëtt.

In 2,0 Reegele Modul, Wäerter, déi net mat enger Zuel beginn, gi Stécker. Ufank vun 2,1, d'Informatiounsform vun der Parametere weist op, ob de Wäert als Wuert ze interpretéieren ass. Wann de Wäert mat Doppelequotë beginn ( " ), de String gëtt interpretéiert wéi an C, Fluchsequenzen an all. Merci datt aus dem Shell d'Quotes selwer mussen aus der Shell interpretéiert ginn.

GPL Lizenzegent Module a Symbolen

Vun der Kernel 2.4.10 starten, muss d'Module Lizenz Lizenz benotze mat MODULE_LICENSE () definéiert . Verschidde Strings ginn als GPL kompatibel erkannt; iergendeng aner Lizenz Lizenz oder keng Lizenz onbedéngt heescht, datt de Modul als proprietär behandelt gëtt.

Wann de Kernel de / proc / sys / kernel / gescheitent Fändel ënnerstëtzt dann gëtt den INMMOD den ORF mat der "1" beim Laden vun engem Modul ouni GPL Lizenz. Eng Warnung gëtt erausginn, wann de Kernel d'Verduerderung ënnerstëtzt an e Modul gëtt ouni Lizenz berechent. Eng Warnung gëtt ëmmer ausgeliwwert fir Module, déi e MODULE_LICENSE () dat net mat GPL kompatibel sinn, och op eelere Kuelen, déi net verduerwen. Dëst miniméiert d'Warnunge wann e neie Modutil op eeleren Kernen benotzt gëtt.

Insmod -f (Kraaft) Modus OR OR D'Verstaerktes Fändel mat '2' iwwer Kernen déi Verduerwenung ënnerstëtzen. Et ass ëmmer eng Warnung.

Verschidde Kneeler Entwéckler brauchen datt d'Symboler vun hirem Code exportéiert däerf nëmmen duerch Module mat enger GPL-kompatiblen Lizenz benotzen. Dës Symboler kënnen exportéiert ginn vun EXPORT_SYMBOL_GPL anstatt den normalen EXPORT_SYMBOL . GPL-Symboler déi nëmmen duerch den Kernel exportéiert ginn an duerch aner Module sinn nëmme mat Module mat enger GPL-kompatibel Lizenz ze gesinn, déi Symboler an / proc / ksyms mat engem Präfix vun ' GPLONLY_ ' erscheinen . insmod ignoréiert de GPLONLY_ Präfix op Symboler beim Luede vun engem GPL lizenzéierte Modul sou datt de Modul just den normalen Symbol Numm verweist, ouni de Präfix. GPL kënnen nëmmen Symbolen ouni Modul ouni GPL-kompatibel Lizenz erlaabt sinn, dh Moduler ouni Lizenz.

Ksymoops Assistance

Fir mat Debuggen vum Kernel ze hëllefen Wann d'Module benotze ginn, setze Standardmodifikatioune fir aner Symbole fir Ksym eropzelueden, kuckt d'Option -Y . Dës Symboler fänken u mam __insmod_modulename_ . De ModulName ass néideg fir d'Symboler eenzegaarteg ze maachen. Et ass legal datt déiselwecht Objet méi wéi eemol gëtt ënnert anerem Modulennamen. Momentan definéiert Symboler sinn:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

Objektfile ass den Numm vun der Datei déi den Objet gelueden gouf. Dëst garantéiert, datt ksymoops mat dem Code dem korrekten Objet passen. mtime ass de leschte modifizéierten Timestamp op deem Fichier an HEX, Null, wann et net geschitt ass. Versioun ass d'Kernel Versioun déi de Modul erstallt gouf -1, wann keng Versioun verfügbar ass. De Symbol _O huet déi selwecht Startadress wéi de Modul Header.

__insmod_modulename_Ssectionname_Llength

Dëst Symbol ersetze beim Ufank vun ausgewielten ELF-Sektiounen, aktuell .text, .rodata, .data, .bss oder .sbss. Et gëtt nëmmen, wann d'Sektioun eng Null Gréisst huet. Deel Numm ass den Numm vum ELF-Deel, d' Längt ass d'Längt vun der Sektioun an Dezimal. Dës Symboler helfen der Ksymoops Kaart Adressen un Rubriken wann keng Symboler verfügbar sinn.

__insmod_modulename_Ppersistent_filename

Nëmmen created by insmod wann de Modul e puer oder méi Parameter huet, déi als persistent Donnéeën an engem Dateinumm bezeechent ginn fir persistent Donnéen ze retten (kuckt -e , uewen).

Den aneren Problem mat Debugging Kernel Oops an Module ass datt den Inhalt vun / proc / ksyms an / proc / Module tëschent d'Oops an Ännere wiesselen an wann Dir d'Log Datei veraarbecht. Fir dëst Problem ze iwwerwannen, wann de Verzeichnis / var / log / ksymoops existéiert ass dann enmod a rmmod automatesch kopéiert / proc / ksyms a / proc / moduler u / var / log / ksymoops mat engem prefix vun dat Datum +% Y% m % d% H% M% S`. De Systemadministrator kann ksymoops soen wat Snapshot Dateien benotze wann Dir e Oop gebraucht. Et gëtt keen neie Knäppche fir dës automatesch Kopie z'ernimmen. Wann Dir se net wëllt opmaachen, erënnere net / var / log / ksymoops . Wann dat Verzeichnis existéiert, sollt et Eegentum vun der Root sinn a sinn Modus 644 oder 600 an Dir sollt dëst Skript all Dag oder esou. De Skript hei ënnen als insmod_ksymoops_clean installéiert.

Basis Informatiounen ze wëssen

NUMM

Insmod - luedbare Kernel Modul

SYNOPSIS

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o ModulName ] [-O BlobName ] [-P Präfix ] Modul [ symbol = value ...]