Linux / Unix စစ်ဌာနချုပ်: insmod

အဆိုပါ Linux / Unix command ကို insmod တစ် loadable module တစ်ခုတပ်ဆင်ပြီး ယင်း running kernel ကိုပါ။ insmod ဟာ Kernel ရဲ့တင်ပို့သင်္ကေတစားပွဲကနေအားလုံးသင်္ကေတများဖြေရှင်းခြင်းအားဖြင့်အပြေး kernel ကိုသို့ module တစ်ခုလင့်ထားသည်ဖို့ကြိုးစားပါတယ်။

ယင်းမော်ကျူးဖိုင် name ကို directory များသို့မဟုတ် extension ကိုမပါဘဲပေးထားလျှင် insmod အချို့သောဘုံက default directory များအတွက် module တစ်ခုကိုရှာဖွေပါလိမ့်မယ်။ ပတ်ဝန်းကျင် variable ကို MODPATH ဒီ default အနေနဲ့ override ဖို့အသုံးပြုနိုင်ပါသည်။ ထိုကဲ့သို့သော /etc/modules.conf အဖြစ် module ကို configuration ဖိုင်တည်ရှိပါက MODPATH အတွက်သတ်မှတ်ထားတဲ့လမ်းကြောင်းဖျက်ရေးသွားမည်။

ပတ်ဝန်းကျင် variable ကို MODULECONF ကိုလည်း default အ /etc/modules.conf (သို့မဟုတ် /etc/conf.modules (ကန့်ကွက်ခံထား)) အနေဖြင့်တစ်ဦးကွဲပြားခြားနား configuration file ကို select လုပ်ပါရန်အသုံးပြုနိုင်ပါသည်။ ဤသည်ပတ်ဝန်းကျင် variable ကိုအထက်အပေါငျးတို့သ definitions ကိုဖျက်ရေးသွားမည်။

ပတ်ဝန်းကျင် variable ကို UNAME_MACHINE သတ်မှတ်ထားလျှင်, modutils အဆိုပါ uname () syscall ကနေမယ့်အစားစက်ကိုလယ်၎င်း၏တန်ဖိုးကိုသုံးပါလိမ့်မယ်။ ဤသူသည်သင်တို့ 32-bit နဲ့အသုံးပြုသူအာကာသသို့မဟုတ်အပြန်အလှန်အတွက် 64-bit နဲ့ module တွေပြုစုကြသောအခါ, အဓိကအားဖြင့်အသုံးပြုမှုသည် module တွေအမျိုးအစားကိုမှ UNAME_MACHINE ထားကြ၏။ လက်ရှိ modutils module တွေအပြည့်အဝလက်ဝါးကပ်တိုင်တည်ဆောက် mode ကိုထောကျပံ့ပေးပါဘူး, ဒါကြောင့်အိမ်ရှင်ဗိသုကာ၏ 32- နှင့် 64-bit နဲ့ဗားရှင်းအကြားရွေးချယ်ရာတွင်ဖို့ကန့်သတ်သည်။

options ကို

-e persist_name, --persist = persist_name

အဆိုပါ module များအတွက်မဆိုဇွဲဒေတာဝန်မှဖတ်ပါနှင့်မော်ကျူး၏ဤ instantiation မြေပေါ်သို့ချသောအခါမှတိကျမ်းစာ၌လာသည်ကားအဘယ်မှာရှိဖေါ်ပြသည်။ အဆိုပါ module ကိုအဘယ်သူမျှမမြဲဒေတာရှိပါတယ်လျှင်ဒီ option ကတိတ်တဆိတ်လျစ်လျူရှုနေပါတယ်။ ဒီ option ကို default အ insmod အသုံးပြုပုံပစ္စုပ္ပန်လျှင် persistent အချက်အလက်များကိုသာမြဲဒေတာကို process မပါဘူး insmod ဖတ်ဖြစ်ပါတယ်။

