ሊነክስ / ዩኒክስ ትእዛዝ: insmod

የ Linux / Unix ትዕዛዝ ኢንድሞድ በመሮጥ ኩርሜል ውስጥ ተያያዥ ሞዱልን ይጭናል . insmod ከከርነል ወደውጭ ከተቀረበው ሰንጠረዥ ሰንጠረዥ ሁሉንም ምልክቶች በመፍተል ሞጁሉን ከሩቅ ኮርነር ጋር ለማገናኘት ይሞክራል.

የሞዱል ፋይል ስም ማውጫ ከሌለ ማውጫውን ወይም ቅጥያውን ካልተሰጠው ኢንዲሞድ ሞጁሉን በአንዳንድ የተለመዱ ነባሪ ማውጫዎች ውስጥ ይፈልገዋል . የአካባቢ ተለዋዋጭ MODPATH ይህንን ነባሪ ለመሻር መጠቀም ይቻላል. እንደ /etc/modules.conf ያሉ የሞዱል ውቅረት ፋይል ካለ, በ MODPATH ውስጥ የተገለጹትን ዱካዎች ይሽራል.

የአካባቢ ተለዋዋጭ MODULECONF ከነባሪ /etc/modules.conf (ወይም /etc/conf.mules / (የተቋረጠ)) የተለየ የውቅር ፋይል ለመምረጥ ጥቅም ላይ ሊውል ይችላል. ይህ አከባበር ተለዋዋጭ ከላይ ያሉትን ሁሉንም ትርጓሜዎች ይሽራል.

የአካባቢ ሁኔታ UNAME_MACHINE ሲዋቀር, modutils ከማሽኑ መስክ ይልቅ ከ uname () syscall ይልቅ ዋጋውን ይጠቀማሉ. ይሄ በ 32 ቢት የተጠቃሚ ተጠቃሚ ቦታ ወይም በተቃራኒው 64-ቢት ሞዱሎች እያቀናበሩ ነው , ወይም ደግሞ በተቃራኒው, UNAME_MACHINE ን ወደ ሞጁሎቹ አይነት ሲያስቀምጡ ነው . አሁን ያለው አወቃቀሮች ለሞለዶች ሙሉ የመስዋእት ግንባታ ሁነቶችን አይደግፉም, በ 32- እና 64-ቢት የሆትውር ኮንቴንት ስነ-ስርዓተ ጥለት ለመምረጥ የተገደበ ነው.

አማራጮች

-ይ persist_name , --persist = persist_name

ለ ሞዱዩው ማንኛውም ቋሚ ውሂብ የትኛውም ከተጫነ ተነባቢ የሚነበበበት እና የተጫነውን ሞጁል እየተጫነ በሚጫነው ጊዜ ላይ ይጽፋል. ሞጁሉ ምንም ቋሚ ውሂብ ከሌለው ይህ አማራጭ በዝምታ ችላ ይባላል. ይህ ተለዋዋጭ ከሆነ ቋሚ ውሂብ በድግምግሞሽ የሚነበብ ነው, በድብቅ ጥንካሬው ዘላቂ ውሂብን አያሰራም .

እንደ ቅጽል አጻጻፍ , -ኢ " (ባዶ ሕብረቁምፊ) በ modules.conf ውስጥ እንደተገለጸው የ persistdir እሴት, በአዲሱ የተቀመጠው የሞዲየሙ ዱካ ውስጥ የሚገኝ ሞዱል ስም ተገኝቷል, ተከተል «. gz», «.o» ወይም «.mod» ነው. Module.conf " persistdir = " (ማለትም persistdir ባዶ መስክ ነው) የሚገልጽ ከሆነ, ይህ አጻጻፍ ቅርጽ በዝምታ ችላ ይባላል. ( Modules.conf (5) ን ይመልከቱ.)

-f , - force

ሞዴሉን ለመጫን መሞከር የሩቅ ኮርነሉ ስሪት እና ሞዱዩሉ የተጠራቀመበት የከርነተኛው ስሪት ተመሳሳይ ባይሆንም እንኳ. ይሄ የከርነል ቨርዥን ቼክ ብቻ ይሽራል, በምልክት ስም ጥረቶች ላይ ተጽዕኖ አይኖረውም. በሞጁሉ ውስጥ ያሉት የምልክት ስሞች ከከነል ጋር የማይዛመዱ ከሆነ Insmod ሞጁሉን እንዲጭኑ ለማስገደድ ምንም መንገድ የለም.

-ሁዋ , - እርዳታ

የአማራጮች ማጠቃለያን እና ወዲያውኑ መውጣት.

