Linux / Unix Command: insmod

Ang Linux / Unix command insmod nag-instalar sa loadable module sa running kernel. Ang insmod naningkamot sa pag-link sa usa ka module ngadto sa running kernel pinaagi sa pagsulbad sa tanan nga mga simbolo gikan sa lamesa nga gi-export nga simbolo sa kernel.

Kon ang module nga ngalan sa file gihatag nga walay mga direktoryo o extension, ang insmod magapangita sa module sa pipila ka komon nga mga directory sa default. Ang palibut nga variable nga MODPATH mahimong gamiton sa pagsalikway niini nga default. Kon ang usa ka module nga configuration file sama sa /etc/modules.conf anaa, kini mopatipas sa mga agianan nga gihubit sa MODPATH .

Ang kalainan nga magkaiba MODULECONF mahimo usab nga gamiton sa pagpili sa usa ka lain-laing mga configuration file gikan sa default /etc/modules.conf (o /etc/conf.modules (deprecated)). Kini nga kalagmitan nga variable mag-override sa tanang mga kahulugan sa ibabaw.

Sa diha nga ang kalainan sa kalikopan nga UNENMACHINE gipahimutang, ang mga modutils mogamit sa bili niini imbis sa field sa makina gikan sa simmer nga uname (). Kasagaran kini gigamit kung ikaw nag-compile sa mga 64-bit modules sa 32-bit nga luna sa gumagamit o vice versa, itakda ang UNIMEMACHINE sa klase sa mga modulo. Ang modernong modutil wala mosuporta sa tibuok nga cross build mode alang sa mga modules, kini limitado sa pagpili sa taliwala sa 32- ug 64-bit nga mga bersyon sa arkitektura sa host.

Mga kapilian

-e persist_name , --persist = persist_name

Nagtutok kung diin ang bisan unsang padayon nga datos alang sa module gibasa gikan sa load ug gisulat sa dihang kini nga instantiation sa module nga wala ibutang. Kini nga kapilian hilom nga gibalewala kung ang module walay walay hunong nga datos. Ang nagapadayon nga datos gibasa lamang sa insmod kung kini nga kapilian anaa, pinaagi sa default nga insmod dili pagproseso sa nagapadayon nga datos.

Ingon nga usa ka porma sa pagkasunodsunod , -o "" (usa ka walay sulod nga hugpong) gihubad pinaagi sa insmod ingon nga ang bili sa persistdir ingon sa gipasabut sa modules.conf , gisundan sa filename sa module nga may kalabutan sa module nga dalan sa pagpangita nga nakita niini, wala'y bisan unsang nga nagsunod sa ".gz", ".o" o ".mod". Kon ang modules.conf nagtino nga " persistdir = " (ie ang persistdir usa ka walay sulod nga natad) nan kini nga porma sa pagkasunod wala tahora. (Tan-awa ang modules.conf (5).)

-f , --force

Palihug i-load ang module bisan pa kon ang bersyon sa running kernel ug ang bersyon sa kernel diin ang module nga gihugpong wala magkatugma. Kini lamang ang nag-uswag sa kernel version check, wala kini epekto sa tseke nga ngalan sa simbolo. Kung ang mga ngalan nga simbolo sa module dili motakdo sa kernel nan walay paagi aron pugson ang insmod sa pag-load sa module.

-h , - tabang

Ipakita ang usa ka summary sa mga kapilian ug dayon mogawas.

-k , --autoclean

Ibutang ang bandila sa awto nga awtomatiko sa module. Kini nga bandila gamiton sa kerneld (8) aron kuhaon ang mga modules nga wala magamit sa pipila ka panahon - kasagaran usa ka minuto.

-L , -

Paggamit sa panon (2) aron mapugngan ang dungan nga mga linugdangan sa samang module.

-m , --map

I-output ang usa ka mapa sa load sa stdout, nga mas sayon ​​nga i-debug ang module kon adunay kernel panic.

-n , --noload

Dummy run, buhata ang tanang butang gawas sa pag-load sa module sa kernel. Kung gipangayo pinaagi sa usa -m o -O , ang dagan mohimo sa usa ka mapa o blob nga file. Tungod kay ang module wala mabugkos, ang tinuod nga kernel load address wala mahibal-an aron ang mapa ug blob file gibase sa usa ka arbitraryong address sa 0x12340000.