တစ်ဦးအဖြစ် အတိုကောက်ပုံစံ -e "," (တစ်ဦးအချည်းနှီးသော string ကို) modules.conf အတွက်သတ်မှတ်ထားသောအဖြစ်, persistdir ၏တန်ဖိုးအဖြစ် insmod အားဖြင့်အနက်ကတှငျတှေ့ခဲ့ module ကိုရှာဖွေရေးလမ်းကြောင်းကိုဖို့ module ကိုဆွေမျိုးများ၏ဖိုင်အမည်ခြင်းဖြင့်နောက်တော်သို့လိုက်, အနုတ်ဆိုနေသည် ".gz", "အို" ကပ်တွယ်မှုကိုသို့မဟုတ် ".mod" ။ အကယ်. modules.conf သတ်မှတ်ပေးသည် "persistdir =" (ဆိုလိုသည်မှာ persistdir တစ်ဦးအချည်းနှီးသောလယ်ပြင်သည်) သို့ဖြစ်လျှင်ဤအတိုကောက်ပုံစံတိတ်တဆိတ်လျစ်လျူရှုဖြစ်ပါတယ်။ ((5) modules.conf ကြည့်ရှုပါ။ )

-f, --force

အဆိုပါပြေး kernel နဲ့ module တစ်ခုပြုစုခဲ့သောများအတွက် kernel ကို၏ဗားရှင်းဗားရှင်းမကိုက်ညီပါဘူးပင်လျှင် module ကို load ကြိုးစား။ ဤသည်သာသင်္ကေတအမည်အားစစ်ဆေးမှုများအပေါ်အဘယ်သူမျှမသက်ရောက်ရှိပါတယ်, Kernel အားဗားရှင်းစစ်ဆေးမှုများပြောင်းလဲသတ်မှတ်လိုက်သည်။ အဆိုပါ module အတွက်သင်္ကေတအမည် kernel ကိုကိုက်ညီမထားဘူးဆိုရင်ထို့နောက် module ကို load လုပ်ဖို့ insmod အတင်းမရှိလမ်းလည်းမရှိ။

-h, --help

options နဲ့ချက်ချင်းထွက်ပေါက်တစ်ခုအကျဉ်းချုပ်တင်ပြပါ။

-k, --autoclean

အဆိုပါ module တစ်ခုပေါ်တွင် Auto-စင်ကြယ်သောအလံသတ်မှတ်မည်။ များသောအားဖြင့်တစ်မိနစ် - ဤအလံအချိန်အချို့ကိုကာလများတွင်အသုံးပြုခဲ့ကြပြီမဟုတ်ကြောင်း module တွေဖယ်ရှားပစ်ရန် (8) kerneld အသုံးပြုသောလိမ့်မည်။

-L, --lock

တူညီသော module တစ်ခု၏တစ်ပြိုင်နက်ဝန်ကာကွယ်တားဆီးဖို့သိုးစုကို (2) ကိုသုံးပါ။

-m, --map

ဒါကြောင့်ပိုမိုလွယ်ကူမယ့် kernel ကိုထိတ်လန်၏ဖြစ်ရပ်အတွက် module တစ်ခု Debugging မှအောင် stdout အပေါ် output တစ်ဝန်မြေပုံ။

-n, --noload

Dummy ပြေးခြင်း, kernel ကိုစ module ကို load မှလွဲ. အရာအားလုံးလုပ်ပါ။ တစ်ဦး -m သို့မဟုတ် -O နေဖြင့်မေတ္တာရပ်ခံလျှင်, ပြေးတစ်ဦးမြေပုံသို့မဟုတ်မိတ်ဆွေအတွက် blobs file ကိုထုတ်လုပ်ပါလိမ့်မယ်။ ယင်းမော်ကျူး loaded မဟုတ်ပါ ခုနှစ်မှစ. အစစ်အမှန် kernel ကိုဝန်လိပ်စာမြေပုံနှင့်မိတ်ဆွေအတွက် blobs file ကို 0x12340000 တစ်ခုလိုမင်းထက်ဝန်လိပ်စာအပေါ်အခြေခံထားတယ်ဒါကြောင့်မသိရသည်။

-O module_name, --name = module_name

အတိအလင်းသည့်မော်ကျူးအမည်ထက်ရင်းမြစ်အရာဝတ္ထုဖိုင်၏အခြေစိုက်စခန်းအမည်ဖြင့်မှအ name ကို deriving ။

-O blob_name, --blob = blob_name

blob_name အတွက်ဒွိအရာဝတ္ထုသိမ်းဆည်းပါ။ အဆိုပါရလဒ်အပိုင်းခြယ်လှယ်ခြင်းနှင့်ပြောင်းရွှေ့ပြီးနောက် kernel ကိုသို့တက်နေတဲ့အတိအကျဘာကိုဖေါ်ပြခြင်းတစ်ဦး binary မိတ်ဆွေအတွက် blobs ကို (အဘယ်သူမျှမ elf ခေါင်းစီး) ဖြစ်ပါသည်။ Option ကို -m အရာဝတ္ထု၏မြေပုံအရအကြံပြုသည်။