-k , - አውቶኪያን

በሞጁሉ ላይ ራስ-ንጹህ ጠቋሚ ያዘጋጁ. ይህ ዕልባት በተወሰነው የጊዜ ገደብ ውስጥ ያልተጠቀሙባቸውን ሞዴሎች ለማስወገድ በ kerneld (8) ጥቅም ላይ ይውላል - በአብዛኛው አንድ ደቂቃ.

-L , - lock

በአንድ ጊዜ አንድ ሞዱል ለመጫን መንጋን (2) ይጠቀሙ.

-m , --map

በቆርቆሮው ላይ የተጫነን ካርታ ከውጤት በማስወጣት, በንጥል በሚነሱበት ጊዜ ሞጁሉን ማረም ቀላል ያደርገዋል.

-n , - noload

ሞሚው እየሮጠ, ሞጁሉን ወደ ጥቁር ከመጫን በቀር ሁሉንም ነገር ያድርጉ. በ -m ወይም -O ሲጠየቅ አሂድ አንድ የካርታ ወይም የቡድን ፋይል ይፈጥራል. ሞጁሉ አይጫንም ምክንያቱም ትክክለኛው የከርነል የመጫኛ አድራሻ አይታወቅም ስለዚህ የካርታ እና የሎሚ ፋይል በ 0x12340000 በጭራሽ ጭራሹ የጎደለው አድራሻ ላይ የተመሠረቱ ናቸው.

-o module_name , --name = module_name

ከመነሻ ምንጭ ፋይል መሰረቱ ላይ ስሙን ከመሳብ ይልቅ ሞጁሉን በግልጽ ስሙ.

-O blob_name , --blob = blob_name

ሁለትዮሽ ንብረትን በ blob_name ውስጥ አስቀምጥ. ውጤቱም ከክፍል ማራገፍ እና ከቦታ ቦታ መዘዋወር በኋላ ምን እንደሚገባ በትክክል የሚያሳየው የሁለትዮሽ ፍካት (የ ELF ራስጌዎች) የለም. አማራጭ-m የተመለከተውን ካርታ ለማግኘት ይመከራል.

-p , --probe

ሞዲዩል በተሳካ ሁኔታ መጫን ይቻል እንደሆነ ለማወቅ ይሞክሩ . ይህም በሞዳዱ ዱካ ውስጥ ያለውን የነጠላ ፋይልን, የፕሮጄክትን ቁጥሮች መፈተሽ እና ምልክቶችን መፍታትንም ያካትታል. ከቦታ ቦታ ማዛወሩን አይመለከትም ወይም ካርታ ወይም የዶክ ፋይል አይሰጥም.

- ቅድመ ቅጥያ , - prefix = ቅድመ ቅጥያ

ይህ አማራጭ በሶፍት ዊንዶውስ (SMP) ወይም ትልቅ ትልቅ ክርነል (ኮምፕሌተር) ከዝውውር ሞዴሎች ጋር አብሮ መጠቀም ይቻላል. ክርቤው የተቆራኙት በተምሳሌት ስሪቶች ከሆነ ኢንዲሞድ ከ "get_module_symbol" ወይም "inter_module_get" ፍች ከቅድመ-ቅጥያውን ያስወጣል, ከነሱም አንዱ ሞዳሎችን የሚደግፍ በማንኛውም ኮርነል ውስጥ መኖር አለበት. ጥፍሩ ምንም የስምሪት ቅጂ ከሌለው ግን ሞጁሉ በተምሳሌቶች አሻሽሎች የተገነባ ከሆነ ተጠቃሚው -ፒን መስጠት አለበት.

-q , - strict

ያልተፈቱ ምልክቶችን ዝርዝር አይጫኑ. ስለ ስሪት አለመዛመድ ቅሬታ አያቅርቡ. ችግሩ የሚገለጸው በ < insmod> መውጫ ሁነታ ላይ ብቻ ነው .

-r , - ስር

አንዳንድ ተጠቃሚዎች ስርዓተ-ዖርን ከዋናው ስርዓተ-ተጠቃሚ ተጠቃሚ ስር አድርገው ሞዴሎችን ይጠቀማሉ. ይህ ሂደት የሞጁሎች ማውጫ ስርዓቱ ባለቤትነት ባይኖረውም እንኳን ይህ ላልተጠቃሚው ባለቤት የሆኑ ሞዱሎችን መተው ይችላል. የማይንቀሳቀስ ተጠቃሚው ከተጠለፈ, አንድ ወራሹ በዚህ ተጠቃሚው ባለቤትነት ላይ ያሉ ነባር ሞዳሎችን እንዲተኩር እና ወደ ስርዓተ መዳረሻ ለመነከስ ይህን ጥገና መጠቀም ይጠቀማል.