-o module_name , --name = module_name

Tin-aw nga ginganlan ang module, kay sa pagkuha sa ngalan gikan sa base nga ngalan sa source object file.

-O blob_name , --blob = blob_name

Luwasa ang binary nga butang sa blob_name . Ang resulta mao ang binary blob (walay mga header sa ELF) nga nagpakita kung unsa ang gikarga sa kernel human sa pagmobu sa seksyon ug pagbalhin. Ang opsiyon -m girekomendar nga makakuha og usa ka mapa sa butang.

-p , --probe

Susiha ang module aron tan-awon kung kini mahimong malampuson nga pagkarga . Naglakip kini sa pagpangita sa object file sa path sa module, pagsusi sa mga numero sa bersyon, ug pagsulbad sa mga simbolo. Dili kini magsusi sa mga relocation ni kini makahimo og usa ka mapa o blob file.

-P prefix , --prefix = prefix

Ang kini nga kapilian mahimong magamit uban sa mga bersyon nga modules alang sa usa ka SMP o bigmem kernel, tungod kay ang maong mga module adunay dugang prefix nga idugang sa ilang mga pangalan sa simbolo. Kon ang kernel gitukod nga adunay simbolo nga mga bersyon dayon ang insmod awtomatik nga makuha ang prefix gikan sa kahulugan sa "get_module_symbol" o "inter_module_get", usa niini kinahanglan nga anaa sa bisan unsang kernel nga nagsuporta sa mga modules. Kung ang kernel walay simbolo nga mga bersyon apan ang module gitukod nga adunay simbolo nga mga bersyon dayon ang tiggamit kinahanglan nga mohatag- P .

-q , --quiet

Ayaw pag-imprinta sa usa ka lista sa bisan unsang dili masulbad nga mga simbolo. Ayaw pagreklamo mahitungod sa mismatch sa bersyon. Ang suliran makita lamang sa exit status sa insmod .

-r , - gamut

Ang pipila ka mga tiggamit sa pagtipon sa mga module ubos sa usa ka dili-root userid dayon-instalar ang mga modulo sama sa gamut. Kini nga proseso mahimong magbilin sa mga modulo nga gipanag-iya sa dili-root nga userid, bisan pa ang direktoryo sa modules gipanag-iya sa gamut. Kon ang dili-root userid makompromiso, ang usa ka tig-among-among mahimo nga overwrite ang mga anaa sa modules nga gipanag-iya sa userid ug gamiton kini nga pagkaladlad sa bootstrap hangtud sa paglambo sa access.

Sa kasagaran, ang modutils mosalikway sa mga pagsulay sa paggamit sa usa ka module nga dili gipanag-iya sa gamut. Ang pagtino -r mag-toggle sa tseke ug tugotan ang gamut sa pag-load sa mga modules nga wala gipanag-iya sa gamut. Hinumdumi: ang default nga bili alang sa root check mahimong mausab kung modutil ang modutils.

Ang paggamit sa -r aron dili magamit ang pagsusi sa gamut o paghimo sa default nga "walay root check" sa panahon sa pagseguro usa ka dakong kalapasan sa seguridad ug dili girekomendar.

-s , - syslog

I-output ang tanan ngadto sa syslog (3) imbes nga terminal.

-S , --kalaysay

Pugoson ang puno nga module nga adunay kallsyms data, bisan kung ang kernel wala mosuporta niini. Kini nga kapilian alang sa gagmay nga mga sistema diin ang kernel gikarga nga walay kallsyms data apan gipili nga modules nagkinahanglan og kallsyms alang sa debugging. Kini nga kapilian mao ang default sa Red Hat Linux.

-v , - ooose

Pag-usab.

-V , - pagsulay

Ipakita ang bersyon sa insmod .

-X , - eksport ; -x , --noexport

Buhata ug ayaw i-export ang tanang mga simbolo sa gawas sa module, matag usa. Ang default mao ang pag-export sa mga simbolo. Kini nga opsyon epektibo lamang kon ang module dili eksakto nga mag-eksport sa kaugalingon nga kontrolado nga simbolo nga lamesa, ug sa ingon wala na usba.

-Y , - mga himno ; -y , --noksymoops