-p, --probe

ဒါကြောင့်ဖြစ်နိုင်ပါတယ်လျှင်ကြည့်ရှုရန် module ကိုစုံစမ်း အောင်မြင်စွာတင် ။ ဤသည်ကား, module ကိုလမ်းကြောင်းအတွင်းရှိအရာဝတ္ထုဖိုင်တည်နေရာဗားရှင်းနံပါတ်များကိုစစ်ဆေးနေနှင့်သင်္ကေတများဖြေရှင်းပါဝင်သည်။ ဒါဟာနေရာရွှေ့ပြောင်းစစ်ဆေးပါဘူးမဟုတ်သလိုကြောင့်မြေပုံသို့မဟုတ်မိတ်ဆွေအတွက် blobs file ကိုထုတ်လုပ်ပါဘူး။

-p ရှေ့ဆက်, --prefix = ရှေ့ဆက်

ထိုကဲ့သို့သော module တွေသူတို့ရဲ့သင်္ကေတအမည်များအတွက်ဆက်ပြောသည်တစ်ဦးအပိုရှေ့ဆက်ကြကတည်းကဒီ option တစ်ခု SMP သို့မဟုတ် bigmem kernel ကိုများအတွက် VERSION module တွေနှင့်အတူသုံးနိုင်တယ်။ Kernel အားသင်္ကေတဗားရှင်းတွေနဲ့တည်ဆောက်ခဲ့လျှင် insmod အလိုအလျှောက် "get_module_symbol" သို့မဟုတ် "inter_module_get" ၏အဓိပ္ပါယ်ကနေရှေ့ဆက် extract မည်, အရာတစျခု module တွေကိုပံ့ပိုးသောမည်သည့် kernel ကိုအတွက်တည်ရှိရပါမည်။ အဆိုပါ kernel ကိုအဘယ်သူမျှမသင်္ကေတမူကွဲရှိပါတယ်ဒါပေမယ့် module ကိုသင်္ကေတဗားရှင်းတွေနဲ့တည်ဆောက်ခဲ့လျှင်အသုံးပြုသူ -p ထောက်ပံ့ရပါမည်။

-q, --quiet

မည်သည့်မဖြေရှင်းနိုင်သင်္ကေတများစာရင်းကို print ထုတ်မထားပါနဲ့။ ဗားရှင်းမတိုက်ဆိုင်အကြောင်းကိုတိုင်ကြားမထားပါနဲ့။ အဆိုပါပြဿနာကိုသာ insmod ၏ထွက်ပေါက် status ကိုတွင်ထင်ဟပ်ပါလိမ့်မည်။

-r - အမြစ်

အချို့သောအသုံးပြုသူများသည် non-အမြစ် userid အောက်မှာ module တွေပြီးတော့အမြစ်အဖြစ် module တွေ install compile ။ ဤလုပ်ငန်းစဉ်အတွက် module တွေ directory ကိုအမြစ်ကပိုင်ဆိုင်သည်ကိုပင်သော်လည်း non-အမြစ် userid ကပိုင်ဆိုင်သည့် module တွေစွန့်ခွာနိုင်ပါတယ်။ non-အမြစ် userid စိတ်မချရလျှင်တစ်ခုကျူးကျော်ကြောင်း userid ကပိုင်ဆိုင်တည်ဆဲ module တွေ overwrite နှင့် Access root မှတက် boot တက်ခြင်းကိုလုပ်ဆောင်ဤထိတွေ့မှုသုံးနိုင်သည်။

ပုံမှန်အားဖြင့်, modutils အမြစ်ကပိုင်ဆိုင်သည်မဟုတ်တဲ့ module ကိုသုံးစွဲဖို့ကြိုးစားမှုငြင်းပယ်ပါလိမ့်မယ်။ -r သတ်မှတ်ခြင်းအဆိုပါစစ်ဆေးမှုများ toggle နှင့်အမြစ်အမြစ်ကပိုင်ဆိုင်ကြသည်မဟုတ်ကြောင်း module တွေ load လုပ်ဖို့ခွင့်ပြုပါလိမ့်မယ်။ မှတ်ချက်: modutils configured သောအခါအမြစ်စစ်ဆေးမှုများများအတွက် default value ကိုပြောင်းလဲသွားစေနိုင်သည်။

