Command Linux / Unix: insmod

Mae'r insmod gorchymyn Linux / Unix yn gosod modiwl y gellir ei lwytho yn y cnewyllyn rhedeg. mae insmod yn ceisio cysylltu modiwl i'r cnewyllyn rhedeg trwy ddatrys pob symbolau o fwrdd symbol y cnewyllyn sydd wedi'i allforio.

Os rhoddir enw'r ffeil modiwl heb gyfeiriaduron neu estyniad, bydd insmod yn chwilio am y modiwl mewn rhai cyfeirlyfrau diofyn cyffredin. Gellir defnyddio'r MODPATH newidyn amgylcheddol i orchymyn y rhagosodiad hwn. Os oes ffeil cyfluniad modiwl fel /etc/modules.conf yn bodoli, bydd yn goresgyn y llwybrau a ddiffinnir yn MODPATH .

Gellir defnyddio'r MODULECONF newidyn amgylcheddol hefyd i ddewis ffeil ffurfweddu gwahanol o'r default /etc/modules.conf (neu /etc/conf.modules ( deprecated )). Bydd y newidyn amgylchedd hwn yn goresgyn yr holl ddiffiniadau uchod.

Pan osodir newidyn amgylchedd UNAME_MACHINE , bydd modutils yn defnyddio ei werth yn hytrach na maes y peiriant o'r syscall uname (). Defnyddir hyn yn bennaf pan fyddwch yn llunio modiwlau 64-bit mewn gofod defnyddiwr 32-bit neu i'r gwrthwyneb, gosod UNAME_MACHINE i fath y modiwlau. Nid yw'r modiwlau presennol yn cefnogi modd traws-adeiladu llawn ar gyfer modiwlau, mae'n gyfyngedig i ddewis rhwng fersiynau 32- a 64-bit o'r pensaernïaeth llety.

Dewisiadau

-e persist_name , --persist = persist_name

Yn pennu ble mae unrhyw ddata parhaus ar gyfer y modiwl yn cael ei ddarllen ar lwyth ac wedi'i ysgrifennu ato pan ddadlwythir cychwyniad y modiwl hwn. Anwybyddir yr opsiwn hwn yn dawel os nad oes gan y modiwl ddata parhaus. Darllenir data parhaus yn unig gan insmod os yw'r opsiwn hwn yn bresennol, nid yw insmod rhagosodedig yn prosesu data parhaus.

Fel ffurf llaw , mae "insmod" ( " string " ) yn cael ei ddehongli gan insmod fel gwerth persistdir fel y'i diffinnir yn modiwlau.conf , ac yna enw ffeil y modiwl sy'n berthynol i'r llwybr chwilio modiwl y cafwyd hyd iddo, llai tracio ".gz", ".o" neu ".mod". Os yw modules.conf yn pennu " persistdir = " (hy mae persistdir yn faes gwag), yna anwybyddir y ffurflen fer hon hon yn dawel. (Gweler modiwlau.conf (5).)

-f , --force

Ceisiwch lwythi'r modiwl hyd yn oed os nad yw'r fersiwn o'r cnewyllyn rhedeg a fersiwn y cnewyllyn y cafodd y modiwl ei gysoni ar ei gyfer. Mae hyn ond yn goresgyn gwiriad fersiwn y cnewyllyn, nid oes ganddo unrhyw effaith ar wiriadau enwau symbol. Os nad yw'r enwau symbol yn y modiwl yn cydweddu â'r cnewyllyn yna does dim modd i orfodi insmod i lwytho'r modiwl.

-h , - help

Dangoswch grynodeb o opsiynau ac ymadael ar unwaith.

-k , --autoclean

Gosodwch y faner auto-lan ar y modiwl. Bydd y faner hon yn cael ei ddefnyddio gan kerneld (8) i gael gwared â modiwlau nad ydynt wedi'u defnyddio mewn cyfnod o amser - fel arfer un munud.

-L , --lock

Defnyddiwch ddiadell (2) i atal llwythi ar yr un pryd o'r un modiwl.

-m , -map

Allbwn map llwyth ar stdout, gan ei gwneud hi'n haws dadfygio'r modiwl os bydd banig cnewyllyn.

-n , - nôl

Rhediad ffug, gwnewch popeth ac eithrio llwythwch y modiwl i'r cnewyllyn. Os gofynnir amdano gan -m neu -O , bydd y rhedeg yn cynhyrchu map neu ffeil blob. Gan nad yw'r modiwl wedi'i lwytho, nid yw'r cyfeiriad llwyth cnewyllyn go iawn yn anhysbys felly mae'r map a'r ffeil blob yn seiliedig ar gyfeiriad llwyth mympwyol 0x12340000.

