Linux / Unix විධානය: insmod

Linux / Unix විධානය insmod ක්රියාත්මක වන කර්නලය තුල පැටවුම් මොඩියුලයක් ස්ථාපනය කරයි . insmod මඟින් කර්නලයේ නිර්යාත කළ සංකේතාංකක වගුව වෙතින් සියළුම සංකේත විසඳා මඟින් ක්රියාත්මක වන කර්නලය වෙත මොඩියුලයක් සම්බන්ධ කිරීමට උත්සාහ කරයි.

නාමාවලියේ නම හෝ දිගුව නොමැති නම් මොඩල් ෆයිල්ස් නාමය ලබා දෙන්නේ නම්, ඉන්ස්මෝඩ් සාමාන්ය පොදු පෙරසැකසුම් වල මොඩියුලය සොයනු ඇත. මෙම පෙරනිමි ප්රස්ථාරය අභිබවා යෑම සඳහා පරිසර විචල්යය MODPATH භාවිතා කළ හැක. /etc/modules.conf වැනි මොඩියුල මානකරන ගොනුවක් පවතියි නම්, එය MODPATH හි ඇති මාර්ගයන් අභිබවා යනවා .

ප්රකෘති /etc/modules.conf සිට වෙනස් මානකරන ගොනුවක් තෝරාගත හැකි පරිසර විචල්යය MODULECONF භාවිතා කළ හැක (හෝ /etc/conf.modules (අතහැර දැමූ )). මෙම පාරිසරික විචල්යය ඉහත සියළු අර්ථ දැක්වීම් ඉක්මවා ඇත.

පාරිසරික විචල්යය UNAME_MACHINE සැකසූ විට, modutils භාවිතා කරනු ලබන්නේ uname () syscall වෙතින් පරිගණකය වෙනුවට එහි කේතාංකය වෙනුවට එහි අගයයි. ඔබ 64-bit මොඩියුලයන් 32-bit පරිශිලක ඉඩක් තුල සම්පාදනය කරන විට හෝ භාවිතා කරන්නේ නම්, මෙම මොඩියුලය භාවිතා කරනු ලැබේ, මොඩියුලයේ වර්ගය වෙත UNAME_MACHINE සකසන්න . වර්තමාන modutils මොඩියුල සඳහා පූර්ණ හරස් සිති ප්රකාරය සඳහා පහසුකම් සපයන්නේ නැත, එය ධාරක නිර්මාණ ශිල්පයෙහි 32- හා 64-bit අනුවාදයන් අතර තෝරාගැනීම සඳහා සීමිත වේ.

විකල්ප

- persist_name , --perist = persist_name

මොඩියුලය සඳහා පවතින ස්ථීර දත්ත බෑමෙන් කියවනු ලබන අතර මොඩියුලයේ මෙම උදාසීනතාවය බහාලන විට එය ලියනු ලැබේ. මොඩියුලය නොනවතින දත්ත නොමැති නම් මෙම විකල්පය නිහඬව නොසලකා හරිනු ලැබේ. අඛණ්ඩ දත්ත පමණක් insmod විසින් කියවනු ලබන්නේ මෙම විකල්පය සක්රිය නම්, පෙරනිමියෙන් ඉන්ස්ටොමීට් නිරන්තරයෙන් දත්ත සකසන්නේ නැත.

සරල රූපයක් ලෙස , -e "" (හිස් ශ්රේණියක්) අර්ථ දැක්වීම ලෙස modules.conf හි අර්ථ දැක්වීම සඳහා persistdir අගය ලෙස insmod විසින් අර්ථකථනය කරනු ලබන අතර පසුව මොඩියුලයේ සෙවුම් මාර්ගයට සාපේක්ෂව මොඩියුලයෙහි ඇති ගොනුවේ නම එය සොයා ගන්නා ලදි ".gz", ".o" සහ ". Modules.conf නම් " persistdir = " (එනම් persistdir යනු හිස් ක්ෂේත්රයක්) නම් මෙම කෙටි ආකෘතිය නිහඬව නොසලකා හරිනු ලැබේ. ( Modules.conf බලන්න (5).)