အမြစ်စစ်ဆေးခြင်းကိုသို့မဟုတ် configuration ကိုအချိန်တွင် "မအမြစ်စစ်ဆေးမှုများ" ကိုကို default setting ကို disable လုပ်ဖို့ -r ၏အသုံးပြုမှုကအဓိကလုံခြုံရေးထိတွေ့မှုဖြစ်ပြီးအကြံပြုသည်မဟုတ်။

-s - syslog

အစား terminal ကို (3) syslog မှ output အရာအားလုံး။

-s, --kallsyms

kallsyms ဒေတာရှိသည်ဖို့ဝန် module ကိုအတင်း, အ kernel ကိုကထောကျပံ့ပေးမထားဘူးလျှင်ပင်။ ဒီ option က kernel ကို kallsyms ဒေတာခြင်းမရှိဘဲတင်ဆောင်ပေမယ့် module တွေဒီဘာဂင်များအတွက် kallsyms လိုအပ်မရွေးသည်အဘယ်မှာရှိအသေးစားစနစ်များအဘို့ဖြစ်၏။ ဒီ option က Red Hat Linux ကိုအပေါ်ကို default ဖြစ်ပါတယ်။

-v, --verbose

verbose ဖြစ်လိမ့်မည်။

-V, --version

insmod ၏ဗားရှင်းဖော်ပြရန်။

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

လုပ်ပါများနှင့်အသီးသီး, အ module ရဲ့ပြင်ပသင်္ကေတများအားလုံးတင်ပို့ကြပါဘူး။ ကို default တင်ပို့ခံရဖို့သင်္ကေတဖြစ်ပါတယ်။ အဆိုပါ module ကိုအတိအလင်း၎င်း၏ကိုယ်ပိုင်ထိန်းချုပ်သင်္ကေတစားပွဲတင်ပို့မနှင့်အရှင်ကန့်ကွက်ခံထားလျှင်ဒီ option ကသာထိရောက်သောဖြစ်ပါတယ်။

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

လုပ်ပါနဲ့ ksyms မှ ksymoops သင်္ကေတများပေါင်းထည့်ကြဘူး။ ဤရွေ့ကားသင်္ကေတတစ်ခုသည်းခံပါဒီ module တစ်ခုရှိပါလျှင်ပိုကောင်းဒီဘာဂင်ပေး ksymoops နေဖြင့်အသုံးပြုကြသည်။ အဆိုပါ default အနေနဲ့သတ်မှတ်ပါတယ်ခံရဖို့ ksymoops သင်္ကေတများအဘို့ဖြစ်၏။ ဒီ option က -X / -x ရွေးချယ်စရာလွတ်လပ်သောဖြစ်ပါတယ်။

ksymoops သင်္ကေတများတင် module တစ်ခုနှုန်းခန့်မှန်းခြေအားဖြင့် 260 bytes ထည့်ပါ။ သငျသညျ kernel ကိုအာကာသအပေါ်တကယ်အတိုဖြစ်ကြောင်းနှင့်၎င်း၏နိမ့်ဆုံးအရွယ်အစား ksyms လျှော့ချဖို့ကြိုးစားနေကြပါတယ်ဘဲနေလျှင်, default အယူနှင့်ပိုပြီးတိကျမှန်ကန်သည်းခံပါဒီဘာဂင်ရယူပါ။ ksymoops သင်္ကေတများ persistent module ကိုဒေတာသိမ်းဆည်းဖို့လိုအပ်သည်။

-N, --numeric သာ

တစ်ဦးရဲ့ module တစ်ခုတစ် kernel ကိုပိုင်ဆိုင်လိုလျှင်ဆုံးဖြတ်ခြင်းသည့်အခါဆိုလိုသည်မှာ EXTRAVERSION လျစ်လျူရှုသည် kernel ကိုဗားရှင်းဆန့်ကျင် module ကိုဗားရှင်းရဲ့ကိန်းဂဏန်းတွေအစိတ်အပိုင်းတစ်ခုသာစစ်ဆေးပါ။ ဤသည်အလံအလိုအလြောကျကအစောပိုင်းကအဆန်ဘို့ optional ကိုဖြစ်ပါသည်, နောက်ပိုင်းတွင် kernel ကို 2.5 ဘို့ရာခန့်ထားသောဖြစ်ပါတယ်။