-o module_name , --name = module_name

Yn aneglur enwi'r modiwl, yn hytrach na chanfod yr enw o enw sylfaen y ffeil gwrthrych ffynhonnell.

-O blob_name , --blob = blob_name

Arbedwch y gwrthrych deuaidd yn blob_name . Y canlyniad yw blob deuaidd (dim penawdau ELF) sy'n dangos yn union yr hyn sy'n cael ei lwytho i mewn i'r cnewyllyn ar ôl trin ac adleoli'r adran. Dewis -m argymhellir i gael map o'r gwrthrych.

-p , --probe

Profwch y modiwl i weld a ellid ei lwytho'n llwyddiannus . Mae hyn yn cynnwys lleoli ffeil y gwrthrych yn llwybr y modiwl, gwirio rhifau fersiwn, a datrys symbolau. Nid yw'n gwirio'r adleoli nac nid yw'n cynhyrchu map neu ffeil blob.

-P rhagddodiad , --prefix = rhagddodiad

Gellir defnyddio'r opsiwn hwn gyda modiwlau fersiwn ar gyfer CRhT neu gnewyllyn bigmem, gan fod rhagodyn ychwanegol wedi'i ychwanegu at fodentau o'r fath yn eu henwau symbolau. Os cafodd y cnewyllyn ei hadeiladu gyda fersiynau symbol yna bydd insmod yn tynnu'r rhagddodiad yn awtomatig o'r diffiniad o "get_module_symbol" neu "inter_module_get", y mae'n rhaid i un ohonynt fodoli mewn unrhyw gnewyllyn sy'n cefnogi modiwlau. Os nad oes gan y cnewyllyn fersiynau symbolaidd ond fe adeiladwyd y modiwl gyda fersiynau symbol yna rhaid i'r defnyddiwr gyflenwi -P .

-q , - quiet

Peidiwch â phrintio rhestr o unrhyw symbolau nas datryswyd. Peidiwch â chwyno am anghytuno fersiwn. Dim ond yn y statws gadael o insmod y bydd y broblem yn cael ei adlewyrchu.

-r , - gwreiddiau

Mae rhai defnyddwyr yn llunio modiwlau dan ddefnyddiwr nad ydynt yn gwreiddiau, yna gosodwch y modiwlau fel gwreiddiau. Gall y broses hon adael y modiwlau sy'n eiddo i'r rhai nad ydynt yn defnyddio gwreiddiau, er bod y cyfeiriadur modiwlau yn eiddo i'r gwreiddyn. Os caiff y defnyddiwr di-wraidd ei gyfaddawdu, gall intrudwr drosysgrifennu modiwlau presennol sy'n eiddo i'r defnyddiwr hwnnw a defnyddio'r amlygiad hwn i gychwyn i fyny at fynedfa gwreiddiau.

Yn ddiofyn, bydd modutils yn gwrthod ymdrechion i ddefnyddio modiwl nad yw gwreiddyn yn berchen arno. Yn nodi -r bydd yn toggle 'r siec a chaniatáu gwraidd i lwytho modiwlau nad ydynt yn berchen ar wraidd. Sylwer: gellir newid y gwerth diofyn ar gyfer gwirio gwreiddiau pan ffurfir modutils.

Mae defnyddio -r i analluogi gwirio gwreiddiau neu osod y rhagosodiad i "dim gwiriad gwreiddiol" yn amser cyfluniad yn ddatguddiad diogelwch mawr ac ni chaiff ei argymell.

-s , - syslog

Allbwn popeth i syslog (3) yn lle'r derfynell.

-S , - cymeriau pêl

Grymwch y modiwl wedi'i lwytho i gael data kallsyms , hyd yn oed os nad yw'r cnewyllyn yn ei gefnogi. Mae'r opsiwn hwn ar gyfer systemau bach lle mae'r cnewyllyn yn cael ei lwytho heb ddata kallsyms ond mae modiwlau dethol angen kallsyms ar gyfer debugging. Yr opsiwn hwn yw'r rhagosodiad ar Red Hat Linux.

-v , --verbose

Byddwch yn llafar.

-V , - gwrthrych

Dangoswch fersiwn insmod .

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

Gwnewch ac nid allforio holl symbolau allanol y modiwl, yn y drefn honno. Y rhagosodiad yw i'r symbolau gael eu hallforio. Mae'r opsiwn hwn ond yn effeithiol os nad yw'r modiwl yn allforio ei bwrdd symbolaidd dan reolaeth ei hun yn benodol, ac felly nid yw'n cael ei ddibynnu.

