Linux / Unix Hais kom ua: insmod

Lub Linux / Unix hais kom ua insmod installs module loadable hauv lub kernel khiav. Insmod ncav nws mus txuas tus module rau lub kernel khiav los ntawm kev daws tag nrho cov cim ntawm lub ntsiav lub lub thawv export lub rooj.

Yog hais tias lub npe ntawv lub npe yog tsis muaj cov kab lus los yog kev txuas ntxiv, insmod yuav tshawb rau qhov module hauv qee tus qauv siv. Lub cheeb tsam kuj txawv dua li MODPATH yuav siv los ua kom dhau qhov no. Yog hais tias tus txheej txheem configuration module xws li /etc/modules.conf tshwm sim, nws yuav override tus paths hais tseg hauv MODPATH .

Lub cheeb tsam MODULECONF kuj tseem siv tau los xaiv qhov txawv txav cov ntaub ntawv ntawm lub neej ntawd /etc/modules.conf (lossis /etc/conf.modules (deprecated)). Qhov hloov ntawm qhov chaw no yuav hloov tag nrho cov ntsiab lus saum toj no.

Thaum twg ib puag ncig UNAME_MACHINE tau teev, modutils yuav siv nws cov nqi siv lub tshuab ntawm lub npe ntawm systall uname () syscall. Qhov no yog kev siv thaum koj compiling 64-ntsis modules nyob rau hauv 32-ntsis neeg siv qhov chaw los yog lwm versa, teem UNAME_MACHINE mus rau hom ntawm lub modules. Tam sim no modutils tsis txhawb tag nrho khaub lig tsim hom rau modules, nws tsuas yog xaiv los xaiv ntawm 32- thiab 64-ntsis versions ntawm tus tswv tsev architecture.

Xaiv

-e persist_name , --persistist = persist_name

Qhia meej tias qhov twg cov ntaub ntawv tsis txaus siab rau qhov module tau nyeem los ntawm kev thauj khoom thiab sau rau thaum twg qhov kev tso tawm ntawm qhov khoos kas no tsis muaj kev cuam tshuam. Qhov kev xaiv no yog twj ywm ignored yog hais tias lub module tsis muaj cov ntaub ntawv pheej. Cov ntaub ntawv tsis tas li tsuas yog nyeem los ntawm insmod yog qhov kev xaiv no tuaj, los ntawm kev pheej hmoo tsis txaus siab tsis ua raws cov ntaub ntawv pheej tsis tshua zoo.

Raws li daim ntawv shorthand , ae " (ib txoj hlua khoob) txhais los ntawm insmod ua tus nqi ntawm persistdir raws li tau teev nyob rau hauv modules.conf , raws li tus filename ntawm tus module relative to module nrhiav kev nws tau pom nyob rau, trailing ".gz", ".o" los yog ".mod". Lus hauv no teb Yog tias modules.conf qhia meej \ " persistdir = \" (ie persistdir yog ib thaj teb npliag) ces daim ntawv shorthand no twj ywm ignored. (Saib modules.conf (5).)

-f , - ua ke

Sim ntsia lub module txawm tias lub version ntawm lub kernel khiav thiab cov version ntawm lub ntsiav uas tus qauv tau muab tso ua ke tsis phim. Qhov no tsuas yog overrides lub tshev version kos, nws twb tsis ntxim rau cim lub npe cov tshev mis. Yog tias cov cim npe hauv qhov module tsis ua raws li lub ntsiav ces tsis muaj ib txoj hauv kev txwv tsis pub leej twg mus thim qhov module.

-h , - pabcuam

Tso tawm cov ntsiab lus ntawm kev xaiv thiab tawm tam sim ntawd.

-k , --tsocleaned

Teem lub chij pib-pib ntawm tus qauv. Cov cim no yuav siv los ntawm kerneld (8) kom tshem tawm cov khoom siv uas tsis tau siv rau qee lub sij hawm - feem ntau ib feeb.

-L , - thaiv

Siv cov yaj (2) los tiv thaiv cov ntim ib sim ntawm tus qauv qub.

-m , --muaj

Tawm zij ib daim ntawv qhia rau load stdout, ua kom yooj yim debug qhov module thaum muaj teeb meem ntawm lub ntsi.

-n , -nrog

