Skip to main content

Kaikki Linux / Unix-komennolla: insmod

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely (Saattaa 2025)

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely (Saattaa 2025)
Anonim

Linux / Unix-komento insmod asentaa kuormitettavan moduulin käynnissä olevassa ytimessä.insmod yrittää linkittää moduulin käynnissä olevaan ytimeen ratkaisemalla kaikki symbolit ytimen vietystä symbolitaulukosta.

Jos moduulitiedoston nimi on annettu ilman hakemistoja tai laajennusta,insmod hakee moduulin joissakin tavallisissa oletushakemistoissa. YmpäristömuuttujaMODPATH voidaan ohittaa tämä oletus. Jos moduulin kokoonpanotiedosto, kuten/etc/modules.conf olemassa, se ohittaa määritetyt polutMODPATH.

YmpäristömuuttujaMODULECONF voidaan myös valita eri kokoonpanotiedosto oletusarvosta/etc/modules.conf (tai/etc/conf.modules (Poistettu)). Tämä ympäristömuuttuja ohittaa kaikki edellä esitetyt määritelmät.

Kun ympäristömuuttujaUNAME_MACHINE on asetettu, modutils käyttää sen arvoa koneen kentän sijaan uname () syscallista. Tämä on pääasiassa käytössä, kun 64-bittisiä moduuleja kootaan 32-bittisessä käyttäjän tilassa tai päinvastoinUNAME_MACHINE moduuleihin. Nykyiset moduulit eivät tue täydellistä ristikkomuotoa moduuleille, vaan se rajoittaa vastaanottavan arkkitehtuurin 32- ja 64-bittisten versioiden valitsemista.

vaihtoehdot

-e persist_name , --persist= persist_name

Määrittää, missä moduulissa olevat pysyvät tiedot luetaan kuormituksesta ja kirjoitetaan, kun moduulin instantiointi on purettu. Tätä vaihtoehtoa ohitetaan hiljaisesti, jos moduulissa ei ole pysyviä tietoja. Pysyviä tietoja luetaan vaininsmod jos tämä vaihtoehto on olemassa, oletusarvoisestiinsmod ei käsittele pysyviä tietoja.

Lyhyesti muotoisena,-e "" (tyhjä merkkijono) tulkitaaninsmod kuten arvonpersistdir kuten määritellään kohdassamodules.conf, jota seuraa moduulin tiedostonimi suhteessa sen moduulirakenteeseen, josta se löytyi, miinus mitkä tahansa jäljellä olevat ".gz", ".o" tai ".mod". Josmodules.conf täsmentää "persistdir ="(ts.persistdir on tyhjä kenttä), tämä lyhennetty lomake hiljaa jätetään huomiotta. (Katsomodules.conf (5).)

-f, --pakottaa

Yritä ladata moduuli, vaikka käyttämättömän ytimen versio ja ytimen versio, jolle moduuli koottiin, eivät täsmää. Tämä vain ohittaa ydinversion tarkistuksen, sillä ei ole vaikutusta symbolien nimien tarkistuksiin. Jos moduulin symbolin nimet eivät täsmää kerneliin, ei ole mitään keinoa pakottaainsmod lataamaan moduuli.

-h, --auta

Näytä yhteenveto vaihtoehdoista ja lopeta välittömästi.

-k, --auto Puhdistus

Aseta moduulin auto-clean-lippu. Tätä lippua käyttävätkerneld(8) moduulien poistamiseksi, joita ei ole käytetty jossakin ajanjaksossa - yleensä yksi minuutti.

L, --Lukko

Käyttääparvi(2) samanaikaisen kuormituksen estämiseksi.

-m, --kartta

Tuottaa kuormakartan stdoutilla, mikä helpottaa moduulin debugoitumista ytimen paniikissa.

-n, --ei lastia

Dummy run, tee kaikki paitsi lataa moduuli ytimeen. Jos pyydetään-m tai-O, juoksu tuottaa kartan tai blob-tiedoston. Koska moduulia ei ole ladattu, todellinen ytimen latausosoite on tuntematon, joten kartta ja blob-tiedosto perustuvat mielivaltaiseen kuormitusosoitteeseen 0x12340000.