-f , - බලසම්පන්න

මොඩියුලය සම්පාදනය කරන ලද කර්නලය සඳහා වන කර්නලය හා කර්නලය අනුවාදය ගැලපෙන විටදී මොඩියුලය පැටවීමට උත්සාහ නොකරයි. මෙය කර්නල් අනුවාද චෙක්පතට පමණක් සීමා වන අතර එය සංකේතාත්මක නාමයේ චෙක්පත් මත කිසිදු බලපෑමක් සිදු නොවේ. මොඩියුලයේ සංකේත නාම නම් කර්නලය නොගැලපේ නම් මොඩියුලය පැටවීමට insmod බල කිරීමට ක්රමයක් නැත.

-එහ් , - හෙල්ප්

විකල්පයන් සාරාංශයක් පෙන්වන්න සහ වහාම පිටවෙන්න.

-k , - ස්වයංක්රියා

මොඩියුලය තුළ ස්වයංක්රීය පිරිසිදු ධජය සකසන්න. මෙම ධජය kerneld (8) භාවිතා කරනු ඇත සමහර කාල පරිච්ඡේදය තුළ භාවිතා නොකළ මොඩියුල ඉවත් කිරීම - සාමාන්යයෙන් එක් විනාඩියකි.

-L , - බ්ලොක්

එම මොඩියුලයේ එකවර බඩු වළක්වා ගැනීම සඳහා රැළ (2) භාවිතා කරන්න.

-එම් , - මයිප්

Stdout මත පැටවුම් සිතියමක් නිපදවන්න, කර්නලයේ භයානක අවස්ථාවලදී මොඩියුලය දෝෂහරණය කිරීම පහසු කරවයි.

- n , - විකිපීඩියා , නිදහස් විශ්වකෝෂය

මොඩියුලය ධාවනය, මොඩියුලය කර්නලය වෙතට හැරෙන්න හැර අන් සියල්ලම කරන්න. -m හෝ -O මඟින් ඉල්ලීමක් කළහොත් ධාවනය සිතියම හෝ blob ගොනුව නිපදවයි. මොඩියුලය පටවනු නොලැබූ බැවින්, සැබෑ කර්නල් භාරත ලිපිනය නොදන්නා නිසා සිතියම සහ blob ගොනුව 0x12340000 හි අත්තනෝමතිකව භාරවන ලිපිනයකි.

-o මොඩියුලය , --name = මොඩියුලය

මූලාශ්රය ගොනුවෙහි මූලික නාමයේ මූලික නාමයෙන් නම සෑදීම වෙනුවට, මොඩියුල නාමය සඳහන් කරන්න.

-O blob_name , - blob = blob_name

ද්විමය වස්තුවක් blob_name තුල සුරකින්න . මෙහි ප්රතිඵලය වන්නේ ද්වීතීය බ්ලොබ් (ELF ශීර්ෂයන්) නොවේ. එහි ක්රියාකාරිත්වය හා නැවත ස්ථානගත කිරීමෙන් පසු කර්නලය තුල පටවනු ලබන දෙය නිවැරදිව පෙන්වයි. විකල්පයක් -m වස්තුවක සිතියම ලබා ගැනීමට නිර්දේෂී වේ.

-p , - පරික්ෂා

එය සාර්ථකව පැටවිය හැකිදැයි බැලීමට මොඩියුලය පරීක්ෂා කරන්න. මොඩියුලේ මාර්ගයෙහි වස්තුවේ ගොනුවක් ස්ථානගත කිරීම, අනුවාද අංකයන් පිරික්සමින් සහ සංකේත නිරාකරණය කිරීම ඇතුළත් වේ. එය නැවත ස්ථාන පරික්ෂා කිරීම හෝ සිතියමක් හෝ blob ගොනුවක් නිපදවන්නේ නැත.

-P උපසර්ගය , --prefix = උපසර්ගය

