Linux / Unix stjórn: Insmod

Linux / Unix stjórnin insmod setur hlaða mát í hlaupandi kjarna. Insmod reynir að tengja eininguna við keyrslukjarna með því að leysa öll tákn úr útfluttum táknmynd kjarnans.

Ef mát skráarheiti er gefið án framkvæmdarstjóra eða viðbótar verður insmod að leita að einingunni í sumum sameiginlegum sjálfgefnum möppum. Hægt er að nota umhverfisbreytuna MODPATH til að hunsa þetta sjálfgefið. Ef einingarstillingarskrá, svo sem /etc/modules.conf, er til staðar, mun það hunsa slóðirnar sem eru skilgreindar í MODPATH .

Einnig er hægt að nota umhverfisbreytu MODULECONF til að velja annan stillingarskrá frá sjálfgefnu /etc/modules.conf (eða /etc/conf.modules (úrelt)). Þessi umhverfisbreyting mun yfirbæta allar skilgreiningar hér að ofan.

Þegar umhverfisbreytur UNAME_MACHINE er stillt, mun mótaðill nota gildi þess í stað vélarsvæðisins frá uname () syscall. Þetta er aðallega notað þegar þú ert að búa til 64 bita einingar í 32 bita notendaviðmóti eða öfugt, setja UNAME_MACHINE í gerð mátanna . Núverandi modutils styðja ekki fulla kross byggingu ham fyrir einingar, það er takmörkuð við að velja á milli 32 og 64-bita útgáfur af gestgjafi arkitektúr.

Valkostir

-Ef persist_name , --persist = persist_name

Tilgreinir hvar einhverjar viðvarandi gögn fyrir eininguna eru lesnar úr álagi og skrifuð til þegar þetta umræðuefni á einingunni er affermt. Þessi valkostur er hljótt hunsuð ef einingin hefur ekki viðvarandi gögn. Viðvarandi gögn eru aðeins lesin af insmod ef þessi valkostur er til staðar, sjálfgefna insmod vinnur ekki viðvarandi gögn.

"" (Tómt streng) er túlkað með insmod sem gildi persistdir eins og skilgreint er í modulum.conf , fylgt eftir með filename málsins miðað við mátaslóðina sem fannst í, að frádregnum einhverjum slóð ".gz", ".o" eða ".mod". Ef modules.conf tilgreinir " persistdir = " (þ.e. persistdir er tómt reit) þá er þetta skothandaðu formlaust hunsuð. (Sjá modules.conf (5).)

-f , --force

Tilraun hlaða einingunni jafnvel þótt útgáfa af gangi kjarna og útgáfu kjarna sem móttekin var saman kom ekki saman. Þetta truflar aðeins kjarnaútgáfuna, það hefur engin áhrif á táknheitaprófanir. Ef tákn nöfnin í einingunni passa ekki við kjarna þá er engin leið til að knýja insmod til að hlaða inn eininguna.

-h , - hjálp

Sýna samantekt á valkostum og hætta strax.

-k , - sjálfstætt

Stilltu sjálfvirka hreinn fána á einingunni. Þessi fána verður notuð af kerneld (8) til að fjarlægja einingar sem ekki hafa verið notaðar í nokkurn tíma - venjulega eina mínútu.

-L , - lok

Notaðu hjörð (2) til að koma í veg fyrir samtímis fullt af sömu einingu.

-m , - kort

Búðu til hlaða kort á stdout, sem gerir það auðveldara að kemba við eininguna ef um er að ræða kjarnaþræta.

-n , --noload

Dummy hlaupa, gera allt nema hlaða mátinni inn í kjarna. Ef óskað er eftir -m eða -O mun hlaupið framleiða kort eða blob skrá. Þar sem einingin er ekki hlaðin er raunverulegt kjarnahleðsla heimilisfang óþekkt svo kortið og blob skráin byggist á handahófi hleðslu heimilisfang 0x12340000.

-einingarnúmer , - nafn = mát_nafn

Nafngreina mátin frekar en frekar en að afla nafnið frá grunnnafni frumskrárinnar.

-O blob_name , --blob = blob_name

Vista tvöfalda hlutinn í blob_name . Niðurstaðan er tvöfaldur blundur (engin ELF haus) sýnir nákvæmlega hvað er hlaðinn í kjarnann eftir verkfæringu og flutning. Valkostur -m er mælt með því að fá kort af hlutnum.

-p , --probe

Sannið eininguna til að sjá hvort það gæti verið hlaðið . Þetta felur í sér að finna hlutaskrána í mátarslóðinni, skoða útgáfurúmer og leysa tákn. Það skoðar ekki flutningarnar né framleiðir það kort eða blob skrá.

-P forskeyti , --prefix = forskeyti