Buhata ug ayaw idugang ang mga simbolo nga ksymoops ngadto sa mga ksyms. Kini nga mga simbolo gigamit sa mga ksymoops aron sa paghatag mas maayo nga debugging kon adunay usa ka Oops sa niini nga module. Ang kinaugalingon alang sa mga simbolo sa ksymoops nga gihubit. Kini nga kapilian wala mag-agad sa -X / -x nga mga kapilian.

Ang mga simbolo ksymoops makadugang sa gibana-bana nga 260 bytes kada module nga punoan. Gawas kon ikaw mubo ra sa luna sa kernel ug naningkamot sa pagpakunhod sa mga ksymms ngadto sa kinagamyang gidak-on niini, kuhaa ang default ug mas tukma nga Oops debugging. gikinahanglan ang mga simbolo ksymoops aron sa pagluwas sa padayon nga datos sa module.

-N , --numeric-only

Susiha lamang ang numeric nga bahin sa bersyon sa module batok sa bersyon sa kernel, nga nagbalewala sa EXTRAVERSION sa pagdesidir kon ang usa ka module usa ka kernel. Kini nga bandila awtomatikong gibutang alang sa kernel 2.5 ug sa unahan, kini opsyonal alang sa naunang mga liso.

Module Parameters

Ang ubang mga modulo modawat sa load-time nga mga parameter aron ipahaum ang ilang operasyon. Kini nga mga parameter mao ang kasagaran nga I / O nga pantalan ug mga numero sa IRQ nga nagkalainlain gikan sa makina ngadto sa makina ug dili matino gikan sa hardware.

Sa mga modules nga gitukod alang sa 2.0 serye nga mga kernels, ang bisan unsang simbolo sa integer o character nga pointer mahimong pagtratar isip usa ka parameter ug giusab. Sugod sa 2.1 series kernels, ang mga simbolo klaro nga gimarkahan isip mga parameter aron ang mga espesipikong mga bili lamang mahimong usbon. Dugang pa, ang tipo nga impormasyon gihatag alang sa pagsusi sa mga mithi nga gihatag sa oras sa pag-load.

Sa kaso sa mga integer, ang tanan nga mga bili mahimo nga sa desimal, octal o hexadecimal sa la C: 17, 021 o 0x11. Ang mga elemento sa elemento gipahayag nga han-ay nga gibahin sa mga koma. Ang mga elemento mahimong malaktawan pinaagi sa dili paghatag sa bili.