Dummy khiav, ua txhua yam tshwj tsis yog load lub module rau hauv lub ntsiav. Yog tias tau thov los ntawm -m lossis -O , qhov tseeb yuav tsim ib daim ntawv qhia lossis cov ntaub ntawv blob. Vim hais tias tus module tsis yog loaded, qhov tseeb ntsiav qhov chaw nyob yog tsis paub tias daim ntawv qhia thiab blob cov ntaub ntawv yog raws li qhov chaw quab yuam qhov chaw nyob ntawm 0x12340000.

-o module_name , - npe = module_name

Yeej hu lub npe ntawm qhov module, es tsis txhob muab lub npe los ntawm lub hauv paus lub npe ntawm cov khoom siv qhov khoom.

-Yog blob_name , - blink = blob_name

Tseg tus kwv hauv binary hauv blob_name . Qhov tshwm sim yog ib qho binary blob (tsis muaj ELF headers) qhia tseeb tias yog dab tsi yog ntsaws rau hauv qhov ntsuaj tom qab seem kev txav chaw thiab kev tsiv chaw. Kev xaiv -m pom zoo kom tau ib daim pheem thib ntawm qhov khoom.

-p , --probe

Soj ntsuam qhov module kom pom tias nws yuav tsum tau ntse loaded . Qhov no suav nrog cov ntaub ntawv qhov chaw nyob hauv txoj kab ke, xyuas cov lej xov tooj, thiab kho cov cim. Nws tsis txheeb xyuas qhov kev tsiv los tsis yog nws tsim tau ib daim ntawv qhia lossis cov ntaub ntawv blob.

-P prefix , --prefix = prefix

Qhov kev xaiv no yuav siv nrog rau versioned modules rau tus SMP lossis lub npe loj loj, vim tias cov kev qhia no muaj ib qho ntxiv ua ntxiv nyob rau hauv cov cim npe. Yog hais tias lub ntsiav yog tsim nrog cim lub ntsiab lus ces insmod yuav tau rho tawm lub prefix ntawm lub ntsiab lus ntawm "get_module_symbol" los yog "inter_module_get", ib qho ntawm cov uas yuav tsum tau nyob rau hauv tej lub ntsiav uas txhawb cov modules. Yog hais tias lub ntsiav twb tsis muaj cov cim lub cim, tiam sis tus qauv yog tsim nrog cim lub ntsiab lus ces tus neeg siv yuav tsum muab- P .

-q , - haus

Tsis txhob sau ib daim ntawv teev cov cim uas tsis daws teeb meem. Tsis txhob yws txog version mismatch. Qhov teeb meem tsuas yog nyob ntawm qhov kev tawm ntawm tus kheej tawm.

-r , - hauv paus

Qee cov neeg siv cov khoob hauv qab ntawm tus neeg tsis yog hauv paus ces nruab ib lub modules li hauv paus. Cov txheej txheem no tawm tau hauv cov khoom siv uas yog tus neeg siv cov qiv tsis yog, txawm tias cov npe ntawm cov khoom siv los ntawm cov hauv paus. Yog hais tias tus neeg siv tsis yog hauv paus yog nyom, tus neeg nkag tuaj yeem yuav muaj peev xwm overwrite tus qauv uas twb muaj dhau los ntawm tus neeg siv ntawd thiab siv qhov no raug mus rau kev siv mus rau hauv paus nkag.

Yog vim li cas, modutils yuav xyum npaj siab siv lub module uas tsis muaj hauv paus. Specifying -r yuav toggle rau daim tshev thiab cia cov hauv paus los ntsaws cov modules uas tsis muaj hauv paus. Ceebtoom: qhov nqi pheej yig rau cov hauv paus kos tau hloov thaum modutils yog teeb tsa.

Kev siv ntawm -r kom lov tes taw kev tshawb xyuas los sis teeb qhov default vim "tsis muaj paus kos" ntawm configuration sij hawm yog kev ruaj ntseg loj raug thiab tsis pom zoo.

-siv , - syslog

Tso tawm txhua yam rau syslog (3) siv lub davhlau ya nyob twg.

-S , --kallsyms

Force lub module loaded kom muaj cov ntaub ntawv kensyms , txawm tias cov ntsiav tsis txhawb nws. Qhov kev xaiv no yog rau cov tshuab me me uas kernel tau ntsaws tsis muaj cov ntaub ntawv qhia tawm tab sis xaiv cov module yuav tsum kallsyms rau debugging. Qhov kev xaiv no yog lub neej nyob rau Red Hat Linux.

-v , - tshaj tawm

Paub meej.

-V , --version

Muab daim ntawv qhia txog tus kheej ntawm tus kheej.

-Xxia , --xauj ; -x , - tsis tuaj