በነባሪነት, አወኖች በገፍ ያልያዙ ሞጁሎችን ለመጠቀም አይሞክሩም. በመጥቀስ-ቼኩን ይገለብጠዋል እና በጭራሽ ባለቤት ያልሆኑ የሆኑ ሞዳሎችን እንዲጭን ይፍቀዱ. ማሳሰቢያ: ለውጦቹ ሲዋቀሩ የዝር ነቀል ዋጋ ያለው ነባሪ ዋጋ ሊቀየር ይችላል.

የ root መቆጣጠሪያን ለማጥፋት ወይም ነባሪውን በማዋቀር ጊዜ ላይ "ምንም ዝለል ማረጋገጫ" ላይ አለመጫን ዋና የደህንነት ስሜት የሚታይ እና የማይመከር ነው.

-s , - syslog

ሁሉንም ከሲስተር (3) ይልቅ በቲ.ሲ.

-S , - ካሸልሚሞች

ምንም እንኳን ጥሬው ባይደገፍ የተጫነ ሞዱል የ kallsyms ውሂብ እንዲኖረው ያስገድዱት . ይህ አማራጭ ጥንካሬው የ kallsyms ውሂብን ሳይጫነው አነስተኛ በሆኑ ስርዓቶች ላይ ነው, ነገር ግን የተመረጡ ሞጁሎች ለማረም kallsyms ያስፈልጋቸዋል. ይህ አማራጭ በ Red Hat Linux ላይ ነባሪ ነው.

-v , --verbose

ግጭቶች ሁኑ.

-V , --version

የኢንዲሞድ ስሪት አሳይ.

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

ሁሉንም የሞዱል ውጫዊ ምልክቶች አትመዘግብም. ነባሪው ወደ ውጪ ለሚላክ ምልክቶች ነው. ይህ አማራጭ ሞጁሉ የራሱ የቁጥጥር ሰንጠረዥ በግልጽ በግልጽ ካልተላከ ይህ ብቻ ነው የሚሰራው እና ስለሆነም የተቋረጠ ነው.

-Y , --ክሾፕስ ; -y , --noksymoops

ksymoops ምልክቶችን ለ kyms ያክሉት. በዚህ ሞጁል ውስጥ ያሉ ሰዎች ካሉ በደንብ ለማረም ለማቅረብ እነዚህ ምልክቶች በ ksymoops ጥቅም ላይ ይውላሉ. ነባሪው ለኪሲሞፕ ምልክቶች ተለይቶ እንዲተረጎም ነው . ይህ አማራጭ ከ -X / -x አማራጮች ነጻ ነው.

የ ksymoops ምልክቶች በግምት በ 260 ባይት በሞላ ሞጁል ላይ ይጨምራሉ. በከኔል ክፍሉ ላይ አጭር ካልሆነ እና kyyms ን ወደ ዝቅተኛ መጠንዎ ለመቀነስ እየሞከሩ ካልሆነ, ነባሪውን ይውሰዱ እና ይበልጥ ትክክለኛ ይሁኑ ማስተካከል Oops ማረም. የ ksymoops ምልክቶች ዘላቂ ሞዱሉን ውሂብ ለማስቀመጥ ይጠየቃሉ.

- ,, - ብቻ-ብቻ-ብቻ

ሞዴሉን ከቡናዊው አካል ስለመሆኑ በሚወስኑበት ጊዜ የዱሮውን ስሪት በዲጂታል ስሪት ቁጥሩን ይፈትሹ, ይህም ማለት EXTRAVERSION ን ችላ በል. ይህ ጥቆማ በራስ-ሰር ለክሬል 2.5 ተዘጋጅቷል, ለቀድሞው ፍሬ አሮጊት አማራጭ ነው.

ሞዱል መለኪያዎች

አንዳንድ ሞጁል የክምችት ጊዜ መለኪያዎችን ለመሥራት እንዲችሉ ይቀበላሉ. እነዚህ መመዘኛዎች አብዛኛውን ጊዜ ከወንዴ ማሽን ወደ ማሽን የሚለያዩ እና ከሃርድዌል ውስጥ ሊታወቁ የማይችሉ I / O ወደብ እና IRQ ቁጥሮች ናቸው.

