Linux / Unix- ի հրահանգը insmod- ն տեղադրում է բեռնվող մոդուլ `վազող միջուկում: insmod- ն փորձում է մի մոդուլի մեջ վազող միջուկը կապել `լուծելով բոլոր նիշերը միջուկի արտահանվող խորհրդանիշ սեղանից:
Եթե մոդուլի ֆայլի անունը տրվում է առանց տեղեկագրքի կամ ընդլայնման, insmod- ը կգտնի մոդուլը որոշ ընդհանուր ստանդարտ դիրեկտորիաներում: MODPATH- ի շրջակա միջավայրի փոփոխությունը կարող է օգտագործվել կանխելու համար այս կանխադրվածը: Եթե գոյություն ունի /etc/modules.conf- ի մոդուլի կազմաձեւման ֆայլը, ապա այն կվերանվանվի MODPATH- ում սահմանված ուղիները :
MODULECONF- ի շրջակա միջավայրի փոփոխականը կարող է օգտագործվել նաեւ այլ ձեւափոխման ֆայլ ընտրելու համար, /etc/modules.conf- ից (կամ /etc/conf.modules ( չպահված )): Այս շրջակա միջավայրի փոփոխականները կվերանվանեն վերը նշված բոլոր սահմանումները:
Երբ UNAME_MACHINE շրջակա միջավայրի փոփոխական է սահմանվել, modutils կօգտագործի իր արժեքը մեքենայի դաշտի փոխարեն uname () syscall- ից: Դա հիմնականում օգտագործվում է այն ժամանակ, երբ 64-բիթային մոդուլներ կազմեք 32-բիթանոց օգտագործողի տարածքում կամ հակառակը, սահմանեք UNAME_MACHINE- ը մոդուլների տեսակից: Ընթացիկ մոդուտիլները չեն աջակցում մոդուլների համար խաչաձեւ կառուցվածքի ամբողջական տարբերակ, այն սահմանափակվում է հյուրընկալ ճարտարապետության 32- եւ 64-բիթանոց տարբերակների միջեւ:
Ընտրանքներ
-e persist_name , --persist = persist_name
Սահմանում է, որ մոդուլի համար ցանկացած մշտական տվյալներ կարդում է բեռնվածությունից եւ գրված է, երբ մոդուլի այս ակնարկը բեռնաթափվում է: Այս տարբերակը լուռ անտեսվում է, եթե մոդուլը չունի համառ տվյալներ: Անկայուն տվյալները միայն կարդացվում են insmod- ի դեպքում, եթե այս տարբերակը ներկա է, ըստ էության, insmod- ը չի մշակում կայուն տվյալներ:
Որպես ստեղնաշարի ձեւ , «-» (դատարկ տող) մեկնաբանվում է « insmod» - ի կողմից ` որպես modews.conf- ի սահմաններում պահպանվող արժեքը, որին հաջորդում է այն մոդուլի ֆայլը, որը հայտնաբերվել է մոդուլի որոնման ճանապարհին, trailing ".gz", ".o" կամ ".mod": Եթե modules.conf- ը պարունակում է " persistdir = " (այսինքն, persistdir- ն դատարկ դաշտ), ապա այս ստեղնաշարի ձեւը լուռ անտեսվում է: (Տես modules.conf (5):):
-ֆ , - ուժ
Փորձեք բեռնումը մոդուլը, նույնիսկ եթե վազքի միջուկի տարբերակը եւ միջուկի տարբերակը, որի մոդուլը կազմվել է, չեն համապատասխանում: Սա միայն գերազանցում է միջուկի տարբերակի ստուգումը, այն որեւէ ազդեցություն չունի խորհրդանշանի անվանումների վրա: Եթե խորհրդանիշների անունները մոդուլում չեն համապատասխանում միջուկին, ապա ոչ մի եղանակ չկա ստիպել insmod- ին բեռնել մոդուլը:
-հ , - օգնեք
Ցուցադրել ընտրանքների ամփոփ նկարագիրը եւ անմիջապես ելքը:
-k , - autoclean
Ստեղծեք ավտոմատ մաքուր դրոշը մոդուլի վրա: Այս դրոշը կօգտագործվի kerneld (8) կողմից, հեռացնելու մոդուլներ, որոնք որոշ ժամանակահատվածում չեն օգտագործվել, սովորաբար մեկ րոպե:
-Լ , - լոկ
Օգտագործեք հոտը (2) `նույն մոդուլի միաժամանակյա բեռների կանխարգելման համար:
-մ , - նկարագրություն
Ձեռք բերեք բեռի քարտեզը stdout- ում, դարձնելով այն ավելի հեշտ լուծելու միջուկը խնձորի միջադեպի դեպքում:
-ն , - անսահմանափակ
Dummy վազում, ամեն ինչ արեք, բացի բեռնված մոդուլը միջուկում: Եթե -m կամ -O- ի կողմից խնդրվել է, ապա վազքը կստեղծի քարտեզ կամ բլոկ ֆայլ: Քանի որ մոդուլը բեռնված չէ, իրական միջուկի բեռնվածքի հասցեն անհայտ է, այնպես որ քարտեզն ու բլոկի ֆայլը հիմնված են 0x12340000 կամայական բեռի հասցեով:
-o module_name , --name = module_name
Ակնհայտորեն անվանեք այն մոդուլը, այլ ոչ թե աղբյուրի օբյեկտի ֆայլի բազայի անունը անվանելը:
-O blob_name , --blob = blob_name
Պահել երկուական օբյեկտը blob_name- ում : Արդյունքն այն է, որ երկուական բլոկը (ոչ ELF վերնագրերը) ցույց են տալիս այն, թե ինչն է բեռնված միջուկի հատվածում մանիպուլյացիայի եւ տեղահանման արդյունքում: Option- ը խորհուրդ է տրվում ձեռք բերել օբյեկտի քարտեզ:
-p , --probe
Մխիթարել մոդուլին `տեսնել, թե արդյոք այն հաջողությամբ բեռնված է : Սա ներառում է օբյեկտի ֆայլը մոդուլի ուղու վրա տեղադրելու, տարբերակների համարները ստուգելու եւ խորհրդանիշերը լուծելու համար: Այն չի ստուգում վերաբնակեցումները, ոչ էլ որեւէ քարտեզ կամ բլոկ ֆայլ չի առաջացնում:
-P նախածանց , - prefix = նախածանց
Այս տարբերակը կարող է օգտագործվել տարբերակված մոդուլներով SMP- ի կամ bigmem միջուկի համար, քանի որ նման մոդուլները ունեն իրենց նախադրյալները իրենց խորհրդանշաններում ավելացված նախածանց: Եթե միջուկը կառուցված է խորհրդանիշ տարբերակների հետ, ապա insmod- ը ավտոմատ կերպով կթողարկի «get_module_symbol» կամ «inter_module_get» - ի սահմանման նախածանցը, որոնցից մեկը պետք է գոյություն ունենա ցանկացած միջուկում, որն աջակցում է մոդուլներ: Եթե միջուկը չունի խորհրդանշանի տարբերակ, բայց մոդուլը կառուցված է խորհրդանիշ տարբերակներով, ապա օգտագործողը պետք է ապահովի -P :
-q , --quiet
Մի տպեք որեւէ չլուծված խորհրդանիշների ցանկը: Մի բողոքեք տարբերակի անհամապատասխանության մասին: Խնդիրը միայն արտացոլվում է insmod- ի ելքի կարգավիճակում:
-ր , - արմատ
Որոշ օգտվողները օգտագործում են մոդուլներ ոչ արմատական userid- ի ներքո, ապա մոդուլները տեղադրել որպես արմատ: Այս գործընթացը կարող է թողնել ոչ արմատական օգտվողին պատկանող մոդուլները, չնայած որ մոդուլի դիրեկտորը պատկանում է արմատին: Եթե ոչ արմատական օգտագործողը վտանգված է, ինտեգրիչը կարող է վերագրել այն օգտագործողին պատկանող գոյություն ունեցող մոդուլները եւ օգտագործել այդ ազդեցությունը մինչեւ արմատ մուտք գործելու համար:
Լռելյայնորեն, modutils- ը չի հրաժարվի արմատից պատկանող մոդուլի օգտագործման փորձերից: Հստակեցնելով -r- ը անցնում է ստուգումը եւ թույլ է տալիս արմատից բեռնել բլոկները, որոնք արմատ չունեն: Նշում. Արմատային ստուգման կանխադրված արժեքը կարող է փոխվել, երբ modutils- ը կազմաձեւված է:
Արմատային ստուգումը անջատելու համար -r- ի օգտագործումը կամ կարգաբերման ժամանակ «ոչ արմատային ստուգումը» կանխադրվածը կանխորոշում է անվտանգության հիմնական սպառնալիքը եւ խորհուրդ չի տրվում:
-s , - syslog
Արդյունքում ամեն ինչ կարգին է syslog (3) տերմինալի փոխարեն:
-S , -kallsyms
Կոչված բեռնված մոդուլում, ստացականների տվյալները պետք է ունենան , նույնիսկ եթե միջուկը չի աջակցում: Այս տարբերակն այն փոքր համակարգերի համար է, որտեղ միջուկը տեղադրվում է առանց kallsyms տվյալների, բայց ընտրված մոդուլները պետք է տեղադրվեն խափանումների համար: Այս տարբերակը հանդիսանում է Red Hat Linux- ում կանխադրված:
-վ , - բերկոտ
Եղեք մանրամասն:
-Վ , - տարբերություն
Ցուցադրել insmod- ի տարբերակը:
-X , -export ; -x , - nonexport
Կատարեք եւ չեն արտահանում բոլոր մոդուլների արտաքին նիշերը: Սխալը արտահանվում է խորհրդանիշների համար: Այս տարբերակը միայն արդյունավետ է, եթե մոդուլը հստակ չի արտահանել իր սեփական վերահսկվող խորհրդանիշ սեղան եւ այդպիսով ուժը կորցրած է:
-Y , - իքսիմոոներ ; -հ , - նոքսիմոոպներ
Կիրառեք եւ ավելացրեք ksymoops- ի խորհրդանիշները ksyms- ին: Այս խորհրդանիշները օգտագործվում են ksymoops- ի կողմից , որպեսզի ավելի լավ կարգաբերում ապահովեն, եթե առկա է այս մոդուլում բացակայում: Սխալը նախատեսված է ksymoops- ի խորհրդանիշների համար: Այս տարբերակը անկախ է -X / -x տարբերակներից:
ksymoops խորհրդանիշները ավելացնում են մոտավորապես 260 բայթ մեկ բեռնված մոդուլում: Եթե դուք իսկապես կարճ է kernel տարածքում եւ փորձում են նվազեցնել ksyms իր նվազագույն չափի, վերցնել կանխադրված եւ ստանալ ավելի ճշգրիտ Oops debugging. ksymoops- ի խորհրդանիշները պահանջվում են պահպանել համառ մոդուլային տվյալները:
-N , թվային-միայն
Միայն ստուգեք մոդուլի տարբերակի թվային մասը քերելի տարբերակի դեմ, այսինքն `անտեսել EXTRAVERSION, որոշելու, թե արդյոք մի մոդուլը պատկանում է միջուկին: Այս դրոշը ավտոմատ կերպով սահմանվում է միջուկի 2.5-ի համար, այն նախընտրելի է նախնական միջուկների համար:
Մոդուլի պարամետրեր
Որոշ մոդուլներ ընդունում են բեռի ժամանակի պարամետրերը `հարմարեցնելով նրանց գործողությունները: Այս պարամետրերը հաճախ I / O նավահանգիստ եւ IRQ համարներ են, որոնք տարբերվում են մեքենայից մեքենա եւ չեն կարող որոշվել ապարատից:
2.0 շարքի միջուկների համար կառուցված մոդուլներում ցանկացած ամբողջական կամ բնութագրական ցուցիչի նշան կարող է դիտվել որպես պարամետր եւ փոփոխվել: Սկսած 2.1 շարքի միջուկները, խորհրդանշաններն ակնհայտորեն նշվում են որպես պարամետրեր, որպեսզի միայն կոնկրետ արժեքները կարող են փոխվել: Բացի այդ, տիպի տեղեկատվությունը տրամադրվում է բեռի ժամանակ տրամադրված արժեքների ստուգման համար:
Թիվ թվերի պարագայում բոլոր արժեքները կարող են լինել տասնորդական, օկտալային կամ տասնութերորդ տասնօրյակ C la C: 17, 021 կամ 0x11: Դարակի տարրերը նշվում են ստորակետերով բաժանված ստորագրերով: Elements- ը կարող է բաց թողնել արժեքը անտեսելու միջոցով:
2.0 շարքի մոդուլներում արժեքները, որոնք չեն սկսվում թվից, համարվում են տողեր: Սկսած 2.1-ում, պարամետրի տիպի տեղեկատվությունը ցույց է տալիս, թե արդյոք արժեքը մեկնաբանվում է որպես տող: Եթե արժեքը սկսվում է կրկնակի մեջբերումից ( " ), ապա տողը մեկնաբանվում է ինչպես C- ում, փախուստի հաջորդականություններից եւ բոլորից: Նշեք, որ վահանակի արագությունից կարող է պահանջվել, որ դրանք պետք է պաշտպանված լինեն shell- ի մեկնաբանությունից:
GPL լիցենզավորված մոդուլներ եւ խորհրդանիշներ
2.4.10 միջուկով սկսած մոդուլները պետք է լիցենզիա ունենան, օգտագործելով MODULE_LICENSE () : Մի քանի տողեր ճանաչվում են որպես GPL համատեղելի; որեւէ այլ լիցենզիայի լարի կամ ոչ լիցենզիա, այնուամենայնիվ, մոդուլը վերաբերվում է գույքային:
Եթե միջուկը սատարում է / proc / sys / kernel / tainted դրոշը, ապա insmod- ը կամ «1» - ն անվանում է դրոշակակիր դրոշ, առանց GPL լիցենզիայի տեղադրելու: Նախազգուշացում է տրվում, եթե միջուկն աջակցում է, եւ մոդուլը բեռնված է առանց լիցենզիայի: Նախազգուշացումը միշտ տրվում է մոդուլների համար, որոնք ունեն MODULE_LICENSE () , որը GPL- ի համատեղելի չէ, նույնիսկ հին սերվերների վրա, որոնք չեն աջակցում: Սա նվազեցնում է նախազգուշացումները, երբ նոր մոդուտիլներ օգտագործվում են ավելի հին միջուկներում:
insmod -f (ուժի) ռեժիմով կամ ոչնչացվող դրոշը կամ «2» -ը դրոշմակնիքների վրա հարձակվողների վրա: Այն միշտ էլ նախազգուշացնում է:
Որոշ սերվեր մշակողները պահանջում են, որ իրենց կոդով արտահանվող խորհրդանիշները պետք է օգտագործվեն միայն GPL- ի համատեղելի լիցենզիա ունեցող մոդուլների կողմից: Այս նշանները արտահանվում են EXPORT_SYMBOL_GPL- ի կողմից, սովորական EXPORT_SYMBOL- ի փոխարեն: GPL- ի միայն սիմվոլները, որոնք արտահանվում են միջուկով եւ այլ մոդուլներով, տեսանելի են միայն GPL- համատեղելի լիցենզիա ունեցող մոդուլներ, այս նշանները հայտնվում են / proc / ksyms- ով `' GPLONLY_ ' նախածանցով: insmod անտեսում է GPLONLY_ նախածանցը խորհրդանիշների վրա, իսկ GPL լիցենզավորված մոդուլի վրա, այնպես որ մոդուլը ուղղակիորեն վերաբերում է նորմալ խորհրդանիշին, առանց նախածանցի: GPL- ի միայն խորհրդանիշները չեն հասանելի մոդուլների համար `առանց GPL- ի համատեղելի լիցենզիայի, այսինքն` լիցենզիա չունեցող մոդուլներ:
Ksymoops Աջակցություն
Աջակցել միջուկի վրիպազերծման օջախներին, մոդուլներ օգտագործելու ժամանակ, insmod կանխորոշիչները ավելացնելու համար որոշակի խորհրդանիշներ ksyms, տես -Y տարբերակը: Այս նշանները սկսվում են __insmod_modulename_- ից : Մոդուլի անվանումը պահանջվում է, որպեսզի խորհրդանիշները եզակի լինեն: Իրավունքը նույնն է օբյեկտը մեկից ավելի անգամ տարբեր մոդուլների անուններով բեռնված: Ներկայումս, սահմանված նշանները հետեւյալն են.
__insmod_modulename_Oobjectfile_Mmtime_Vversion
objectfile- ը օբյեկտի անունն է, որը օբյեկտը բեռնված է: Սա ապահովում է, որ ksymoops- ը կարող է համապատասխանել կոդի ճիշտ օբյեկտին: mtime- ը վերջին անգամ փոփոխված ժամանակահատվածն է, այդ ֆայլի վրա hex- ում, զրո, եթե ստատուսը ձախողվեց: տարբերակն այն միջուկային տարբերակն է, որը մոդուլը կազմվել է, -1, եթե ոչ տարբերակ չկա: _O խորհրդանիշն ունի նույն մեկնարկային հասցեն, ինչպես մոդուլի վերնագիրն է:
__insmod_modulename_Ssectionname_Llength- ը
Այս խորհրդանիշը հայտնվում է ընտրված ELF բաժինների սկզբում, ներկայում .տեքստ, .rodata, .data, .bss եւ .sbss: Այն միայն հայտնվում է, եթե բաժինը չունի ոչ զրոյական չափ: sectionname- ը ELF- ի բաժնի անունն է, երկարությունը տասնորդական հատվածի երկարությունն է: Այս խորհրդանիշները օգնում են ksymoops- ի հասցեները հասցեներ բաժիններում, երբ ոչ մի խորհրդանիշ չկա:
__insmod_modulename_Ppersistent_filename
Միայն ստեղծված insmod- ն է, եթե մոդուլն ունի մեկ կամ ավելի պարամետրեր, որոնք նշվում են որպես համառ տվյալներ եւ ֆայլի անվանում, որը պահպանում է համառ տվյալներ (տես `վերը, վերը):
Խնդիրն այն է, որ վրիպազերծման միջուկը կախված է մոդուլից, այն է, որ / proc / ksyms եւ / proc / modules- ի բովանդակությունը կարող է փոխել Oops- ը եւ երբ դուք մշակեք տեղեկամատյան ֆայլը: Այս խնդիրը հաղթահարելու համար, եթե կա / var / log / ksymoops գրացուցակը, ապա insmod- ը եւ rmmod- ը ավտոմատ կերպով պատճենում են / proc / ksyms եւ / proc / մոդուլները / var / log / ksymoops `օրվան +% Y% m նախածանցով % d% H% M% S`: Համակարգի ադմինիստրատորը կարող է ասել ksymoops- ը, որը նկարահանման ֆայլերը օգտագործելու է Oops- ի կարգաբերման ժամանակ: Այս ավտոմատ կերպով անջատելու համար անջատված չկա: Եթե դուք չեք ցանկանում, որ դա տեղի ունենա, մի ստեղծեք / var / log / ksymoops : Եթե այդ գրացուցակը գոյություն ունի, այն պետք է պատկանի արմատից եւ լինի 644 կամ 600 ռեժիմ, եւ ամեն օր այդ սցենարը պետք է վարեք: Ստորեւ ներկայացված սցենարը տեղադրվում է որպես insmod_ksymoops_clean :
Հիմնական տեղեկություններ իմանալու համար
ԱՆՈՒՆ
insmod - տեղադրեք բեռնված քերել մոդուլ
SYNOPSIS- ը
insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o module_name ] [-O blob_name ] [-P նախածանց ] մոդուլ [ symbol = value ...]