Ua thiab tsis txhob xa tag nrho cov module ntawm lwm cov cim, feem. Lub neej ntawd yog rau cov cim yuav tsum tau xa tawm. Cov kev xaiv no tsuas yog siv tau yog hais tias lub module tsis ntsees xa nws cov cim lub cim cim, thiab yog li no yog deprecated.

-Yog , --ksymoops ; -yog , -noksymoops

Ua thiab tsis ntxiv ksymoops cim rau ksyms. Cov cim no yog siv los ntawm ksymoops los muab kev debugging dua yog tias muaj Oops nyob rau hauv no. Lub neej ntawd yog rau cov kab cim ksymoops los txhais. Cov kev xaiv no yog ywj siab ntawm cov -X / -x kev xaiv.

ksymoops cim ntxiv li ntawm 260 bytes ib thooj me me. Tshwj tsis yog tias koj yeej tseem luv rau ntawm qhov chaw ntsiav thiab tseem tabtom txo qsyms rau nws qhov tsawg kawg nkaus, muab lub neej ntawd thiab tau ntau tshaj yog Oops debugging. Cov hlua ntawm ksymoops yuav tsum khaws cov ntaub ntawv ceev tseg.

-N , -numeric-tsuas

Tsuas kos lub thawv numeric ntawm qhov module version tiv thaiv cov ntsiav version, ie ignore EXTRAVERSION thaum txiav txim siab yog hais tias tus module belongs rau lub ntsiav. Qhov chij no yuav tau teem caij rau cov ntsiav sab 2.5, nws yog qhov yeem rau yav tom ntej.

Module Parameters

Qee cov kev cai txais kev tsis txaus siab rau kev ua haujlwm. Cov kev txwv no feem ntau yog I / O chaw nres nkoj thiab IRQ cov lej uas sib txawv ntawm lub tshuab rau tshuab thiab tsis tuaj yeem txiav txim siab los ntawm qhov khoom siv.

Hauv modules ua tau rau 2.0 series kernels, muaj integer lossis cim pointer cim yuav kho tau li ib qho parameter thiab hloov. Pib hauv 2.1 xuab moos ntawm cov kab kos, cov cim muaj ntsej muag cim tsis tau yog tias tsuas yog qhov tseem ceeb tau hloov. Tsis tas li ntawd, ntaus ntawv cov ntaub ntawv yog muab rau kev kuaj xyuas cov kev tsim muaj thaum lub sij hawm thauj khoom.

Hauv cov zauv ntawm cov zauv, txhua qhov tseem ceeb yuav tsum yog zauv, octal lossis hexadecimal a la C: 17, 021 lossis 0x11. Array elements yog teev tseg sib lawv liag sib cais. Cov ntsiab lus yuav raug cuam tshuam los ntawm kev rho tawm tus nqi.