-o moduulin_nimi , --nimi= moduulin_nimi

Nimeä moduuli nimenomai- sesti nimen sijaan lähde-objektitiedoston perusnimiin.

-O blob_name , --möykky= blob_name

Tallenna binaariobjekti sisään blob_name . Tuloksena on binäärinen blob (ei ELF-otsikoita), jotka osoittavat tarkasti, mitä ytimeen syötetään leikkauksen manipuloinnin ja siirtämisen jälkeen. Vaihtoehto-m on suositeltavaa saada kohteen kartta.

-p, --koetin

Tutki moduuli nähdäksesi, voisiko se ladata onnistuneesti. Tämä sisältää objektitiedoston sijoittamisen moduuliväylälle, tarkistaa versionumerot ja ratkaisee symbolit. Se ei tarkista siirtoja eikä tuo karttaa tai blob-tiedostoa.

-P etuliite , --etuliite= etuliite

Tätä vaihtoehtoa voidaan käyttää SMP- tai bigmem-ytimen versioiduilla moduuleilla, koska tällaisilla moduuleilla on ylimääräinen etuliite lisätty niiden symbolien nimet. Jos ydin on rakennettu symboliversioilla, niininsmod poimii automaattisesti etuliitteen "get_module_symbol" tai "inter_module_get" määritelmästä, joista yksi on olemassa missä tahansa ytimessä, joka tukee moduuleja. Jos ytimessä ei ole symboliversioita, mutta moduuli on rakennettu symboliversioilla, käyttäjän on toimitettava-P.

-q, --hiljainen

Älä kirjoita luetteloa ratkaisemattomista symboleista. Älä valittaa version yhteensopimattomuudesta. Ongelma näkyy vain poistumisen tilassainsmod.

-r, --root

Jotkut käyttäjät kokoavat moduuleja ei-juurikäyttäjän sisällä ja asentavat moduulit juuri. Tämä prosessi voi jättää ei-juurikäyttäjän omistamat moduulit, vaikka moduulihakemiston omistaa root. Jos ei-juurikäyttäjä on vaarantunut, tunkeilija voi korvata nykyisen käyttäjän tunnistamia nykyisiä moduuleja ja käyttää tätä altistusta bootstrap-yhteydelle pääkäyttäjän päästä.

Oletusarvon mukaan modutils hylkää yritykset käyttää moduulia, joka ei ole pääkäyttäjän omistuksessa. määrittäminen -r valitsee tarkistuksen ja antaa rootille sellaisten moduulien lataamisen, jotka eivät ole pääkäyttäjän omistamia.

Huomautus: Rootkitarkistuksen oletusarvoa voidaan muuttaa, kun modutils on määritetty.Käyttämällä -r-näppäintä poistaaksesi juuren tarkistuksen tai asettamalla oletusasetus "ei root-tarkistusta" määritysaikana on suuri suojausaltistusta eikä sitä suositella.

-S, --syslog

Tuottaa kaikensyslog(3) päätelaitteen sijasta.

-S, --kallsyms

Pakota ladattu moduuli olemaankallsyms tietoja, vaikka ydin ei tue sitä. Tämä vaihtoehto on tarkoitettu pieniin järjestelmiin, joissa ydintä ladataan ilmankallsyms mutta valitut moduulit tarvitsevatkallsyms virheenkorjausta varten. Tämä vaihtoehto on Red Hat Linuxin oletusasetus.

-v, verbose

Ole varovainen.

V, --versio

Näytä versioinsmod.

X, --viedä; -x, --noexport

Tee ja älä vie kaikkia moduulin ulkoisia symboleja. Oletuksena on, että symbolit viedään. Tämä vaihtoehto on tehokas ainoastaan, jos moduuli ei eksplisiittisesti vie omaa ohjattua symbolitietotaulukkoa, joten se on vanhentunut.

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

Tee ja älä lisääksymoops symbolit ksimeiksi. Näitä symboleja käytetäänksymoops Parempi virheenkorjaus, jos tässä moduulissa on Oops. Oletusasetus onksymoopsmääritettävät symbolit. Tämä vaihtoehto on riippumatonX/-x vaihtoehtoja.

