Linux / Unix Kmand: insmod

Il-kmand tal-Linux / Unix insmod jinstalla modulu li jista 'jitgħabba fil-kernel running. insmod jipprova jgħaqqad modulu mal-kernel running billi jsolvi s-simboli kollha mit-tabella tas-simboli esportati tal-kernel.

Jekk l-isem tal-fajl tal-modulu jingħata mingħajr direttorji jew estensjoni, insmod se jfittex il-modulu f'xi direttorji default komuni. Il- MODPATH varjabbli ta 'l-ambjent jista' jintuża biex jissupera din in-nuqqas. Jekk fajl ta 'konfigurazzjoni tal-modulu bħal /etc/modules.conf jeżisti, se jneħħi t -triq definita f'PODPATH .

Il-varjabbli ta 'l-ambjent MODULECONF jista' jintuża wkoll biex jintgħażel fajl ta 'konfigurazzjoni differenti mill-default /etc/modules.conf (jew /etc/conf.modules (deprecated)). Din il-varjabbli ta 'l-ambjent se tneħħi d-definizzjonijiet ta' hawn fuq.

Meta l-varjabbli ta 'l-ambjent UNAME_MACHINE tiġi ssettjata, modutils jużaw il-valur tiegħu minflok il-qasam tal-magna mill-uname () syscall. Dan huwa prinċipalment ta 'użu meta tkun qed tiġbor moduli ta' 64 bit fl-ispazju ta 'l-utent ta' 32 bit jew viċe versa, issettja UNAME_MACHINE għat-tip tal-moduli. Il-modutils kurrenti ma jappoġġjawx il-mod ta 'mibni b'mod sħiħ għall-moduli, huwa limitat għall-għażla bejn verżjonijiet ta' 32 u 64 bit ta 'l-arkitettura ospitanti.

Għażliet

-e persist_name , --persist = persist_name

Jispeċifika fejn tinqara kwalunkwe dejta persistenti għall-modulu mit-tagħbija u miktuba meta din l-istantjar tal-modulu tinħatt. Din l-għażla hija injorata skiet jekk il-modulu m'għandux data persistenti. Dejta persistenti tinqara biss minn insmod jekk din l-għażla tkun preżenti, b'mod awtomatiku, ma tipproċessax data persistenti.

Bħala forma ta 'struttura , -e "" (sekwenza vojta) hija interpretata minn insmod bħala l-valur tal- persistdir kif definit f'moduli. Konf , segwit mill-isem tal-modulu relattiv għall-modulu tat-tfittxija tal-modulu nstab fi, nieqes kwalunkwe trailing ".gz", ".o" jew ".mod". Jekk moduli.conf jispeċifika " persistdir = " (jiġifieri persistdir huwa qasam vojt) allura din il-formola ta ' stejdus tinjora skiet. (Ara moduli.conf (5).)

-f , --force

L-attentat tat-tagħbija tal-modulu anki jekk il-verżjoni tal-kernel operattiv u l-verżjoni tal-kernel li għalihom il-modulu ġie kkumpilat ma jaqblux. Dan biss jipprevali l-kontroll tal-verżjoni tal-għadma, ma għandu l-ebda effett fuq il-kontrolli tal-ismijiet tas-simboli. Jekk l-ismijiet tas-simboli fil-modulu ma jikkorrispondux mal-kernel allura m'hemm l-ebda mod biex tinsaq il-modulu.

-h , --help

Uri sommarju tal-għażliet u ħruġ immedjat.

-k , --autoclean

Issettja l-bandiera awtomatika fuq il-modulu. Din il-bandiera tintuża minn kerneld (8) biex tneħħi moduli li ma ntużawx f'xi perjodu ta 'żmien - ġeneralment minuta.

-L , --lock

Uża qatgħa (2) biex tevita tagħbijiet simultanji ta 'l-istess modulu.

-m , --map

Daħħal mappa tat-tagħbija fuq stdout, u tagħmilha aktar faċli li titħassar il-modulu fil-każ ta 'paniku tal-għadma.

-n , --noload

Run manikin, tagħmel dak kollu ħlief it-tagħbija tal-modulu fil-kernel. Jekk mitlub minn -m jew -O , il-ġirja tipproduċi mappa jew blob file. Peress li l-modulu ma jitgħabbiex, l-indirizz tat-tagħbija tal-qalba reali mhux magħruf hekk il-mappa u l-fajl blob huma bbażati fuq indirizz ta 'tagħbija arbitrarja ta' 0x12340000.