Sa 2.0 nga serye nga mga modulo, ang mga bili nga dili nagsugod sa usa ka gidaghanon giisip nga mga hilo. Sugod sa 2.1, ang impormasyon sa type sa parameter nga nagpakita kon hubaron ba ang bili isip usa ka hilo. Kon ang bili magsugod sa double-quotes ( " ), ang hilis ang gihubad sama sa C, makalingkawas sa mga pagkasunod-sunod ug sa tanan. Hinumdomi nga gikan sa paningkamot sa kabhang, ang mga kinutlo kinahanglan nga panalipdan gikan sa hubad sa hubog.

GPL Licensed Modules ug Simbolo

Pagsugod sa kernel 2.4.10, ang mga modulo kinahanglan nga may usa ka string nga lisensya, nga gihubit gamit ang MODULE_LICENSE () . Pipila ka mga hilo giila ingon nga GPL nga compatible; bisan unsang lisensya sa lisensya o walay lisensya sa bisan unsang paagi nagpasabut nga ang module giisip nga proprietary.

Kon ang kernel nagsuporta sa / proc / sys / kernel / tainted flag unya ang insmod OR o ang tainted flag nga adunay '1' sa pag-load sa usa ka module nga walay lisensya sa GPL. Usa ka pahimangno ang gi-isyu kon ang kernel nagsuporta sa pagpanghugaw ug ang usa ka module puno nga walay lisensya. Usa ka pahimangno kanunay nga gipagawas alang sa mga modules nga adunay MODULE_LICENSE () nga dili GPL nga nahiuyon, bisan sa mga daan nga mga kernels nga wala mosuporta sa pagpuga. Kini makapakunhod sa mga pasidaan sa diha nga ang usa ka bag-ong modutils gigamit sa mas daan nga mga lugas.

Ang insmod-f (puwersa) nga modon o ang hugaw nga bandila nga adunay '2' sa mga liso nga nagsuporta sa pagpuga. Kanunay kini nga magpasidaan.

Ang ubang mga nag-develop sa kernel nagkinahanglan nga ang mga simbolo nga gi-eksport sa ilang code kinahanglan gamiton lamang sa mga modulo nga may lisensya sa GPL. Kini nga mga simbolo gipadala sa EXPORT_SYMBOL_GPL inay sa normal nga EXPORT_SYMBOL . Ang mga simbolo nga GPL lamang nga gi-eksport sa kernel ug sa ubang mga modulo makita lang sa mga modulo nga may lisensya nga GPL, kini nga mga simbolo makita sa / proc / ksyms nga may prefix nga ' GPLONLY_ '. Ang insmod nagpanghimakak sa prefix sa GPLONLY_ sa mga simbolo samtang nagadala sa usa ka lisensyado nga module sa GPL aron ang module nagpasabut lamang sa normal nga simbolo nga ngalan, nga wala ang prefix. Ang mga simbolo lamang sa GPL wala magamit sa mga module nga walay lisensya sa GPL nga nahiuyon, kini naglakip sa mga module nga walay lisensya.

Ksymoops Assistance

Aron sa pagtabang sa pag-debug sa kernel Oops sa paggamit sa mga modules, ang mga insmod wala'y mahimo sa pagdugang og pipila ka mga simbolo sa ksyms, tan-awa ang -Y nga kapilian. Kini nga mga simbolo nagsugod sa __insmod_modulename_ . Gikinahanglan ang modulename aron mahimo ang mga simbolo nga talagsaon. Kini legal nga ibutang ang sama nga butang labaw sa makausa sa ilalum sa lainlaing mga ngalan sa module. Sa pagkakaron, ang gihubit nga mga simbolo mao ang:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

Ang objectfile mao ang ngalan sa file nga gikarga sa butang. Kini nagsiguro nga ang mga ksymoops mahimong motugma sa kodigo sa husto nga butang. Ang mtime mao ang katapusang giusab nga timestamp sa maong file sa hex, zero kung ang stat napakyas. Ang bersyon mao ang bersyon sa kernel nga gisulatan sa module, -1 kon wala'y bersyon. Ang _O simbolo adunay susama nga address sa pagsugod ingon nga module header.

__insmod_modulename_Ssectionname_Llength

Kini nga simbolo makita sa pagsugod sa pinili nga mga seksyon sa ELF, karon .text, .rodata, .data, .bs ug .sbss. Kini makita lamang kung ang seksyon adunay dili-zero nga gidak-on. Ang seksiyon sa seksyon mao ang ngalan sa seksyon sa ELF, ang gitas-on mao ang gitas-on sa seksyon sa decimal. Kini nga mga simbolo makatabang sa mga address sa ksymoops sa mga seksyon kung wala'y mga simbolo.

__insmod_modulename_Ppersistent_filename

Lamang gibuhat pinaagi sa insmod kon ang module adunay usa o labaw pa nga mga lagda nga gimarkahan ingon nga nagapadayon nga datos ug usa ka filename aron sa pagluwas sa nagapadayon nga datos (tan-awa-usa, sa ibabaw) anaa.

Ang laing problema sa debugging kernel Oops sa mga modules mao nga ang mga sulod sa / proc / ksyms ug / proc / modules mahimong mag-usab tali sa Oops ug sa pagproseso sa log file. Aron sa pagbuntog niini nga problema, kon ang direktoryo / var / log / ksymoops anaa ang insmod ug rmmod awtomatik nga kopyahon / proc / ksyms ug / proc / modules sa / var / log / ksymoops nga prefix sa `date +% Y% m % d% H% M% S`. Ang sistema administrator makahimo sa pagsulti ksymoops nga snapshot files nga gamiton sa pag-debug sa Oops. Wala'y switch sa pagpugong niini nga awtomatik nga kopya. Kung dili nimo gusto nga mahitabo kini, ayaw paghimo / var / log / ksymoops . Kon ang maong direktoryo anaa, kini kinahanglan nga tag-iya sa gamut ug mahimo nga 644 o 600 ug kinahanglan nimong gamiton kini nga script adlaw-adlaw o labaw pa. Ang script sa ubos gipalingkod isip insmod_ksymoops_clean .

Pangunang Impormasyon nga Mahibal-an

NGALAN

install - load loadable kernel module

SYNOPSIS

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