-Y , --symoops ; -y , --noksymoops

Gwnewch ac nid ydynt yn ychwanegu symbolau ksymoops i ksyms. Defnyddir y symbolau hyn gan ksymoops i ddarparu gwell dadfeddiant os oes Oops yn y modiwl hwn. Y rhagosodiad yw diffinio'r symbolau ksymoops . Mae'r opsiwn hwn yn annibynnol ar yr opsiynau -X / -x .

Mae symbolau ksymoops yn ychwanegu oddeutu 260 bytes fesul modiwl wedi'i lwytho. Oni bai eich bod yn wirioneddol fyr ar ofod cnewyllyn ac yn ceisio lleihau ksyms i'w faint lleiafswm, cymerwch y rhagosodiad a chael mwy o wybodaeth gywir Oops debugging. Mae gofyn i symbolau ksymoops arbed data modiwl parhaus.

-N , - rhiferig-yn unig

Gwiriwch ran rhifol y fersiwn modiwl yn unig yn erbyn y fersiwn cnewyllyn, hy anwybyddwch DYSGU wrth benderfynu a yw modiwl yn perthyn i gnewyllyn. Mae'r faner hon wedi'i osod yn awtomatig ar gyfer cnewyllyn 2.5 ymlaen, mae'n ddewisol ar gyfer cnewyllyn cynharach.

Paramedrau Modiwl

Mae rhai modiwlau yn derbyn paramedrau amser llwyth i addasu eu gweithrediad. Mae'r paramedrau hyn yn aml yn borthladd I / O a rhifau IRQ sy'n amrywio o beiriant i beiriant ac ni ellir eu pennu o'r caledwedd.

Mewn modiwlau a adeiladwyd ar gyfer cnewyllyn cyfres 2.0, gellir trin unrhyw symbylydd integreidd neu bwyntydd cymeriad fel paramedr a'i addasu. Dechrau yn y cnewyllyn cyfres 2.1, caiff symbolau eu marcio'n benodol fel paramedrau fel y gellir newid gwerthoedd penodol yn unig. At hynny, darperir gwybodaeth debyg ar gyfer gwirio'r gwerthoedd a ddarperir ar amser llwyth.

Yn achos cyfanrifau, gall pob gwerthoedd fod mewn degol, octal neu hexadecimal la C: 17, 021 neu 0x11. Mae elfennau cyfres yn dilyn dilyniant penodedig gan gymas. Gellir osgoi elfennau trwy hepgor y gwerth.