මෙම විකල්පය SMP හෝ bigmem කර්නලය සඳහා වින්යාසගත කරන ලද මොඩියුලයන් සමඟ භාවිතා කළ හැකිය, එම මොඩියුලට ඔවුන්ගේ සංකේතාක නාමයන්හි අතිරේක උපසර්ගයක් ඇත. කර්නලය සංකේතාත්මක අනුවාදයකින් සාදන ලදුව ඉන්සමෝ ස්වයංක්රීයව "get_module_symbol" හෝ "inter_module_get" යන අර්ථ දැක්වීමෙන් උපසර්ගයක් උපුටා ගන්නවා ඇත. එයින් එක් කොටසක මොඩියුලට සහාය වන ඕනෑම කර්නලයක පවතී. කර්නලය සඳහා සංකේතාත්මක අනුවාදයක් නොමැති නමුත් මොඩියුලය අනුලකුණු අනුවාදවලින් තනනු ලැබුවහොත්, පරිශීලක විසින් සැපයිය යුතුය.

-q , - ප්රශ්නය

ඕනෑම නොසලූරු සංකේත ලැයිස්තුවක් මුද්රණය නොකරන්න. අනුවාද නොගැලපීම ගැන පැමිණිලි නොකරන්න. ගැටළුව පමණක් insmod හි පිටවීමේ තත්ත්වය පිළිබිඹු වනු ඇත.

-r , - root

සමහර පරිශීලකයින් root නොවන පරිශීලකයින් යටතේ මොඩියුල සම්පාදනය කර පසුව මොඩියුලයන් root ලෙස ස්ථාපනය වේ. මෙම ක්රියාවලිය root-root බහලුම තුල තිබෙන නමුත්, root නොවන පරිශීලකයින්ට අයත් මොඩියුල අත් නොහැරිය හැක. Root නොවන පරිශීලකයා අවදානමට ලක් වී තිබේ නම්, අවහිර කරන්නා විසින් එම පරිශීලකයා සතු දැනට පවතින මොඩියුලයන් රහිතව root ප්රවේශය වෙත ආරම්භ කිරීම සඳහා මෙම නිරාවරණය භාවිතා කල හැක.

පෙරනිමියෙන්, මොටුතිල් විසින් root හි හිමිකාරීත්වය නොමැති මොඩියුලයක් භාවිතා කිරීමට උත්සහ කරනු ඇත. විධාන කිරීම -r මඟින් චෙක්පත අවලංගු කර root මඟින් හිමි නොවන මොඩියුල පූර්ණය කිරීමට අවසර දෙනු ඇත. සටහන: මොඩutils සැකසූ විට මූල චෙක්පත සඳහා පෙරනිමි අගය වෙනස් කළ හැකිය.

වින්යාස කාලයෙහිදී root පරීක්ෂාව අක්රිය කිරීමට root භාවිතා කිරීම හෝ පෙරනිමි කාලය නොමැතිව root රාමුවක් සැකසීම ප්රධාන ආරක්ෂක නිරාවරණයක් නොවන අතර එය නිර්දේශ නොකරයි.

-s , - syslog

සියල්ලම syslog (3) ටර්මිනලය වෙනුවට.

-S , - ක්ලැසිසිමි

කර්නලයට එය සහාය නොදක්වයි වුවද, කැටලිෆොනිං දත්ත ලබා ගත හැකි මොඩියුලයට බලකරනු ඇත. මෙම විකල්පය Koolel රහිතව රඳවා තබා ගන්නා කුඩා පද්ධති සඳහා වන අතර, තෝරාගත් මොඩියුලයන් දෝශයන් සඳහා කැලිදීම් අවශ්ය වේ. මෙම විකල්පය Red Hat Linux මත පෙරනිමිය.

-v , --verbose

සළකන්න.

-V , --version

Insmod අනුවාදය දර්ශනය කරන්න .

-එක්ස් , - අපනයන ; - x , - එක්ස්ෙපෝට්

පිළිවෙළින් සියලුම මොඩියුල බාහිර සංකේත අපනයනය නොකරන්න. පෙරනිමිය යනු නිර්යාත කිරීමට අපොහොසත් වීමයි. මොඩියුලය එහිම පාලිත සංකේතාංකක වගුව නිෂ්චිතව නිර්යාත නොකෙරේ නම්, මෙම විකල්පය සාර්ථකයි.

