Linux / Unix komandoa: insmod

Linux / Unix komandoak insmod- ek exekutatzen duen kernelaren modulu kargagarria instalatzen du . insmod modulua kernelean exekutatzen den kernelaren sinbolo guztien araberakoa da.

Moduluaren fitxategiaren izena direktorio edo luzapenik gabe ematen bada, insmod- ek modulua bilatu egingo du direktorioak lehenetsi arrunt batzuetan. MODPATH inguruneko aldagaia lehenetsi hau gainidatzi dezake. Moduluaren konfigurazio-fitxategia, adibidez, /etc/modules.conf badago, MODPATH- en definitutako bideak gainidatziko ditu.

Aldagaiaren aldagaia MODULECONF ere erabil daiteke beste /etc/modules.conf lehenetsitako konfigurazio fitxategia aukeratzeko (edo /etc/conf.modules (zaharkitua)). Inguru aldagai honek goian aipatutako definizio guztiak gainidatziko ditu.

UNAME_MACHINE inguruneko aldagaia ezarrita dagoenean, modutils-ek bere balioa erabiliko du uname () syscall-eko makinen eremuan. Hau da, batez ere, erabilera 64 biteko moduluak 32 biteko erabiltzaile-espazioan biltzen ari zarenean , UNAME_MACHINE moduluen motaren arabera. Gaur egungo moduluak ez dira modulu gurutzatuen modua osatzeko, hariaren arkitekturako 32 eta 64 biteko bertsioak aukeratzen dira.

Aukerak

-e persist_name , --persist = persist_name

Moduluaren iraunkorrak diren datuak irakurtzerakoan eta irakurtzen direnean zehazten du moduluaren instanizazioa deskargatzen denean. Aukera hau modu isilean ezeztatu egiten da moduluak datu iraunkorrak ez baditu. Datu iraunkorrak inmod- ek irakurtzen ditu aukera hau aukeratuta badago, insmodek ez ditu datu persistenteak prozesatzen.

Laburpen inprimaki gisa , -e "" (kate hutsa) insmod gisa interpretatzen du persistdir balioa moduluak.conf- en definituta bezala, moduluaren bilaketa bide-izenaren moduluaren fitxategi-izena eta ondoren aurkitutakoa, ken edozein ".gz", ".o" edo ".mod" amaieran. Modules.conf-k " persistdir = " zehazten badu (hau da, jarraitzen du hutsik dagoen eremua) orduan taulan inprimaki hau isilik dago. (Ikusi moduluak.conf (5).)

-f , --force

Saiatu kargatu modulua, nahiz eta kernelaren bertsioa eta modulua konpilatu den kernelaren bertsioa ez datoz bat. Honek kernel bertsioaren egiaztapena gainidazten du, ez du ikur-izenaren egiaztapenik eragiten. Moduluaren ikurrak ez datoz bat kernelarekin bat badator modurik gabe modulua inertzeko modurik ez dagoela.

-h , --help

Aukeren laburpen bat bistaratu eta berehala irten.

-k , --autoclean

Ezarri auto-garbiketa flag moduluan. Bandera honek kerneld (8) erabiliko du denbora tarte batean erabili ez diren moduluak kentzeko, normalean minutu bat.

-L , --lock

Erabili artaldea (2) modulu berean aldi berean kargatzeko.

-m , --map

Irteera bat kargatzeko mapa stdout-en, modulua arazteko kernelaren izua gertatuz gero.

-n , --noload

Dummy run, dena kargatu modulua kernelean izan ezik. Behar izanez gero -m edo -O eskatuz gero, exekuzioak mapa edo blob fitxategia sortuko du. Modulua kargatzen ez denez, benetako kernel kargaren helbidea ezezaguna da, beraz, mapa eta blob fitxategia 0x12340000 karga arbitrarioaren helbidean oinarritzen dira.

-o module_name , --name = module_name

Mota esplizituki izena, iturburuko objektuaren fitxategiaren oinarrizko izena deribatu baino.

-O blob_name , --blob = blob_name

Gorde objektu bitarra blob_name-n . Emaitza blob binarioa da (ELF goiburuak ez), kernelean zer kargatzen den zehazki, atal manipulazioa eta lekualdaketa ondoren. Aukera -m gomendatzen da objektuaren mapa lortzeko.

-p , --probe

Probatu modulua ondo kargatu ahal izateko. Honek barne hartzen du objektu fitxategia moduluen bideoan, bertsio zenbakiak egiaztatzen ditu eta sinboloak ebazten ditu. Ez du birkokapenik egiten eta ez du mapa edo blob fitxategia sortzen.

-P aurrizkia , --prefix = aurrizkia