Þessi valkostur er hægt að nota með útgáfuðum mátum fyrir SMP eða bigmem kjarnann, þar sem slíkar einingar hafa viðbótarforskeyti bætt við í táknunum sínum. Ef kjarninn var byggður með táknútgáfum mun insmod sjálfkrafa draga forskeyti úr skilgreiningunni "get_module_symbol" eða "inter_module_get", en hver verður að vera í hvaða kjarna sem styður einingar. Ef kjarninn hefur engin táknútgáfu en einingin var byggð með táknútgáfum verður notandinn að gefa upp -P .

-q , --quiet

Ekki prenta lista yfir óleyst tákn. Ekki kvarta yfir útgáfu misræmi. Vandamálið verður aðeins endurspeglast í lokunarstöðu insmods .

-r , - rót

Sumir notendur safna saman einingum undir notanda sem ekki er rót og setjið þá þá einingar sem rót. Þetta ferli getur skilið einingarnar sem eru í eigu notenda notenda, jafnvel þótt einingarskráin sé í eigu rót. Ef notendaviðmiðið sem ekki er rót er málamiðlun getur boðberi skrifað yfir fyrirliggjandi einingar í eigu notandans og notið þessa lýsingu á ræsistöðu upp að rótaðgangi.

Sjálfgefin munu modutils hafna tilraunum til að nota einingu sem er ekki í eigu rótar. Tilgreindu -r mun skipta um stöðvunina og leyfa rót að hlaða inn einingar sem eru ekki í eigu rótar. Athugaðu: Hægt er að breyta sjálfgefna gildinu fyrir rótarskoðun þegar mótsögn er stillt.

Notkun á -r til að slökkva á rótartakka eða setja sjálfgefið "engin rótartak" á stillingu tíma er mikil öryggi og er ekki mælt með því.

-s , - syslog

Búðu til allt til syslog (3) í staðinn fyrir flugstöðina.

-S , --kalsyms

Þrýstu hlaðinn mát til að fá kalsyms gögn, jafnvel þótt kjarninn styður það ekki. Þessi valkostur er fyrir litla kerfi þar sem kjarninn er hlaðinn án kallsyms gögn en valin mát þurfa kallsyms fyrir kembiforrit. Þessi valkostur er sjálfgefið á Red Hat Linux.

-v , --verbose

Vertu ótrúleg.

-V , - útgáfa

Sýna útgáfu insmod .

-X , - útflutningur ; -x , --noexport

Gera og flytðu ekki út öll ytri tákn málsins í sömu röð. Sjálfgefið er að táknin séu flutt út. Þessi valkostur er eingöngu árangursríkur ef einingin flytur ekki skýrt út eigin stýrða tákntöflunni og er því úr gildi.

-Y , --ksymoops ; -y , - neyðarvélar

Gera og bætið ekki ksymoops táknum við ksyms. Þessar tákn eru notuð af ksymoops til að veita betri kembiforrit ef það er Úps í þessari einingu. Sjálfgefið er að ksymóops táknin séu skilgreind. Þessi valkostur er óháð valkostunum -X / -x .

ksymoops tákn bæta um það bil 260 bæti á hlaðinn mát. Nema þú ert mjög stuttur á kjarnaplássi og reynir að draga úr ksyms að lágmarksstærð sinni, taktu sjálfgefið og fáðu nákvæmari Úps kembiforrit. ksymoops tákn eru nauðsynleg til að vista viðvarandi gögn gagna.

-N , - aðeins eingöngu

Athugaðu aðeins tölfræðilega hluti mátunarútgáfunnar gagnvart kjarnaversluninni, þ.e. hunsaðu EXTRAVERSION þegar þú ákveður hvort einingin tilheyrir kjarnanum. Þessi fána er sjálfkrafa stillt fyrir kjarna 2.5 og áfram, það er valfrjálst fyrir fyrri kjarna.

Module Parameters

Sumir einingar samþykkja hleðslutíma breytur til að sérsníða rekstur þeirra. Þessar breytur eru oft I / O höfn og IRQ tölur sem eru mismunandi frá vél til vél og ekki hægt að ákvarða af vélbúnaði.

Í einingum sem eru byggð fyrir 2,0 röð kjarna má meðhöndla heiltala eða táknmerki sem breytu og breyta. Upphaf í 2.1 röð kjarna eru tákn merki merktar sem breytur þannig að aðeins tiltekin gildi geta breyst. Enn fremur er gerð upplýsingar um tegundarupplýsingar til að fylgjast með gildunum sem gefnar eru við hleðslutíma.

Þegar um er að ræða heiltölur, geta öll gildi verið í tugabrotum, oktalum eða sextíu mínútum a la C: 17, 021 eða 0x11. Rammagreinar eru tilgreindar raðir aðskilin með kommum. Hægt er að sleppa hlutum með því að sleppa því.