-o module_name , --name = module_name

Indika b'mod espliċitu l-modulu, aktar milli joħroġ l-isem mill-isem bażi tal-fajl tal-oġġett tas-sors.

-O blob_name , --blob = blob_name

Ħlief l-oġġett binarju blob_name . Ir-riżultat huwa blob binari (l-ebda intestatura ELF) li turi eżattament dak li huwa mgħobbi fil-kernel wara manipulazzjoni tas-sezzjoni u rilokazzjoni. L-għażla -m hija rrakkomandata biex tikseb mappa ta 'l-oġġett.

-p , --probe

Prova l-modulu biex tara jekk setgħetx titgħabba b'suċċess . Dan jinkludi lokalizzazzjoni tal-fajl tal-oġġett fil-mogħdija tal-modulu, iċċekkja n-numri tal-verżjoni, u s-simboli tar-riżoluzzjoni. Ma tikkontrollax ir-rilokazzjonijiet u lanqas tipproduċi mappa jew fajl blob.

Il- prefiss P. , --prefix = il- prefiss

Din l-għażla tista 'tintuża b'moduli verżjoni għal kernel SMP jew bigmem, peress li dawn il-moduli għandhom prefiss addizzjonali miżjud fl-ismijiet simboli tagħhom. Jekk il-kernel inbniet b'verżjonijiet simboli allura insmod awtomatikament estratt il-prefiss mid-definizzjoni ta '"get_module_symbol" jew "inter_module_get", li waħda minnhom għandha teżisti fi kwalunkwe kernel li jappoġġja moduli. Jekk il-kernel m'għandux verżjonijiet ta 'simbolu iżda l-modulu nbena b'verżjonijiet tas-simbolu allura l-utent irid jipprovdi -P .

-q , --quiet

Tippreżentax lista ta 'xi simboli mhux solvuti. M'għandekx tilmenta dwar in-nuqqas ta 'qbil fil-verżjoni. Il-problema se tkun riflessa biss fl-istatus ta 'ħruġ ta' insmod .

-r , - għerq

Uħud mill-utenti jikkumpilaw moduli taħt userid mhux għeruq imbagħad jinstallaw il-moduli bħala għeruq. Dan il-proċess jista 'jħalli l-moduli li huma proprjetà ta' userid mhux għerq, anki jekk id-direttorju tal-moduli huwa l-għerq. Jekk l-userid mhux għerq jiġi kompromess, intruż jista 'jissostitwixxi l-moduli eżistenti li jkunu proprjetà ta' dak l-userid u juża din l-espożizzjoni għall-bootstrap sa l-aċċess għall-għeruq.

B'mod awtomatiku, modutils jirrifjutaw it-tentattivi li jużaw modulu li mhuwiex fil-pussess tal-għeruq. L-ispeċifikar -r ser jibdel il-kontroll u jippermetti lill-għeruq tagħbija ta 'moduli li mhumiex fil-pussess ta' l-għeruq. Nota: il-valur awtomatiku għall-kontroll tal-għeruq jista 'jinbidel meta l-modutils ikun konfigurat.

L-użu ta '-r biex tiġi invalidata l-verifika ta' l-għeruq jew l-issettjar tal-inadempjenza għal "l-ebda kontroll ta 'l-għeruq" fil-ħin tal-konfigurazzjoni huwa espożizzjoni ewlenija għas-sigurtà u mhux rakkomandat

-s , - syslog

Oħroġ kollox lis- syslog (3) minflok it-terminal.

-S , --kallsym

Tinforza l- modulu mgħobbi biex ikollu data tal- bejta , anke jekk il-qalba ma tappoġġjahiex. Din l-għażla hija għal sistemi żgħar fejn il-kernel jitgħabba mingħajr data tal- kallsimi iżda l-moduli magħżula jeħtieġu s- swaba ' għall-debugging. Din l-għażla hija l-inadempjenza fuq Red Hat Linux.

-v , --verbose

Kun verboso.

-V , --verżjoni

Uri l-verżjoni ta ' insmod .

-X , --exportazzjoni ; -x , --noexport

Agħmel u ma jesportawx is-simboli esterni kollha tal-modulu, rispettivament. L-inadempjenza hi li s-simboli jiġu esportati. Din l-għażla hija effettiva biss jekk il-modulu ma jesportax espliċitament it-tabella tas-simboli kkontrollata tiegħu stess, u għalhekk huwa deprezzat.

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