-Y , - ksymoops ; -ඔහ් , - ඕක්සිමෝප්ස්

Ksymoops සංකේත ksysym වෙත එකතු නොකරන්න. මෙම මොඩියුලයේ ඇති අපොයි නම්, වඩා හොඳ නිදොස් කිරීමක් ලබා දීම සඳහා මෙම සංකේත භාවිතා කර ksymoops භාවිතා කරනු ලැබේ . සුපුරුදු පරිදි ksymoops සංකේත සඳහා අර්ථ දැක්විය යුතුය. මෙම විකල්පය -X / -x විකල්ප වලින් ස්වායත්ත වේ.

ksymoops සංකේත එකතු කරන ලද මොඩියුලයකට ආසන්න වශයෙන් 260 බයිට්ස් එකතු කරයි. ඔබ කෙටියුලේ ඉඩ මත ඇත්තටම කෙටිමක් නැතිනම් එහි අවම ප්රමාණයට ksysymus අවම කිරීමට උත්සහ කරන්නේ නම්, පෙරනිමි හා වඩා නිවැරදිව දෝෂහරණය කරන්න. ස්ථීර මොඩියුල් දත්ත සුරැකීමට ksymoops සංකේත අවශ්ය වේ.

-N , - සංඛ්යාත්මක-පමණයි

මොඩියුල අනුවාදය කර්නල් වෙළුමට එරෙහිව සංඛ්යාංක කොටස පමණක් පරීක්ෂා කරන්න, එනම් මොඩියුලයකට කර්නලය අයත් දැයි තීරණය කිරීමේදී EXTRAVERSION නොසලකා හරිනු ලැබේ. මෙම ධජය කර්නලය 2.5 සඳහාම ස්වයංක්රීයවම සකසා ඇත, එය පෙර කර්නල සඳහා විකල්ප වේ.

මොඩියල් පරාමිතීන්

සමහර මොඩියුල ඒවායේ ක්රියාකාරිත්වය රිසිකරණය කිරීම සඳහා Load-Time පරාමිතීන් පිළිගනී. මෙම පරාමිතීන් බොහෝ විට I / O port සහ පරිගණකයේ සිට පරිගණකය දක්වා වෙනස් වන IRQ අංක හා දෘඩාංගයෙන් තීරණය කළ නොහැක.

2.0 ශ්රේණියේ කර්නල් සඳහා සාදා තිබෙන මොඩියුල වල, ඕනෑම පූර්ණ සංඛ්යා හෝ අනුලකුණු අනුහුරු සංකේතයක් පරාමිතියක් ලෙස සැලකිය හැකිය. 2.1 මාලා වල කර්නල් වලින් ආරම්භ වන අතර, සංකේත පැහැදිලිවම පරාමිතීන් ලෙස සලකුණු කර ඇති අතර විශේෂිත අගයන් වෙනස් කළ හැකිය. තව ද, බඩු කාලය තුල සපයන ලද අගයන් පරීක්ෂා කිරීම සඳහා තොරතුරු වර්ගය සපයනු ලැබේ.

නිඛිල සංඛ්යා නම්, සියළු අගයන් දශම දශමයකින් හෝ අෂ්ටාෂි හෝ හෙක්ටයාරකමාලි a la C විය හැක: 17, 021 හෝ 0x11. අරා කොටස් යනු කොමා වලින් වෙන් කරන ලද අනුක්රමයයි. වටිනාකම අඩු කිරීම මගින් මූලද්රව්ය මඟ හැරවිය හැක.