module န့်သတ်ချက်များ

တချို့က module တွေသူတို့ရဲ့စစ်ဆင်ရေးစိတ်ကြိုက်ဝန်အချိန် parameters တွေကိုလက်ခံပါ။ ဤရွေ့ကား parameters တွေကိုမကြာခဏစက်မှစက်ကနေကွဲပြားနှင့်ဟာ့ဒ်ဝဲအနေဖြင့်စိတ်ပိုင်းဖြတ်မရနိုင်သည်ကို I / O ဆိပ်ကမ်းနှင့် IRQ နံပါတ်တွေကိုဖြစ်ကြသည်။

2.0 စီးရီးစေ့အဘို့တည် module တွေမှာတော့မဆိုကိန်းသို့မဟုတ်ဇာတ်ကောင် pointer ကိုသင်္ကေတတစ်ခု parameter သည်အဖြစ်ကုသနှင့်ပြုပြင်မွမ်းမံနိုင်ပါသည်။ သာတိကျသောတန်ဖိုးများပြောင်းလဲသွားစေခြင်းငှါဒါ 2.1 စီးရီးစေ့အစပိုင်း၌, သင်္ကေတများအတိအလင်း parameters များကိုအဖြစ်မှတ်သားနေကြသည်။ ထို့အပွငျအမျိုးအစားသတင်းအချက်အလက်ဝန်အချိန်တွင်ပေးတန်ဖိုးများကိုစစ်ဆေးနေသည်ဖြစ်ပါတယ်။

ကိန်း၏ဖြစ်ရပ်မှာတော့အားလုံးတန်ဖိုးများဒဿမ, octal သို့မဟုတ် hexadecimal အတွက် a la ကို C ဖြစ်နိုင်သည်: 17, 021 သို့မဟုတ် 0x11 ။ array element တွေကိုကော်မာကွဲကွာသတ်မှတ်ထားသော sequence ကိုဖြစ်ကြသည်။ ဒြပ်စင်တန်ဖိုးကိုချန်လှပ်ခြင်းဖြင့်ကျော်သွားနိုင်ပါတယ်။