Agħmel u ma żidux simboli ta 'ksymoops għal ksyms. Dawn is-simboli jintużaw minn ksymoops biex jipprovdu debugging aħjar jekk ikun hemm Oops f'dan il-modulu. L-inadempjenza hija li s-simboli ksymoops jiġu definiti. Din l-għażla hija indipendenti mill-għażliet -X / -x .

Is- simboli ta ' kymoops iżidu madwar 260 byte għal kull modulu mgħobbi. Sakemm ma tkunx verament qasir fuq l-ispazju tal-kernel u qed tipprova tnaqqas il-ksims għad-daqs minimu tagħha, tieħu l-inadempjenza u tikseb iżjed debitu preċiż ta 'Oops. Is- simboli tal- ksyops huma meħtieġa biex jiffrankaw data ta 'modulu persistenti.

-N , --numeric-only

Iċċekkja biss il-parti numerika tal-verżjoni tal-modulu kontra l-verżjoni tal-qalba, jiġifieri tinjora EXTRAVERSION meta tiddeċiedi jekk modulu jappartjeni għal kernel. Din il-bandiera hija awtomatikament issettjata għall-kernel 2.5 'il quddiem, mhix obbligatorja għal qlub preċedenti.

Parametri tal-Modulu

Xi moduli jaċċettaw parametri ta 'ħin tat-tagħbija biex jippersonalizzaw l-operat tagħhom. Dawn il-parametri ta 'spiss huma port I / O u numri IRQ li jvarjaw minn magna għall-oħra u ma jistgħux jiġu ddeterminati mill-hardware.

F'moduli mibnija għal qlub ta 'serje 2.0, kwalunkwe simbolu tal-pointer ta' l-eqreb numru sħiħ jew ta 'karattri jista' jiġi ttrattat bħala parametru u modifikat. Bidu fil-qlub tas-serje 2.1, is-simboli huma mmarkati espliċitament bħala parametri sabiex valuri speċifiċi biss jistgħu jinbidlu. Barra minn hekk, l-informazzjoni tat-tip hija pprovduta għall-iċċekkjar tal-valuri pprovduti fil-ħin tat-tagħbija.

Fil-każ tan-numri interi, il-valuri kollha jistgħu jkunu deċimali, octal jew hexadeċimali f'C: 17, 021 jew 0x11. L-elementi tal-matriċi huma sekwenza speċifikata separata bil-virgoli. L-elementi jistgħu jinqabżu billi jitħalla barra l-valur.

Fil-moduli tas-serje 2.0, valuri li ma jibdewx b'numru huma meqjusa bħala kordi. Mill-bidu 2.1, l-informazzjoni tat-tip tal-parametru tindika jekk għandhiex tinterpreta l-valur bħala sekwenza. Jekk il-valur jibda bil-kwotazzjonijiet doppji ( " ), is-sekwenza hija interpretata bħala f'C, sekwenzi tal-ħarba u kollha. Innota li mill-qoxra fil-pront, il-kwotazzjonijiet infushom jistgħu jkunu protetti mill-interpretazzjoni tal-qoxra.

Moduli u Simboli Liċenzjati GPL

Tibda bil-kernel 2.4.10, il-moduli għandu jkollhom sekwenza tal-liċenzja, definita permezz ta ' MODULE_LICENSE () . Diversi kordi huma rikonoxxuti bħala GPL kompatibbli; kwalunkwe sekwenza ta 'liċenzja oħra jew l-ebda liċenzja ma jfissirx li l-modulu huwa trattat bħala proprjetarju.

Jekk il-kernel jappoġġja l- pakkett / proc / sys / kernel / imċappas, imbagħad l- insmod se JEW il-bandiera mċarrta b '"1" meta tkun qed tagħżel modulu mingħajr liċenzja GPL. Twissija tinħareġ jekk il-kernel jappoġġja t-tnixxif u modulu jitgħabba mingħajr liċenzja. Twissija dejjem tinħareġ għal moduli li għandhom MODULE_LICENSE () li mhix GPL kompatibbli, anki fuq qlub anzjani li ma jappoġġjawx it-tindif. Dan jimminimizza t-twissijiet meta modutils ġodda jintużaw fuq qlub antiki.

Il-mod insmod -f (forza) se JEW il-bandiera ttikkettjata b '"2" fuq qlub li jappoġġjaw it-tindif. Dejjem toħroġ twissija.