2.0 කාණ්ඩයේ මොඩියුලවලදී, අංකයක් සමඟ ආරම්භ නොවන අගයන් නූල් ලෙස සලකනු ලැබේ. 2.1 ආරම්භයේදී, පරාමිතයේ තොරතුරු වර්ගය අර්ථ දැක්වෙන්නේ එහි අගය ලෙස අර්ථ දැක්විය යුතුද යන්නයි. අගය ආරම්භ වන්නේ ද්විත්ව උපුටා ( "" ) නම්, පේළිය C ලෙස අර්ථ දැක්වේ, අනුපිළිවෙලවල් ඉවත් කිරීම සහ සියල්ලම වේ. ෂෙල් විමසුමේ සිට එය කියවන විට ඒවාට shell අර්ථ දැක්වීමෙන් සුරැකිය යුතුය.

GPL බලපත්ර සහිත මොඩියුල සහ සංකේත

කර්නලය 2.4.10 සමඟ ආරම්භ කරමින්, මොඩියුල MODULE_LICENSE () මගින් අර්ථ දක්වන ලද බලපත්ර ශ්රේණියක් තිබිය යුතුය. GPL අනුකූල ලෙස නොපෙනෙන බොහෝ නෝට්ටු හඳුනාගෙන ඇත. වෙනත් බලපත්ර බලපත්රයක් හෝ බලපත්රයක් නොමැත. මොඩියුලය හිමිකම ලෙස සලකනු ලැබේ.

කර්නලය / proc / sys / kernel / tainted ධජය සඳහා අනුබල දෙයි නම් ඉන්ස්ටෝල් GPL බලපත්රය තොරව මොඩියුලය පැටවීමේදී '1' සමඟ ආවරණ ධජය හෝ ආදේශ කරනු ඇත. කර්නලය තෛලනය සඳහා සහාය දක්වයි නම්, සහ බලපත්රයක් නොමැතිව මොඩියුලය පටවනු ලැබේ නම් අනතුරු ඇඟවීමක් නිකුත් කෙරේ. මොඩියුල සඳහා MODULE_LICENSE () වන අතර එය GPL අනුකූල නොවන අතර, පැරණි කර්නල වල සහයෝගය නොලැබේ. මෙය පැරණි කර්නල වල නව modutils භාවිතා කරන විට අවවාද කිරීම් අවම කරයි.

insmod -f (බල) ප්රකාරය ආමන්ත්රණය කිරීමට සහාය වන කර්නල් මත '2' සමඟ ආවරණ ධජය වනු ඇත. එය සෑම විටම අනතුරු ඇඟවීමක් නිකුත් කරයි.

ඇතැම් kernel developers සිය කේතය විසින් අපනයනය කරන ලද සංකේත වලට GPL අනුකූලව බලපත්ර සහිත මොඩියුල භාවිතා කළ යුතුය. EXPORT_SYMBOL වෙනුවට EXPORT_SYMBOL_GPL මඟින් මෙම සංකේත අපනයනය කරනු ලැබේ . කර්නලය හා අනෙකුත් මොඩියුල මගින් අපනයනය කරන ලද GPL-only සංකේත පමණක් GPL-අනුකූල බලපත්රය සහිත මොඩියුල පමණක් දක්වනු ලැබේ, මෙම සංකේත / proc / ksyms හි ' GPLONLY_ ' හි උපසර්ගයක් සහිතව දක්නට ලැබේ. GPLONLY_ GPLONLY_ සංකේත වල GPLONLY_ උපසර්ගය නොසලකා හරින GPL බලපවත්වන මොඩියුලය පටවා ඇති බැවින් මොඩියුලය සාමාන්යයෙන් සංකේත නාමය දක්වා ඇත්තේ පෙරනිමි තොරතුරටය . GPL එකම සංකේතයක් GPL අනුකූලව බලපත්ර නොමැතිව මොඩියුල ලබා නොදෙන අතර, මෙය කිසිඳු බලපත්රයක් නොමැති මොඩියුල ඇතුලත් වේ.

Kymymops ආධාරය