2.0 စီးရီး module တွေမှာတော့နံပါတ်နဲ့စတင်မတန်ဖိုးများကိုညှို့စဉ်းစားနေကြသည်။ 2.1 အစပိုင်း၌, သို့သော်လည်း parameter ရဲ့ type ကိုသတင်းအချက်အလက်တစ်ဦး string ကိုအဖြစ်တန်ဖိုးအနက်ကိုဘော်ပြမှရှိမရှိဖော်ပြသည်။ တန်ဖိုးကို double-ကိုးကား ( ") ဖြင့်စတင်လျှင် string ကိုကို C ထဲမှာရှိသကဲ့သို့အနက်ဖြစ်ပါတယ်, ပာအပေါင်းတို့နှင့်လွတ်မြောက်ရန်။ shell ကို prompt ကို မှစ. , ကိုးကားသူတို့ကိုယ်သူတို့ shell ကိုအနက်ဖွင်မှကာကွယ်ဖို့လိုစေခြင်းငှါသတိပြုပါပါနဲ့။

GPL လိုင်စင်ရမော်ဂျူးများနှင့်သင်္ကေတ

kernel ကို 2.4.10 နှင့်အတူစတင်ခြင်း, module တွေ MODULE_LICENSE () ကို အသုံးပြု. သတ်မှတ်လိုင်စင် string ကိုရှိသည်သငျ့သညျ။ အများအပြားကညှို့ GPL သဟဇာတဖြစ်ခြင်းအဖြစ်အသိအမှတ်ပြုကြသည်; အခြားမည်သည့်လိုင်စင်ကို string ကိုသို့မဟုတ်အားလုံးကိုမှာအဘယ်သူမျှမလိုင်စင်အတွက် module ကိုစီးပွားဖြစ်အဖြစ်ကုသကြောင်းဆိုလိုသည်။

Kernel အားအဆိုပါ / proc / sys / kernel ကို / ထင်းအလံထောက်ခံပါတယ်လျှင် insmod အလိုတော် OR '' 1 'နှင့်အတူထင်းအလံတစ် GPL လိုင်စင်မရှိဘဲ module ကို loading အခါ။ Kernel အား tainting ထောက်ခံပါတယ်နှင့် module ကိုလိုင်စင်မရှိဘဲတင်ဆောင်လျှင်တစ်ဦးကသတိပေးထုတ်ပေးသည်။ တစ်ဦးကသတိပေးအမြဲပင် tainting ကိုထောကျပံ့မအဟောင်းများအဆန်ပေါ်, GPL သဟဇာတမဖြစ်မယ့် MODULE_LICENSE () ရှိသည်သော module တွေအဘို့ထုတ်ပေးသည်။ ဒါကအသစ်တခု modutils အဟောင်းအဆန်ပေါ်တွင်အသုံးပြုသည့်အခါသတိပေးချက်များ minimize လုပ်။

insmod -f (အင်အား) mode ကိုလိမ့်မည် OR tainting ကိုထောက်ပံ့သောဆန်အပေါ် '' 2 'နှင့်အတူထင်းအလံ။ ဒါဟာအမြဲတမ်းသတိပေး။

တချို့က kernel ကို developer များဟာသူတို့ရဲ့ code ကတင်ပို့သင်္ကေတတစ်ခုသာ GPL သဟဇာတလိုင်စင်နှင့်အတူ module တွေကအသုံးပြုရမည်ဖြစ်သည်ကြောင်းလိုအပ်သည်။ ဤရွေ့ကားသင်္ကေတများပုံမှန် EXPORT_SYMBOL အစား EXPORT_SYMBOL_GPL အားဖြင့်တင်ပို့နေကြသည်။ Kernel အားဖွငျ့နှင့်အခြား module တွေအားဖြင့်တင်ပို့ GPL သာသင်္ကေတတစ်ခုသာ GPL-သဟဇာတလိုင်စင်နှင့်အတူ module တွေမြင်နိုင်ဖြစ်ကြောင်း, ဤသင်္ကေတ '' GPLONLY_ '' တစ်ရှေ့ဆက်အတူ / proc / ksyms ၌ထင်ရှား။ ယင်းမော်ကျူးရုံရှေ့ဆက်မရှိဘဲပုံမှန်သင်္ကေတအမည်ဖြင့်ရည်ညွှန်းဒီတော့တစ်ဦး GPL လိုင်စင် module တစ်ခုတင်နေစဉ် insmod သင်္ကေတများပေါ် GPLONLY_ ရှေ့ဆက်လျစ်လျူရှု။ GPL သာသင်္ကေတများဒီမှာအားလုံးအဘယ်သူမျှမလိုင်စင်နှင့်အတူ module တွေလည်းပါဝင်သည်, တစ်ဦး GPL သဟဇာတလိုင်စင်မရှိဘဲ module တွေမှမရရှိနိုင်ပါလုပ်ကြသည်မဟုတ်။

Ksymoops ကူညီစောင့်ရှောက်ရေး

ksyms အချို့သင်္ကေတများထည့်သွင်းရန် module တွေ, insmod ပေးထားတဲ့ defaults တွေကိုအသုံးပြုတဲ့အခါ kernel ကို၏အမှားရှာနှင့်အတူကူညီပေးဖို့သည်းခံပါ, အ -Y option ကိုကြည့်ပါ။ ဤရွေ့ကားသင်္ကေတများ __insmod_modulename_ နှင့်အတူစတင်ပါ။ အဆိုပါ modulename သင်္ကေတမူထူးခြားတဲ့စေရန်လိုအပ်ပါသည်။ ဒါဟာကွဲပြားခြားနားသော module တစ်ခုအမည်များကိုအောက်တွင်တစ်ကြိမ်ထက်ပိုတူညီတဲ့အရာဝတ္ထု load မှဥပဒေရေးရာဖြစ်ပါတယ်။ လောလောဆယ်သတ်မှတ်သင်္ကေတများဖြစ်ကြသည်:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile အရာဝတ္ထုကနေ loaded ခဲ့ဖိုင်ရဲ့နာမည်ဖြစ်ပါတယ်။ ဤသည် ksymoops မှန်ကန်သောအရာဝတ္တုဖို့ကုဒ်ကိုက်ညီနိုင်မသေချာ။ Stat ပျက်ကွက်လျှင် mtime hex, သုညထဲမှာဖိုင်ပေါ်တွင်နောက်ဆုံးပြင်ဆင်ခဲ့သည် Timestamp ဖြစ်ပါတယ်။ ဗားရှင်း module များအတွက်ပြုစုခဲ့ -1 မျှဗားရှင်းရရှိနိုင်ပါသည်လျှင် kernel ကိုဗားရှင်းဖြစ်ပါတယ်။ အဆိုပါ _O သင်္ကေတဟာ module တစ်ခု header ကိုကဲ့သို့တူညီသောစတင်လိပ်စာရှိပါတယ်။

__insmod_modulename_Ssectionname_Llength

ဤသည်မှာသင်္ကေတကိုရှေးခယျြ elf ကဏ္ဍများကိုလက်ရှိ .text, .rodata, .data, .bss နှင့် .sbss ရဲ့ start မှာပေါ်လာမည်။ အပိုင်း non-သုညအရွယ်အစားရှိပါတယ်လျှင်ကိုယ်ကသာပုံပေါ်ပါတယ်။ sectionname အရှည်ဒဿမအတွက်အပိုင်း၏အရှည်သည်အဆိုပါ elf အပိုင်း၏နာမတော်သည်။ ဤရွေ့ကားသင်္ကေတများမပါသင်္ကေတများရရှိနိုင်ကြသောအခါ ksymoops ကဏ္ဍများမှလိပ်စာများ map ကိုကူညီပေးပါတယ်။

__insmod_modulename_Ppersistent_filename

ယင်းမော်ကျူးမြဲအချက်အလက်များနှင့်တစ်ဦးအဖြစ်မှတ်သားထားတဲ့တသို့မဟုတ်ထိုထက်ပို parameters များကိုရှိပါတယ်လျှင်သာလျှင် insmod အသုံးပြုနေသူများကဖန်တီး မြဲဒေတာသိမ်းဆည်းဖို့ဖိုင်အမည် ရရှိနိုင်ပါသည် (အထကျ, -e ကြည့်ပါ) ။

ဒီဘာဂင် kernel ကိုနှင့်အတူအခြားပြဿနာသည်းခံပါ module တွေအတွက် proc / ksyms / ရဲ့ contents ကြောင်းနှင့် / proc / module တွေအတွက်သည်းခံပါအခါသင် log ဖိုင်ကို process အကြားပြောင်းလဲနိုင်သည်ဖြစ်ပါတယ်။ directory ကို / var / log / ksymoops ထို့နောက် insmod နှင့် rmmod `နေ့စွဲ +% Y ကို% မီတာတစ်ရှေ့ဆက်အတူ / var / log / ksymoops မှ / proc / ksyms နှင့် / proc / module တွေအလိုအလျှောက်ကော်ပီကူးပါလိမ့်မယ်တည်ရှိနေလျှင်, ဤပြဿနာကိုကျော်လွှားနိုင်ရန်အတွက် % ဃ% H ကို% က M% S` ။ အဆိုပါစနစ်စီမံခန့်ခွဲသူတစ်ဦးသည်းခံပါ debugging တဲ့အခါမှာသုံးစွဲဖို့ဖိုင်တွေလျှပ်တစ်ပြက်ရာ ksymoops ပြောပြနိုင်ပါတယ်။ ဒီအလိုအလျှောက်မိတ္တူကို disable လုပ်ဖို့အဘယ်သူမျှမ switch ကိုရှိပါတယ်။ သင်ကပေါ်ပေါက်ချင်ကြဘူးဆိုရငျ, / var / log / ksymoops ဖန်တီးပါဘူး။ ကြောင်း directory ကိုတည်ရှိပါကအမြစ်ကပိုင်ဆိုင်ခြင်းနှင့် mode ကို 644 သို့မဟုတ် 600 ဖြစ်နှင့်သင်နေ့တိုင်းသို့မဟုတ်ဒီတော့ဒီ script ကို run သင့်ပါတယ်ရပါမည်။ အောက်က script ကို insmod_ksymoops_clean အဖြစ် installed ဖြစ်ပါတယ်။

သိအခြေခံပညာသတင်းအချက်အလက်

က NAME

insmod - loadable kernel ကို module တစ်ခု install လုပ်

အနှစ်ချုပ်

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name] [-O module_name] [-O blob_name] [-p ရှေ့ဆက်] module တစ်ခု [သင်္ကေတ = value ကို ... ]