ለ 2,0 ተከታታይ ኬርሎች በተገነቡ ሞዴሎች ማንኛውም ኢንቲጀር ወይም የቁምፊ ጠቋሚ ምልክት እንደ መለኪያ እና ማስተካከያ ሊደረግባቸው ይችላል. ከ 2.1 ተከታታይ ኮርነሮች ጀምሮ ምልክቶቹ እንደ መለኪያዎች በግልፅ ምልክት ብቻ የተወሰኑ ዋጋዎች ሊለወጡ ይችላሉ. በተጨማሪም በጊዜ ዝርዝር ውስጥ የቀረቡ እሴቶችን ለመፈተሽ መረጃ ይተይዛል.

ኢንቲጀሮች ከሆኑ, ሁሉም ዋጋዎች በአስርዮሽ, ባዕሉ ወይም ሄክሳዴሲማል በ C: 17, 021 ወይም 0x11 ሊሆኑ ይችላሉ. የድርድር ክፍሎች በኮማዎች የተለዩ ተከታታይ ቅደም ተከተል ናቸው. ኤለመንቶች ዋጋውን በመተው ሊዘለሉ ይችላሉ.

በ 2,0 ተከታታይ ሞጁሎች, በቁጥር ያልጀመሩ ዋጋዎች እንደ ሕብረቁምፊዎች ይቆጠራሉ. ከ 2.1 ጀምሮ በመጀመር የመርጃው አይነት መረጃ ዋጋውን እንደ ሕብረቁምር ይተረጉመዋል. እሴቱ በድብ ጥቅሶች ( « ) ከተጀመረ, ሕብረቁምፊው በ C ውስጥ ይተረጎማል, ከጥቅል ቅደም ተከተሎች እና ሁሉንም ያመልጣል. ከሶስሌት አነሳስ ውስጥ, የቋንቋዎች ዋጋዎች እራሳቸው ከሶላር ትርጉም ውስጥ ሊጠበቁ ይችላሉ.

GPL የተፈቀዱ ሞጁሎች እና አርማዎች

ከከርነል 2.4.10 ጀምሮ ሞጁሎች MODULE_LICENSE () ን ተጠቅመው የተገለጸው የፍቃድ ሕብረቁምፊ ሊኖራቸው ይገባል. ብዙ ሕብረቁምፊዎች ከጂአይኤን (GPL) ጋር ተጣጥለዋል. ማንኛውም ሌላ የፈቃድ ሕብረቁምፊ ወይም ፍቃድ የሌለው ማለት ሞጁሉን እንደ የባለቤትነት ምልክት ነው ማለት ነው.