Aukera hau SMP edo bigmem kernelentzako bertsio moduluekin erabil daiteke, modulu horientzako aurrizkiak bere sinbolo-izenetan gehituta. Kernel sinboloen bertsioekin eraiki bada, insmodek "get_module_symbol" edo "inter_module_get" definizioaren aurrizkia automatikoki erauziko du, eta horietako bat moduluek onartzen duten kernel batean egon behar dute. Kernelak sinbolo bertsio ez badu baina modulua sinboloen bertsioekin eraiki bada, erabiltzaileak -P behar ditu.

-q , --quiet

Ez inprimatu gabeko sinboloen zerrenda bat inprimatu. Ez kritikatu ez datorren bertsioarekin. Arazoa insmod-en irteeraren egoeran soilik islatuko da.

-r , - root

Zenbait erabiltzailek moduluak biltzen ditu root ez den erabiltzaile baten azpian eta instalatu moduluak root gisa. Prozesu hau root ez den erabiltzaileen jabetzako moduluak utz ditzake, nahiz eta moduluen direktorioa root-ekoa izan. Erabiltzaile ez-arriskutsua arriskuan jartzen bada, intruder batek userid-ek dituen jabetzako dauden moduluek gainidatz ditzakete eta esposizio hori erabiltzeko root-era sartzeko abiaraztean.

Lehenespenez, modutils-ek root-aren jabea ez den modulu bat erabiltzeko saiakerak arbuiatuko ditu. Egiaztatu -r txantiloia txandakatzeko eta erroak root ez diren moduluak kargatu ahal izateko. Oharra: root egiaztapenaren balio lehenetsia aldatu daiteke modutils konfiguratuta dagoenean.

R-erabiltzea root egiaztapena desgaitzeko edo lehenetsiriko "konfigurazio kontrolik gabeko" ezarpena konfiguratzeko segurtasun esposizio handia da eta ez da gomendagarria.

-s , - syslog

Irteera syslog (3) guztia terminalaren ordez.

-S , --kallsyms

Behartu kargatutako moduluak kallsyms datuak eduki ditzan , kernelek ez badu onartzen. Aukera hau kallsys datuak kalls gabe kernel gabe kargatutako sistema txikiak da, baina hautatutako moduluak behar kallsyms debugging. Aukera hau lehenetsia da Red Hat Linux-en.

-v , --verbose

Kontuz.

-V , --version

Erakutsi insmod bertsioa.

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

Egin eta ez moduluaren kanpoko ikur guztiak esportatu, hurrenez hurren. Lehenetsia esportatu beharreko ikurrak dira. Aukera hau eraginkorra baino ez da, moduluak bere ikur kontrolatuen taulako taula esplizituki esportatzen ez badu eta, beraz, zaharkituta dago.

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

Egin eta ez gehitu ksymoops ikurrak ksyms- etik. Sinbolo hauek ksymoops- ek erabiltzen ditu hobespen hobeak emateko Modulo honetan Oops badago. Lehenetsia definitu beharreko ksymoops ikurrak dira. Aukera hau independentea da -X / -x aukerak.

Ksymoops ikurrak 260 byte inguru gehitzen dira kargatutako modulu bakoitzeko. Kernelen espazioan oso laburra ez bazara eta gutxieneko tamainan ksimoiak murrizten saiatzen zarenean, hartu lehenetsia eta zehaztu Oops arazteko. Ksymoops sinboloak behar dira moduluaren datu iraunkorrak gordetzeko.

-N , --numeric-only

Moduluaren bertsioaren zenbaki zatia bakarrik egiaztatzen du kernel bertsioaren aurka, hau da, baztertu EXTRAVERSION modulu bat kernel bat bada. Bandera 2.5 kerneletik automatikoki ezartzen da, lehenago kernelentzako aukerakoa da.

Moduluaren parametroak

Modulu batzuek karga-denbora parametroak onartzen dituzte beren funtzionamendua pertsonalizatzeko. Parametro hauek sarritan I / O ataka eta IRQ zenbakiak dira, makina makina batetik bestera eta ezin dira hardware bidez zehaztu.

2.0 serieko kerneletarako eraikitako moduluetan, zenbaki oso bat edo karaktere erakuslearen ikurrak parametro gisa eta aldatutako moduan tratatuko dira. 2.1 serieko kernelen hasieran, sinboloak parametro gisa esplizituki markatzen dira, beraz, balore zehatzak bakarrik aldatu daitezke. Gainera, informazio mota ematen da karga-denbora emandako balioak egiaztatzeko.

Zenbaki osoen kasuan, balio guztiak lauko C, 17, 021 edo 0x11 bitarte hamartar, zortziko edo hexadecimaletan egon daitezke. Array elementuek komaz bereizitako sekuentzia zehazten dute. Elementuak baliogabea da saltzea.