Xi żviluppaturi tal-kernel jeħtieġu li s-simboli esportati bil-kodiċi tagħhom għandhom jintużaw biss minn moduli b'liċenzja kompatibbli mal-GPL. Dawn is-simboli huma esportati minn EXPORT_SYMBOL_GPL minflok EXPORT_SYMBOL normali. GPL-only simboli esportati mill-kernel u minn moduli oħra huma viżibbli biss għal moduli b'liċenzja kompatibbli mal-GPL, dawn is-simboli jidhru fi / proc / ksyms bi prefiss ta '' GPLONLY_ '. insmod jinjora l-prefiss GPLONLY_ fuq is-simboli waqt it-tagħbija ta 'modulu liċenzjat GPL hekk il-modulu jirreferi biss għall-isem simboliku normali, mingħajr il-prefiss. L-uniċi simboli tal-GPL mhumiex disponibbli għall-moduli mingħajr liċenzja kompatibbli mal-GPL, dan jinkludi moduli mingħajr liċenzja.

Assistenza ta 'Ksymoops

Biex tassisti bid-debugging tal-kernel Oops meta tuża moduli, insmod tbassar biex iżżid xi simboli ma 'ksyms, ara l-għażla -Y . Dawn is-simboli jibdew bi __insmod_modulename_ . Il- modulename huwa meħtieġ biex is-simboli jsiru uniċi. Huwa legali li l-istess oġġett jinġabar aktar minn darba taħt ismijiet ta 'moduli differenti. Bħalissa, simboli definiti huma:

__insmod_modulename_Oobjectfile_MmtimetimeVerżjoni

fajl ta 'l-oġġetti huwa l-isem tal-fajl li l-oġġett kien mgħobbi. Dan jiżgura li ksymoops jista 'jaqbel mal-kodiċi mal-oġġett korrett. mtime huwa l-aħħar timestamp modifikat fuq dak il-fajl f'hex, żero jekk stat falla. verżjoni hija l-verżjoni tal-qalba li l-modulu ġie kkumpilat għal, -1 jekk l-ebda verżjoni mhija disponibbli. Is-simbolu _O għandu l-istess indirizz tal-bidu bħall-header tal-modulu.

__insmod_modulename_Ssectionname_Llength

Dan is-simbolu jidher fil-bidu tas-sezzjonijiet ELF magħżula, bħalissa. Test, .rodata, .data, .bss u .sbss. Jidher biss jekk is-sezzjoni m'għandhiex daqs żero. sectionname huwa l-isem tat-taqsima ELF, it-tul huwa t-tul tas-sezzjoni f'deċiżjoni . Dawn is-simboli jgħinu lill-ksymoops jindirizzaw il-mappa għal taqsimiet meta l-ebda simbolu ma jkun disponibbli.

__insmod_modulename_Persistent_filename

Mħollma biss minn insmod jekk il-modulu għandu parametru wieħed jew aktar li huma mmarkati bħala data persistenti u isem tal - fajl biex issalva data persistenti (ara -e , hawn fuq).

Il-problema l-oħra bil-debugging kernel Oops fil-moduli hija li l-kontenut ta ' / proc / ksyms u / proc / moduli jista' jinbidel bejn Oops u meta tipproċessa l-fajl log. Biex tgħin tegħleb din il-problema, jekk id-direttorju / var / log / ksymoops teżisti imbagħad insmod u rmmod awtomatikament kopja / proc / ksyms u / proc / moduli għal / var / log / ksymoops b'fedile ta '' data +% Y% m % d% H% M% S ". L-amministratur tas-sistema jista 'jgħid lil ksymoops liema fajls ta' l-istampa li għandhom jintużaw meta tkun debugging Oops. M'hemmx bidla biex titneħħa din il-kopja awtomatika. Jekk ma tridx li sseħħ, ma toħloqx / var / log / ksymoops . Jekk dak id-direttorju jeżisti, għandu jkun fil-pussess tal-għerq u jkun il-mod 644 jew 600 u għandek tmexxi din l-iskript kuljum jew le. L-iskript hawn taħt huwa installat bħala insmod_ksymoops_clean .

Informazzjoni Bażika Tkun Taf

ISEM

insmod - tinstalla l-modulu tal-qalba li tista 'titgħabba

SINOPSI

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o module_name ] [-O blob_name ] [-P prefiss ] modulu [ simbolu = valur ...]