Í 2.0 röð mát, eru gildi sem ekki byrja með númer talin strengi. Upphafin í 2.1 gefur til kynna tegundarupplýsingar breytu til að túlka gildi sem streng. Ef gildi byrjar með tvöföldum tilvitnunum ( " ), er strengurinn túlkaður eins og í C, flýja röð og allt. Gerðu athugasemd sem frá skellunni hvetja, getur vitnin sjálft þurft að vernda frá skúlutúlkun.

GPL leyfisbundnar einingar og tákn

Byrjar með kjarna 2.4.10, ætti einingar að hafa leyfi streng, skilgreint með MODULE_LICENSE () . Nokkrar strengir eru þekktir sem GPL samhæfðir; önnur leyfisveitandi strengur eða engin leyfisveitandi að öllu leyti að einingin sé meðhöndluð sem einkaleyfi.

Ef kjarninn styður / proc / sys / kernel / spilled flaggan þá mun insmod OR EÐA flettu fána með '1' þegar þú hleður upp einingum án GPL leyfis. Viðvörun er gefin út ef kjarna styður sprautun og eining er hlaðin án leyfis. Viðvörun er alltaf gefin út fyrir einingar sem hafa MODULE_LICENSE () sem er ekki GPL samhæft, jafnvel á eldri kjarna sem styðja ekki spaða. Þetta dregur úr viðvörun þegar nýtt módel er notað á eldri kjarna.

Insmod -f (afl) ham mun EÐA flettu fána með '2' á kjarna sem styðja spaða. Það gefur alltaf viðvörun.

Sumir kjarnahönnuðir krefjast þess að tákn sem flutt eru út með kóðanum sínum má einungis nota með einingar með GPL samhæft leyfi. Þessi tákn eru flutt út af EXPORT_SYMBOL_GPL í stað venjulegs EXPORT_SYMBOL . GPL-eingöngu tákn sem eru flutt út af kjarnanum og með öðrum einingum eru aðeins sýnilegar fyrir einingar með GPL-samhæft leyfi, þessi tákn birtast í / proc / ksyms með forskeyti ' GPLONLY_ '. Insmod hunsar GPLONLY_ forskeytið á táknum meðan þú hleður upp GPL leyfi einingunni svo að einingin vísar bara til venjulegs táknheitunnar , án forskeytisins. GPL einföld tákn eru ekki tiltæk fyrir einingar án GPL samhæft leyfis, þetta felur í sér einingar án leyfis yfirleitt.

Ksymoops Assistance

Til að aðstoða við kembiforrit kjarnans Úps þegar einingar eru notaðar, sjálfgefið að setja sum tákn í ksyms, sjá -Y valkostinn. Þessi tákn byrja með __insmod_modulename_ . Modename er nauðsynlegt til að gera táknin einstakt. Það er löglegt að hlaða sömu hlutinn meira en einu sinni undir mismunandi nöfnum á einingu. Nú eru skilgreind tákn:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

Objectfile er nafnið á skránni sem hluturinn var hlaðinn frá. Þetta tryggir að ksymoops geti passað kóðann við réttan hlut. mtime er síðast breytt tímamörk á þeim skrá í hex, núll ef stat mistókst. útgáfa er kjarnaútgáfan sem einingin var tekin saman fyrir, -1 ef enginn útgáfa er til staðar. The _O táknið hefur sama upphafsstað og máthausinn.

__insmod_modulename_Ssectionname_Llength

Þetta tákn birtist við upphaf valda ELF köflum, nú .text, .rodata, .data, .bss og .sbss. Það virðist aðeins ef hlutinn er með stærð sem er ekki núll. sectionname er heiti ELF kafla, lengd er lengd hlutarins í aukastaf. Þessar tákn hjálpa ksymoops korta heimilisföngum í köflum þegar engin tákn eru til staðar.

__insmod_modulename_Ppersistent_filename

Eingöngu búin til af insmod ef einingin hefur einn eða fleiri breytur sem merkt eru sem viðvarandi gögn og skráarheiti til að vista viðvarandi gögn (sjá -e , hér að ofan) er fáanleg.

Annað vandamálið með kembiforritkjarna Oops í einingar er að innihald / proc / ksyms og / proc / mát geta breyst á milli Úps og þegar þú vinnur með skrána. Til að hjálpa þér að sigrast á þessu vandamáli, ef skrá / var / log / ksymoops er til staðar þá mun insmod og rmmod sjálfkrafa afrita / proc / ksyms og / proc / modules til / var / log / ksymoops með forskeyti `date +% Y% m % d% H% M% S`. Kerfisstjórinn getur sagt frá ksymoops sem skyndimyndarskrár sem nota skal þegar kembiforrit er opið. Það er engin skipta að slökkva á þessu sjálfvirka eintak. Ef þú vilt ekki að það gerist skaltu ekki búa til / var / log / ksymoops . Ef þessi skrá er til staðar ætti það að vera í eigu rótar og vera ham 644 eða 600 og þú ættir að keyra þetta handrit á hverjum degi eða svo. Handritið hér fyrir neðan er sett upp sem insmod_ksymoops_clean .

Grunnupplýsingar til að vita

NAME

insmod - settu hleðslanlegt kjarna mát

Sýnishorn

insmod [-fhkLmnpqrsSvVxXyYN] [ -a persist_name ] [-o module_name ] [-O blob_name ] [-P forskeyti ] mát [ tákn = gildi ...]