2.0 serieko moduluetan, zenbaki batekin hasten ez diren balioak kateak dira. 2.1 hasieran, parametroaren informazio mota adierazten du balioa kate gisa interpretatzeko. Balioa komatxorik bikoitzekin hasten bada ( " ), katea C-en, ihes-sekuentzien eta guzti gisa interpretatzen da. Kontutan izan shell shell-ean, komatxoak beraiek shell interpretazioetatik babestu behar dituztela.

GPL Lizentziatutako moduluak eta sinboloak

2.4.10 kernelarekin hasita, moduluek lizentzia-kate bat izan behar dute, MODULE_LICENSE () erabiliz definituta. Hainbat kate GPL bateragarria dela aitortzen zaie; beste edozein lizentzia-kate edo lizentziarik ez dela esan nahi du modulua jabeduna dela.

Nukleoak / proc / sys / kernel / tainted flag onartzen badu, orduan insmod- ek 'N' izeneko markatzailea izango du, '1' modulua GPL lizentzia gabe. Abisu bat igortzen da kernelek kutsadura onartzen badu eta modulu bat lizentzia gabe kargatuta badago. GPL bateragarria ez den moduluak (MODULE_LICENSE () dituen modulu bat ere igorriko da abisu bat, hau da, GPL bateragarriak ez diren kernel zaharretan ere. Honek abisu minimizatzen du modutilo berri bat kernel zaharragoetan erabiltzen denean.

insmod -f (indarrean) modua OR kutsuarekin onartzen diren kernelekin '2' ez da. Abisu bat ematen du beti.

Kernelen garatzaileek kode hori esportatzen duten sinboloak soilik erabili behar dituzte GPL lizentzia bateragarri batekin. Sinbolo hauek EXPORT_SYMBOL_GPL esportatzen dira EXPORT_SYMBOL normalaren ordez . Gernikako eta beste modulu batzuek esportatutako sinboloak bakarrik onartzen dira GPL bateragarriak diren moduluekin, sinbolo hauek / proc / ksyms agertzen dira ' GPLONLY_ ' aurrizkiarekin. insmod- ek GPLONLY_ prefix-ak sinboloak alde batera utziko ditu GPL lizentziadun modulua kargatzean, moduluak sinbolo-izen arruntari soilik aipatzen dio, aurrizkirik gabe. GPL sinboloak soilik ez dira moduluetan eskuragarri GPL lizentzia bateragarririk gabe, hau da, baimenik gabeko moduluak ere barne hartzen ditu.

Ksymoops laguntza

Kernelaren arazketa laguntzeko moduluak erabiltzean, insmodek lehenetsiak sinbolo batzuk gehitzen dizkio ksimoi, ikus -Y aukera. Sinbolo hauek hasten dira __insmod_modulename_ rekin. Modulename beharrezkoa da sinboloak egiteko. Nahitaezkoa da objektu bera kargatu behin baino gehiagotan modulu izen desberdinen azpian. Gaur egun, definitutako sinboloak hauek dira:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile objektua kargatu duen fitxategiaren izena da. Honek ziurtatzen du ksymoops-ek kode zuzena objektu egokiarekin lot dezakeela. mtime- ek azken aldatutako timestamp fitxategia hexean du, zero puntu bat huts egin badu. bertsioa modulua biltzen duen kernel bertsioa da, -1 bertsioa ez badago eskuragarri. _O ikurrak moduluaren goiburua bezala hasierako helbide bera du.

__insmod_modulename_Ssectionname_Llength

Ikur hau hautatutako ELF atalen hasieran agertzen da, gaur egun .text, .rodata, .data, .bss eta .sbss. Atalak zero tamaina ez badu bakarrik agertzen da. ataleko izena ELF atalaren izena da, luzera hamartarren luzera da. Sinbolo hauei esker, ksymoops-en helbideen atalak sekuentziak ez daude erabilgarri.

__insmod_modulename_Ppersistent_filename

Inmodek bakarrik sortu du moduluak datu iraunkor gisa markatutako parametro bat edo gehiago ditu eta iraunkorrak diren datuak gordetzeko fitxategi bat dago (ikus -e , goian).

Beste arazoren bat arazteko kernel moduluekin gertatzen den bezala, / proc / ksyms eta / proc / moduluen edukiak Oopsen artean alda ditzakezu eta egunkari fitxategia prozesatzen duzunean. Arazo hau gainditzeko, / var / log / ksymoops direktorioa existitzen bada, insmod eta rmmod automatikoki kopiatu / proc / ksyms eta / proc / moduluak / var / log / ksymoops-en `date +% Y% m aurrizkiekin % d% H:% M% s '. Sistemaren administratzaileak KSymoops-ek esaten du Oops-en debug-a nola erabili behar diren. Ez dago aldaketarik automatikoki kopi hau desgaitzeko. Ez baduzu nahi izan, ez sortu / var / log / ksymoops . Direktorio hori badago badago, root bidez jabetu behar da eta modua 644 edo 600 izan behar du eta script hau exekutatu beharko zenuke egunero. Beheko script instalatuta dago insmod_ksymoops_clean gisa.

Oinarrizko informazioa ezagutu

NAME

insmod - instalatu kernel moduluaren modulua

SINOPSIA

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