Mewn modiwlau cyfres 2.0, ystyrir gwerthoedd nad ydynt yn dechrau gyda nifer o linynnau. Dechrau yn 2.1, mae gwybodaeth math y paramedr yn nodi a ddylid dehongli'r gwerth fel llinyn. Os yw'r gwerth yn dechrau gyda dyfynbrisiau dwbl ( " ), caiff y llinyn ei ddehongli fel yn C, dilyniannau dianc a phawb. Nodwch fod angen i'r dyfyniadau eu hunain gael eu diogelu rhag dehongliad cregyn.

Modiwlau a Symbolau Trwyddedig GPL

Gan ddechrau gyda chnewyllyn 2.4.10, dylai fodiwlau â llinyn trwydded, wedi'u diffinio gan ddefnyddio MODULE_LICENSE () . Cydnabyddir nifer o linynnau fel GPL sy'n gydnaws; mae unrhyw linyn drwydded arall neu unrhyw drwydded o gwbl yn golygu bod y modiwl yn cael ei drin fel perchennog.

Os bydd y cnewyllyn yn cefnogi'r faner / proc / sys / kernel / tainted yna yna bydd insmod NEU y faner wedi'i chwalu â '1' wrth lwytho modiwl heb drwydded GPL. Rhoddir rhybudd os bydd y cnewyllyn yn cefnogi taintio a bod modiwl yn cael ei lwytho heb drwydded. Rhoddir rhybudd bob amser ar gyfer modiwlau sydd â MODULE_LICENSE () nad yw'n GPL yn gydnaws, hyd yn oed ar gnewyllyn hŷn nad ydynt yn cefnogi tainting. Mae hyn yn lleihau rhybuddion pan ddefnyddir modutils newydd ar gnewyllyn hŷn.

Bydd modd insmod -f (force) NEU y faner wedi'i chwalu â '2' ar gnewyllyn sy'n cefnogi tainting. Mae bob amser yn peri rhybudd.

Mae rhai datblygwyr cnewyllyn yn ei gwneud yn ofynnol i symbolau a allforir gan eu cod ond gael eu defnyddio gan fodiwlau gyda thrwydded GPL sy'n gydnaws. Caiff y symbolau hyn eu hallforio gan EXPORT_SYMBOL_GPL yn lle'r EXPORT_SYMBOL arferol. Dim ond modiwlau sydd â thrwydded GPL sy'n cael eu hallforio gan y cnewyllyn a chan fodiwlau eraill yn unig sy'n weladwy gyda thrwydded GPL, mae'r symbolau hyn yn ymddangos mewn / proc / ksyms gyda rhagddodiad ' GPLONLY_ '. mae insmod yn anwybyddu'r rhagdybiad GPLONLY_ ar symbolau wrth lwytho modiwl trwyddedig GPL fel bod y modiwl yn cyfeirio at yr enw symbol arferol, heb y rhagddodiad. Nid yw symbolau GPL yn unig ar gael i fodiwlau heb drwydded GPL sy'n gydnaws, mae hyn yn cynnwys modiwlau heb drwydded o gwbl.

Cymorth Ksymoops

Er mwyn cynorthwyo gyda dadfygio Opsiynau cnewyllyn wrth ddefnyddio modiwlau, mae insmod yn rhagosod i ychwanegu rhai symbolau i ksyms, gweler yr opsiwn -Y . Mae'r symbolau hyn yn dechrau gyda __insmod_modulename_ . Mae'n ofynnol i'r modiwlameg wneud y symbolau yn unigryw. Mae'n gyfreithiol lwytho'r un gwrthrych fwy nag unwaith o dan enwau modiwl gwahanol. Ar hyn o bryd, symbolau wedi'u diffinio yw:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

gwrthrych yw enw'r ffeil a lwythwyd y gwrthrych. Mae hyn yn sicrhau bod ksymoops yn gallu cyfateb y cod i'r gwrthrych cywir. mtime yw'r amserlen olaf wedi'i addasu ar y ffeil honno yn hecs, dim os methwyd stat. Fersiwn yw'r fersiwn cnewyllyn y cafodd y modiwl ei lunio, -1 os nad oes fersiwn ar gael. Mae gan y symbol _O yr un cyfeiriad cyntaf â phennawd y modiwl.

__insmod_modulename_Ssectionname_Llength

Mae'r symbol hwn yn ymddangos ar ddechrau adrannau ELF dethol, ar hyn o bryd .text, .rodata, .data, .bss a .sbss. Dim ond os oes gan yr adran faint nad yw'n sero. enw'r adran yw enw'r adran ELF, hyd yw hyd yr adran yn degolol. Mae'r symbolau hyn yn helpu cyfeiriadau map ksymoops i adrannau pan nad oes symbolau ar gael.

__insmod_modulename_Ppersistent_filename

Crëwyd yn unig gan insmod os oes gan y modiwl un neu fwy o baramedrau sydd wedi'u marcio fel data parhaus a bod enw ffeil i arbed data parhaus (gweler -e , uchod) ar gael.

Y broblem arall gyda chnewyllyn debugging Oops mewn modiwlau yw y gall cynnwys / proc / ksyms a / proc / modiwlau newid rhwng yr Oops a phryd y byddwch yn prosesu'r ffeil log. Er mwyn helpu i oresgyn y broblem hon, os yw'r cyfeiriadur / var / log / ksymoops yn bodoli, bydd insmod a rmmod yn awtomatig yn copi / proc / ksyms a / proc / modiwlau i / var / log / ksymoops gyda rhagddodiad `date +% Y% m % d% H% M% S`. Gall gweinyddwr y system ddweud wrth ksymoops pa ffeiliau cipolwg i'w defnyddio wrth ddadgofio Oops. Nid oes newid i analluoga'r copi awtomatig hwn. Os nad ydych am iddo ddigwydd, peidiwch â chreu / var / log / ksymoops . Os yw'r cyfeiriadur hwnnw'n bodoli, dylai fod yn berchen ar y gwreiddyn a bod yn 644 neu 600 yn y dull hwn a dylech redeg y sgript hon bob dydd neu fwy. Mae'r sgript isod wedi'i osod fel insmod_ksymoops_clean .

Gwybodaeth Sylfaenol i'w Gwybod

ENW

insmod - gosod modiwl cnewyllyn llwythadwy

SYNOPSIS

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o module_name ] [-O blob_name ] [-P prefix ] modiwl [ symbol = value ...]