කර්නලයේ දෝශහරණයට සහාය වීම සඳහා මොඩියුල භාවිතා කරන විට, insmod කෝෂිම් සමහර සංකේත එකතු කිරීම සඳහා, -Y විකල්පය බලන්න. මෙම සංකේත __insmod_modulename_ ආරම්භ වේ. මෙම සංකේතය අද්විතීය ලෙස නිර්මාණය කිරීම සඳහා අවශ්ය වේ. විවිධ වස්තූන් නාම එකකට වඩා එක වස්තුවක් එකකට වඩා බර පටවා ගැනීමට නීත්යානුකූල වේ. වර්තමානයේ අර්ථ දක්වන ලද සංකේත වන්නේ:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile වස්තුව වස්තුවෙන් පටවා ඇති ගොනුවේ නම වේ. මෙම කේස්මෝපොස් විසින් කේතය නිවැරදි කේතයට ගැලපෙන බව සහතික කරයි. mtime යනු හෙක්ටයාරයේ එම ගොනුව තුල අවසන් වරට වෙනස් කරන ලද වේලාංකය වේ. අනුවාදය සඳහා මොඩියුලය සම්පාදනය කරන ලද කර්නල් අනුවාදය, -1 සංස්කරණයක් නොමැති නම්. _O සංකේතය මොඩියුල් ශීර්ෂය ලෙස එකම ආරම්භක ලිපිනයකි.

__insmod_modulename_Ssectionname_Length

දැනට පවතින .text, .rodata, .data, .bss සහ .sbss යන තෝරාගත් ELF කොටස්වල මෙම සංකේතය දිස්වේ. කොටසෙහි ශුන්ය නොවන ප්රමාණයක් තිබේ නම් එය දිස්වෙයි. sectionname යනු ELF කොටසෙහි නම වේ, දිග යනු දශාංශයේ කොටසෙහි දිග වේ. මෙම සංකේත කිසිවක් ලබා ගත නොහැකි අවස්ථාවලදී ksymoops සිතියම් ලිපින වලට උපකාර කරයි.

__insmod_modulename_Pperistent_filename

ඉන්දුනීඩ් විසින් පමණක් නිර්මාණය කර ඇති නම්, මොඩියුලය එකක හෝ වැඩි ගණනක් පරාමිතියන් ලෙස සලකුණු කර ඇති අතර ස්ථාවර දත්ත සුරැකීමට ගොනු නාමයක් (see -e , above) තිබේ.

දෝශනිරාකරණ කර්නලය සමඟ මොඩියුල වලදී ඇතිවන අනෙක් ගැටළුව වන්නේ / proc / ksyms සහ / proc / මොඩියුලවල අන්තර්ගතය අපොයි සහ ලොග් ගොනුව සැකසෙන විට වෙනස් කළ හැකිය. මෙම ගැටලුව මඟහරවා ගැනීමට නම්, ඩිරෙක්ටරි / var / log / ksymoops පවතී නම් insmod සහ rmmod ස්වයංක්රීයව / proc / ksyms සහ / proc / modules ස්වයංක්රීයව / var / log / ksymoops වෙත 'date +% Y% m % d% H% M% S. පද්ධති පරිපාලක හට Oops වල දෝෂහරණය කිරීමේදී භාවිතා කරන ගොනු සුරකින්න ksymoops කියන්න පුළුවන්. මෙම ස්වයංක්රිය පිටපත අක්රිය කිරීමට කිසිදු ස්විචයක් නැත. ඔබට එය සිදුවීමට අකමැති නම්, / var / log / ksymoops නිර්මාණය නොකරන්න . එම ඩිරෙක්ටරය පවතින්නේ නම් එය root සහ 644 හෝ 600 ආකාරයේ විය යුතු අතර, එය දිනපතාම මෙම කේත රචනය ක්රියාත්මක කළ යුතුය. පහත දැක්වෙන කේත රචනය insmod_ksymoops_clean ලෙස ස්ථාපනය කර ඇත .

දැන ගැනීමට මූලික තොරතුරු

නාමය

insmod - loadable කර්නල් මොඩියුලය ස්ථාපනය කරන්න

සිනෝපස්

insmod [-fhkLmnpqrsSvVxXyYN] [ -persist_name ] [-o මොඩියුලය ] [-O blob_name ] [-P prefix ] මොඩියුලය [ සංකේතය = අගය ...]