ksymoops symbolit lisäävät noin 260 tavua ladattua moduulia kohti. Ellet ole kovin ytimen ytimen tilaa ja yrität vähentää ksymejä sen minimikokoon, ota oletusarvo ja tarkenna Oopsin virheenkorjaus.ksymoops Symboleja tarvitaan pysyvien moduulitietojen tallentamiseen.

-N, --numeric vain

Vain tarkista moduuliversion numeerinen osa ytimen versiota vastaan, eli ohita EXTRAVERSION, kun päätät, onko moduuli ydinyk- sikössä. Tämä lippu asetetaan automaattisesti ytimeen 2.5 lähtien, mutta se on valinnainen aikaisemmille ytimille.

Moduulin parametrit

Jotkin moduulit hyväksyvät latausaikaparametrit muokatakseen niiden toimintaa. Nämä parametrit ovat usein I / O-porttia ja IRQ-numeroita, jotka vaihtelevat koneesta toiseen, eikä niitä voida määrittää laitteistosta.

Moduulit, jotka on rakennettu 2.0-sarjan ytimiin, kaikkia kokonaisluku- tai merkkiosoitussymbolia voidaan käsitellä parametrina ja modifioida. 2.1-sarjan ytimistä lähtien symbolit merkitään nimenomaisesti parametreiksi, jotta vain tiettyjä arvoja voidaan muuttaa. Lisäksi annetaan tyypin informaatio kuormituksen aikana annettujen arvojen tarkistamiseksi.

Kokonaislukujen osalta kaikki arvot saattavat olla desimaaleina, oktaalina tai heksadesimaalina a la C: 17, 021 tai 0x11. Array-elementit on määritelty sekvenssillä erotellut pilkulla. Elementit voidaan ohittaa jättämällä arvo pois.