ካሬል የ / proc / sys / kernel / የተበከለ ጠቋሚን ከደገፈ ሞዱል ያለ GPL ፍቃድ በሞዱል ወይም በ "1" የተበከለ ጠቋሚውን ካሳየ . ጥሬው እራሱን በመደገፍ እና አንድ ሞዱል ያለፈቃዱ ከተጫነ ማስጠንቀቂያ ይሰጣል. ሁልጊዜም GPL ተኳሃኝ ያልሆነ ሞጁል (MODULE_LICENSE () ሞዴል ያላቸው ማሽኖች ሁልጊዜ ማስጠንቀቂያ ነው, ሌላው ቀርቶ በሽታን በማይደግፉ ጥንዶች እንኳን ሳይቀር. ይህ ደግሞ አዳዲስ ሞጁሎች በአሮጌ ዘሮች ላይ ሲጠቀሙ ማስጠንቀቂያዎችን ይቀንሳል.

የጭንቅላት -f (force) ሁነታ ወይንም እራስን መቋቋም የሚደግፍ ጥቁር ጥቁር ጥቁር '2' አለው. ሁልጊዜ ማስጠንቀቂያ ይሰጠዋል.

አንዳንድ የከርነል ገንቢዎች በአይኗቸው የተላከሏቸው ምልክቶች በ GPL በተስማሚነት ፈቃድ ያላቸው ሞጁሎች ብቻ መጠቀም አለባቸው. እነዚህ ምልክቶች ከ EXPORT_SYMBOL ይልቅ በ EXPORT_SYMBOL_GPL ይላካሉ. በ Kernel እና በሌላ ሞጁሎች የተላኩ የ GPL-ብቻ ምልክቶች በ GPL ተኳሃኝ የሆነ ፈቃድ ያላቸው ሞዴሎች ብቻ ይታያሉ, እነዚህ ምልክቶች በ < / proc / ksyms> ከ « GPLONLY_ » ቅድመ ቅጥያ ውስጥ ይታያሉ . insmod የ GPL ፍቃድ የተሰጠው ሞጁል ሲጫኑ የ GPLONLY_ ቅድመ-ቅጥያውን ከግምት ውስጥ አያስገባም ስለዚህ ሞዱሉው ምንም ቅድመ ቅጥያ ሳይኖሮሳዊውን መደበኛ ስም ይጠቅሳል. GPL ብቻ የጂፒፒ ማመቻች ያለጂ ሞዴሎች ለትክክሎች አያገኟቸውም, ይሄ ምንም ፍቃድ የሌለባቸውን ሞዴሎች ያካትታል.

Ksymoops ድጋፍ

ሞዴሎችን ሲጠቀሙ ለማገዝ ሞክሩት ነባሮቹ ወደ ኪሲሚዎች አንዳንድ ምልክቶችን ወደ ማከል ሲፈልጉ የ -Y አማራጩን ይመልከቱ. እነዚህ ምልክቶች በ __insmod_modulename_ ይጀምራሉ . ምልክቶቹን ልዩ የሚያደርጉበት ሞዱል ስም ያስፈልጋል. ከተለያዩ ሞዴል ስሞች በታች አንድ አይነት ነገር ከአንድ በላይ ጊዜ መጫን ህጋዊ ነው. በአሁኑ ጊዜ የተገለፁ ምልክቶች የሚከተሉት ናቸው:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile ነጋሪት የተጫነበት ፋይል ስም ነው. ይህም ኪሶሚፖፕ ከቁልፍ ጋር ከተዛመደው ነገር ጋር ማዛመድ እንደሚችል ያረጋግጣል. mtime በሆክሱ ውስጥ የተቀየረ የመጨረሻው የተቀየረ የጊዜ ማህተም ነው. ስሪት ሞዱዩሉ የተዘጋጀው የከርኔል እትም ነው, -1 ምንም ስሪት ከሌለ. የ _7 ምልክቱ እንደ ሞጁል ራስጌ የየመጀመሪያው አድራሻ አለው.

__insmod_modulename_Ssectionname_Llength

ይህ ምልክት በተመረጡት የእንግሊዝኛ ክፍሎች, በአሁኑ ጊዜ .text, .rodata, .data, .bss እና .sbss ሲጀመር ይታያል. ክፍሉ ከዜሮ የማይመለስ ከሆነ ብቻ ነው የሚመጣው. የክፍል ስም የኤል ኤፍ ክፍሉ ስም ነው, ርዝመት በአስርዮሽ ክፍል ርዝመት ነው. ምንም ምልክቶች የማይገኙበት ጊዜ kyymoops የካርታ አድራሻዎችን ወደ ክፍሎቹ ያግዛሉ.

__insmod_modulename_Ppersistent_filename

ሞጁሉ ቀጣይነት ያለው ውሂብ ለማስቀመጥ አንድ ወይም ከዚያ በላይ ልኬቶች እና አንድ ቋሚ ውሂብ ለማስቀመጥ አንድ የፋይል ስም ካለው ( ኢ- ከላይ, ይመልከቱ) አንድ ሞጁል ያለው ከሆነ ብቻ ነው በእስካሞ የተሰራ .

ሌላው በሞደሬተር ማረም ላይ ያለው ችግር በኦፕስ ውስጥ ያሉ ሞድሎች የ እና / proc / ሞጁሎች ይዘት በኦፕስ እና በምዝግብ ማስታወሻው ውስጥ በሚቀይሩበት ጊዜ ሊለዋወጥ ይችላል. ይህንን ችግር ለማሸነፍ ለማገዝ ማውጫው / var / log / ksymoops በውስጡም ኢንዲሞድ እና ራሚድ በቀጥታ / proc / ksyms እና / proc / ሞጁሎች በ < var % & % /% /% % d% H% M% S`. የስርዓቱ አስተዳዳሪ የፒፕፕቶፕ ፋይሎችን ማረምን በሚፈልጉበት ጊዜ እንዲጠቀሙ ለ ksymoops ሊነግረን ይችላል. ይህንን ራስ-ሰር ቅጂን ለማሰናከል ምንም መቀየሪያ የለም. ይህ እንዲከሰት ካልፈለጉ, / var / log / ksymoops / አትፍጠሩ . ያ መመሪያው ካለ, በስርወ የባለቤትነት መኖር አለበት እና ሁነታ 644 ወይም 600 መሆን አለበት, እናም ይህን ስእል በየቀኑ ወይም ከዚያ በላይ ማድረግ አለብዎ. ከታች ያለው ስክሪፕት እንደ insmod_ksymoops_clean ተጭኗል.

ማወቅ ያለባቸው መሰረታዊ መረጃዎች

NAME

insmod - ሊጫን የሚችል የከዋኝ ሞዱል መጫን

SYNOPSIS

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