Nyob rau hauv 2.0 series modules, qhov tseem ceeb uas tsis pib nrog ib tug naj npawb raug suav hais tias yog cov hlua. Pib hauv 2.1, qhov parameter hom lus qhia seb puas yuav txhais tus nqi ua ib txoj hlua. Yog tias tus nqi pib nrog ob-nqe lus ( " ), txoj hlua txhais tau tias C, kev khiav tawm thiab txhua yam Nco ntsoov tias los ntawm lub plhaub tam sim ntawv, cov nqi ntawm lawv tus kheej yuav tsum tau muaj kev tiv thaiv ntawm kev txhais lus plhaub.

GPL Licensed Modules thiab Cim

Pib ntawm ntsiav 2.4.10, cov modules yuav tsum muaj txoj hlua tso cai, hais siv MODULE_LICENSE () . Ob peb cov hlua pom tau tias yog GPL tshaj; lwm daim ntawv tso cai hlua los yog tsis muaj daim ntawv tso cai txhua qhov txhais tau tias tus qauv raug kho li cov khoom siv.

Yog hais tias lub ntsiav txhawb lub / proc / sys / ntses / tainted chij ces insmod yuav LOS YOG lub kos cov cim chij nrog '1' thaum thau ib tug module tsis muaj GPL licence. Kev ceeb toom yog muab tawm yog hais tias lub ntsiav pob txhawb nqa tainting thiab ib lub module yog loaded yam tsis muaj daim ntawv tso cai. Ib daim ntawv ceeb toom yog ib txwm muab rau cov modules uas muaj MODULE_LICENSE () uas tsis yog GPL tshaj, txawm nyob rau cov kernels loj dua uas tsis pab tainting. Qhov no minimizes lus ceeb toom thaum siv cov tshiab modutils rau cov kernels loj dua.

Insmod -f (force) hom yuav LOS YOG cov cim chains nrog '2' ntawm kernels uas txhawb tainting. Nws yeej ceeb toom txog kev ceeb toom.

Qee cov neeg tsim tawm yuav tsum tau cov cim uas tawm los ntawm lawv cov cai yuav tsum yog siv los ntawm cov khoom siv nrog GPL raws daim ntawv tso cai. Cov cim no yog tawm los ntawm EXPORT_SYMBOL_GPL tsis yog lub qub EXPORT_SYMBOL . GPL nkaus xwb cim exported los ntawm cov ntsiav thiab lwm cov modules tsuas pom rau modules nrog ib daim ntawv tso cai GPL, cov cim tshwm hauv / proc / ksyms nrog ib tug prefix ntawm ' GPLONLY_ '. insmod ignores tus GPLONLY_ prefix ntawm cov cim thaum loading ib GPL tso cai module ces tus module xwb hais txog lub cim cim npe, tsis muaj prefix. GPL cov cim tsuas yog tsis tau muaj rau cov modules tsis muaj daim ntawv tso cai GPL, qhov no suav cov khoom siv uas tsis muaj daim ntawv tso cai txhua.

Ksymoops Assistance

Pab nrog debugging ntawm ntsiav Oops thaum siv cov modules, insmod sai rau muab ib co cim rau ksyms, saib qhov -Y . Cov cim no pib nrog __insmod_modulename_ . Modulename yuav tsum ua kom cov cim txawv. Nws yog kev cai lij choj los thauj tib qho khoom ntau tshaj li ib zaug hauv cov npe hauv cov npe sib txawv. Tam sim no, cov cim qhia tseg yog:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile yog lub npe ntawm cov ntaub ntawv uas tus kwv ntawd ntsaws los ntawm. Qhov no saib xyuas kom cov ksymoops tuaj yeem phim cov cai rau qhov khoom tseeb. mtime yog lub xeem hloov daim timestamp rau cov ntaub ntawv ntawd hauv hex, xoom yog tias txoj kev ua tsis tau zoo. version yog qhov tseem ceeb version tias tus module yog compiled rau, -1 yog hais tias tsis muaj version yog muaj. Lub cim uas muaj lub cim muaj qhov pib qhov chaw nyob ua tus module header.

__insmod_modulename_Ssectionname_LLength

Cov cim no tshwm sim thaum pib ntawm ELF tshooj, pib .text, .rodata, .data, .bss thiab .sbss. Nws tsuas yog tshwm sim yog tias qhov seem muaj qhov tsis yog xoom. sectionname yog lub npe ntawm pawg ELF, ntev yog qhov ntev ntawm seem hauv decimal. Cov cim no pab tau cov ksymoops daim ntawv qhia chaw nyob rau seem thaum tsis muaj cov cim.

__insmod_modulename_Ppersistent_filename

Tsuas yog tsim los ntawm insmod yog hais tias lub module muaj ib los sis ntau tshaj cov uas tau cim tias cov ntaub ntawv tsis tu ncua thiab ib filename txuag cov ntaub ntawv (saib -e , saum toj no).

Lwm qhov teeb meem nrog debugging ntsiav Oops hauv modules yog tias cov txheem / proc / ksyms thiab / proc / modules yuav hloov ntawm lub Oops thiab thaum koj ua cov ntaub ntawv cav. Pab kom kov yeej qhov teeb meem no, yog hais tias directory / var / log / ksymoops tshwm sim ces insmod thiab rmmod yuav tau luam / proc / ksyms thiab / proc / modules rau / var / log / ksymoops nrog lub prefix ntawm Y% m % d% H% M% S. Tus neeg khiav dej num yuav qhia tau rau ksymoops uas siv cov ntaub ntawv snapshot los siv thaum debugging tus Oops. Yog tsis hloov mus lov tes taw qhov no. Yog tias koj tsis xav kom nws tshwm sim, tsis txhob tsim / var / log / ksymoops . Yog tias qhov directory no tshwm sim, nws yuav tsum muaj los ntawm cov hauv paus thiab ua hom 644 los yog 600 thiab koj yuav tsum khiav cov ntawv no txhua hnub los yog li ntawd. Tsab ntawv hauv qab no yog ntsia raws li insmod_ksymoops_clean .

Cov ntaub ntawv yooj yim kom paub

NPE

insmod - nruab loadable ntsiav module

SYNOPSIS

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