2.0-sarjan moduuleissa arvot, jotka eivät alkota numerolla, katsotaan merkkijonoksi. Alkaen 2.1, parametrin tyyppitiedot ilmaisevat, tulkitseko arvo merkkijonoina. Jos arvo alkaa kaksinkertaisilla lainauksilla ('), merkkijono tulkitaan C: llä, poistumisjaksoilla ja kaikilla. Huomaa, että shell-kehotteesta voi itse tarvita suojattuja lainauksia kuoren tulkinnasta.

GPL: n lisensoidut moduulit ja symbolit

Kernel 2.4.10: ssä alkaen moduuleilla pitäisi olla käyttöoikeusjono, joka määritellään käyttäenMODULE_LICENSE (). Useat merkkijonot tunnustetaan GPL-yhteensopiviksi; mikä tahansa muu lisenssisana tai ei lainkaan käyttöoikeutta tarkoittaa, että moduulia käsitellään omistukseksi.

Jos ydin tukee/ Proc / sys / kernel / pilaama lippu sitteninsmod TAI taitettu lippu "1": lla, kun hän lataa moduulin ilman GPL-lisenssiä. Varoitus annetaan, jos ydin tukee hajoamista ja moduuli ladataan ilman lisenssiä. Varoitus annetaan aina moduuleille, joilla onMODULE_LICENSE () tämä ei ole GPL-yhteensopiva, vaikka vanhoja ytimiä, jotka eivät tue häiriöitä. Tämä minimoi varoitukset, kun vanhoissa ytimissä käytetään uusia modutileja.

insmod -f (voima) -moodissa TAI vioittunut lippu "2" ytimillä, jotka tukevat tahroja. Se antaa aina varoituksen.

Jotkut ytimen kehittäjät vaativat, että koodinsa vievien symbolien on käytettävä vain GPL-yhteensopivalla lisenssillä varustettuja moduuleja. Nämä symbolit viedäänEXPORT_SYMBOL_GPL normaalin sijaanEXPORT_SYMBOL. GPL-yksinomaiset symbolit, joita ydin ja muut moduulit vievät, näkyvät vain GPL-yhteensopivilla lisensseillä varustetuille moduuleille. Nämä symbolit näkyvät/ Proc / ksyms jossa on etuliite "GPLONLY_'. insmod sivuuttaaGPLONLY_ etuliite symboleilla, kun lataat GPL: n lisensoitua moduulia, joten moduuli viittaa vain normaaliin symboliin ilman etuliitettä. GPL: n vain symboleja ei ole saatavana moduuleille, joilla ei ole GPL-yhteensopivaa lisenssiä, mukaan lukien moduulit, joissa ei ole lisenssiä lainkaan.

Ksymoops Assistance

Järjestelmän virheenkorjauksen helpottaminen Hups, kun käytät moduuleja,insmod oletuksena lisäämällä joitain symboleja ksimeihin, katsoY vaihtoehto. Nämä symbolit alkavat__insmod_ modulename_ . modulename vaaditaan, että symbolit ovat ainutlaatuisia. On laillista ladata sama objekti useamman kerran eri moduulimäärien alla. Tällä hetkellä määritetyt symbolit ovat:

__insmod_ modulename _ Oobjectfile _ Mmtime _ vVERSION

objectfile on sen tiedoston nimi, josta kohde on ladattu. Näin varmistetaan, että ksymoopit voivat vastata koodia oikeaan kohteeseen. mtime on viimeinen muutettu aikaleima kyseisessä tiedostossa hex, nolla, jos stat ei onnistunut. versio on kernelversio, jonka moduuli on koottu, -1, jos versiota ei ole saatavilla._O Symbolilla on sama aloitusosoite kuin moduulin otsikko.

__insmod_ modulename _ Ssectionname _ Llength

Tämä symboli ilmestyy valitun ELF-osion alkuun, tällä hetkellä .text, .rodata, .data, .bss ja .sbss. Se näkyy vain, jos osassa on nolla-kokoinen koko. sectionname on ELF-osan nimi, pituus on osan pituus desimaalilukuina. Nämä symbolit auttavat ksymoopteja kartoittamaan osoitteita osioihin, kun mitään symbolia ei ole käytettävissä.

__insmod_ modulename _Ppersistent_ Tiedoston nimi

Vain luotuinsmod jos moduulissa on yksi tai useampia parametreja, jotka on merkitty pysyviksi tiedoiksi ja tiedostonimi pysyvien tietojen tallentamiseksi (ks-e, yllä) on käytettävissä.

Toinen ongelma virheenkorjaus ytimen Oops moduulit on, että sisältö / proc / ksyms ja / proc / moduulit voivat vaihtaa Oopsin ja prosessin aikana. Voit ratkaista tämän ongelman, jos hakemisto / var / log / ksymoops on olemassainsmod jarmmod kopioi / proc / ksyms ja / proc / moduulit automaattisesti / var / log / ksymoopsiin etuliitteellä `date +% Y% m% d% H% M% S`. Järjestelmänvalvoja voi kertoa ksymoopsille, jotka kuvaavat tiedostoja käytettäessä virheitä Oopsissa. Automaattinen kopiointi ei ole käytössä. Jos et halua sen syntyvän, älä luo / var / log / ksymoops. Jos hakemisto on olemassa, sen pitäisi olla pääkäyttäjänä ja olla tilassa 644 tai 600, ja sinun pitäisi suorittaa tämä käsikirja päivittäin tai niin. Alla oleva komentosarja asennetaan insmod_ksymoops_cleaniksi.

#! / Bin / sh # Poista poistetut ksyytit ja moduulit, joita ei käytetä 2 päivässä jos -d / var / log / ksymoops sitten asettaa -e # Varmista, että aina on vähintään yksi versio d = `päiväys +% Y% m% d% H% M% S` cp -a / proc / ksyms /var/log/ksymoops/${d}.ksyms cp -a / proc / modules /var/log/ksymoops/${d}.modules etsi / var / log / ksymoops -tyy f -aika +2 -exec rm {} ; fi

Perustiedot tietää

NIMI

insmod - Asenna ladattava ydinmoduuli

SYNOPSIS

insmod -fkkLmnpqrsSvVxXyYN -e persist_name -o moduulin_nimi -O blob_name -P etuliite moduuli symboli= arvo …