Linux / Unix Command: insmod

Linux / Unixi käsk insmod installib käivitatavas kernelis laaditavat moodulit . insmod üritab moodulit seostada tööparameetriga , lahendades kõik sümbolid kerneli eksporditud sümbol tabelis.

Kui mooduli faili nimi antakse ilma kataloogideta või laiendita, otsib insmod mõnest ühisest vaikekataloogist. Keskmise muutuja MODPATH saab seda vaikeväärtust tühistada. Kui modulaatori konfiguratsioonifail, näiteks /etc/modules.conf olemas on, ignoreerib MODPATHis määratud teed.

Keskkonnamuutuja MODULECONF saab kasutada ka muud tüüpi konfiguratsioonifaili valimiseks vaikimisi /etc/modules.conf (või /etc/conf.modules (vananenud)). See keskkonnamuutuja ignoreerib kõiki ülaltoodud määratlusi.

Kui on määratud keskkonnamuutuja UNAME_MACHINE , kasutab modutils uname () syscalli masinaruumi asemel oma väärtust. Seda kasutatakse peamiselt 64-bitise mooduli kompileerimiseks 32-bitises kasutaja ruumis või vastupidi, seadistage UNAME_MACHINE moodulitüübile. Praegused modutilid ei toeta moodulite täieliku ristkasutamise režiimi, vaid piirdub hosti arhitektuuri 32- ja 64-bitise versiooni valimisega.

Valikud

-e persist_name , --persist = persist_name

Määrab, kus moodulist püsivad andmed loetakse koormusest ja kirjutatakse siis, kui see mooduli näidis on tühjaks laaditud. Seda võimalust ignoreeritakse vaikimisi, kui moodulil pole püsivaid andmeid. Püsivaid andmeid loeb ainult insmod, kui see on olemas, vaikimisi insmod ei töötle püsivaid andmeid.

Sätteväljendina tõlgendatakse -e "" (tühi string) insmod-ga kui püsistri väärtus, nagu see on määratletud moodulites .conf , millele järgneb mooduli failinimi võrreldes mooduli otsinguteega, mida see leiti, miinus ükskõik milline trailing ".gz", ".o" või ".mod". Kui modules.conf määrab kindlaks " persistdir = " (st persistdir on tühi väli), siis väheneb see stenogramm vaikimisi. (Vaata modules.conf (5).)

-f , - jõud

Mõtte koormata moodul isegi siis, kui jooksva kerneli versioon ja selle mooduli versioon, mille jaoks moodul on koostatud, ei sobi kokku. See muudab ainult kerneli versiooni kontrolli, kuid see ei mõjuta sümbolinime kontrollimist. Kui moodulis olevad sümbolinimed ei vasta kernelile, siis pole moodulit sundida moodulit laadima insmodi .

-h , --helbi

Näita valikute kokkuvõtet ja kohe väljuda.

-k , --autoklean

Moodulil oleva automaatse puhastamise lipu määramine. Seda lippu kasutab kerneld (8), et eemaldada moodulid, mida pole mõnda aega kasutatud - tavaliselt üks minut.

-L , - lukk

Kasutage karu (2) sama sama mooduli koormate vältimiseks.

-m , --map

Väljuge stdoutist koorma kaardi, muutes kerneli paanika korral mooduli silumiseks lihtsamaks.

-n , --noload

Dummy run, tehke kõike muud kui laadige moodul kernelisse. Kui -m või -O soovib, esitab käsk kaardi või kopeerimisfaili. Kuna moodulit ei laadita, ei ole reaalse kerneli koormate aadress tundmatu, nii et kaarti ja kopeerimisfail põhineksid meelevaldsel laadimisaadressil 0x12340000.

-o mooduli_nimi , --nimi = mooduli_nimi

Määrake selgesõnaliselt moodul, selle asemel et nime tuletada lähtekoodi objektifaili põhinimest.

-O blob_name , --blob = blob_name

Salvestage binaarobjekt blob_name'is . Tulemuseks on kahekomponentne blob (ei ole ELF-i päised), mis näitab täpselt seda, mis on pärast sektsiooni manipuleerimist ja ümberpaigutamist kernelisse laaditud. Objekti kaardi saamiseks on soovitatav kasutada -m-d .

-p , --probe

Proovige moodulit, et näha, kas seda saab edukalt laadida . See hõlmab objektifaili leidmist mooduli teekonda, versiooninumbrite kontrollimist ja sümbolite lahendamist. See ei kontrolli ümberpaigutamisi ega ka kaardi või libifaili.

-P prefiks , --prefix = prefiks

Seda võimalust saab kasutada SMP või bigmem-kerneli versioonimoodulitega, kuna sellistel moodulitel on nende sümbolinimedele lisatud täiendav prefiks. Kui kernel on ehitatud sümbolite versioonidega, siis eemaldab insmod automaatselt prefiksi määratlusest "get_module_symbol" või "inter_module_get", millest üks peab olema mis tahes modules toetatavas kernelis. Kui kernelil puudub sümbolversioon, kuid moodul on ehitatud sümboli versioonidega, peab kasutaja esitama -P .

-q , - kummitus

Ärge printige lahendamata sümbolite loendit. Ärge kaebake versiooni mittevastavust. Probleem kajastub ainult insmodi väljumisolukorras.

-r , - juur

Mõned kasutajad koondavad mooduleid mitte-root userid'i all ja paigaldavad seejärel mooduleid juurina. See protsess võib jätta moodulid, mis kuuluvad administraatorile, kes ei ole root, isegi kui moodulite kataloog kuulub root. Kui mitte-root kasutajaid on rikutud, saab sissetungija üle kirjutada olemasolevad moodulid, mis on selle kasutajaliidi omandis, ja kasutada seda säritust, et käivitada alglaadimise juurutõstmiseni.

Vaikimisi tagastab modutils katsed kasutada juurkasutaja moodulit. Määrangu -r abil saab kontrollida ja lubada root laadida mooduleid, mis ei kuulu root. Märkus: juurkinnituse vaikimisi väärtust saab muuta, kui modutils on konfigureeritud.

Juurkontrolli keelamiseks või vaikeseadete määramiseks "juurkinnituseta" konfiguratsiooniaja ajal on -r kasutamine suur turvasäri ja seda ei soovitata.

-s , - syslog

Väljuge terminali asemel syslogist (3) kõik.

-S , --kallüümid

Koormatud mooduli jõudmine kallsymsiandmete juurde , isegi kui kernel seda ei toeta. See valik on mõeldud väikestele süsteemidele, kus tuum on laaditud ilma kallsyms- andmeteta, kuid valitud moodulid vajavad silumiseks kallsyms . See valik on Red Hat Linuxi vaikimisi.

-v , --verbose

Olge jutt.

-V , --versioon

Kuvage insmodi versioon.

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

Tehke ja ärge eksportige kõiki mooduli väliseid sümboleid vastavalt. Vaikeväärtus on eksporditavate sümbolite jaoks. See valik on efektiivne vaid juhul, kui moodul ei ekspordi oma kontrollitud sümbol tabelit selgesõnaliselt ja seega ei sobi.

-Y , --ksimoops ; -aa , -noksmikops

Tehke ja ärge lisage ksymoops sümboleid ksymsile. Neid sümboleid kasutavad ksymoops, et pakkuda paremat silumist, kui selles moodulis on Oops. Vaikimisi on määratud ksymoops sümbolid. See suvand ei sõltu -X / -x valikutest.

Ksymoopide sümbolid lisavad ligikaudu 260 baiti igale laaditud moodulile. Kui olete kerneli ruumi tõesti lühikesed ja üritate vähendada ksimide miinimumsuurust, tehke vaikeväärtuseks ja täpsemaks. Oi, silumine. Kestimopside sümbolid on vajalikud püsimooduli andmete salvestamiseks.

-N , - ainult numbritega

Kontrollige ainult mooduli versiooni numbrilist osa kerneli versioonile, st ignoreerige EXTRAVERSION, kui otsustate, kas moodul kuulub kerneli. See lipp on automaatselt seadistatud kerneli 2,5 jaoks, see on vabatahtlik varasematele kernelidele.

Mooduli parameetrid

Mõned moodulid aktsepteerivad laadimisaja parameetreid, et kohandada nende toimimist. Need parameetrid on sageli I / O porti ja IRQ-numbrid, mis erinevad masinast masina järgi ja mida ei saa riistvaralt määrata.

2.0-seeria tuumade jaoks ehitatud moodulites võib iga täisarvu või tähemärgi sümbolit käsitleda parameetrina ja modifitseerida. Alates 2.1-seeria tuumadest on sümbolid selgelt parameetridena märgistatud, nii et ainult konkreetseid väärtusi võib muuta. Veelgi enam, laaditava aja jooksul esitatud väärtuste kontrollimiseks on esitatud tüübiinfo.

Täisarvude korral võivad kõik väärtused olla kümnendkoha, kaheksand või kuueteistkümnendsüsteemis la C: 17, 021 või 0x11. Array elemendid on täpsustatud järjekorrast eraldatud komadega. Elemente saab vahele jätta, jättes väärtuse.

2.0-seeria moodulites loetakse stringidena väärtusi, mis ei algata numbriga. Alates punktis 2.1 näitab parameetri tüüpi teave, kas väärtus on stringina tõlgendada. Kui väärtus algab kahekordse hinnapakkumisega ( " ), tõlgendatakse stringi nii nagu C-s, escape-järjestustes ja kõigis. Pange tähele, et shelli viipust võib vaja minna tsitaatide tõlgendamise eest.

GPL litsentsitud moodulid ja sümbolid

Alustades kernelist 2.4.10, peaks moodulitel olema litsentsirent, mis on määratletud kasutades MODULE_LICENSE () . Mitmeid stringe peetakse GPL-ga ühilduvaks; mis tahes muu litsentsi string või üldse mitte litsents, tähendab, et moodulit peetakse omandiõigusega.

Kui kernel toetab / proc / sys / kernel / tainted lugu, siis insmod on VÕI salastatud lipp koos "1", kui laaditakse moodul ilma GPL-litsentsita. Hoiatus antakse, kui kernel toetab õrnemist ja moodul laaditakse ilma litsentsita. Hoiatus antakse alati moodulitele, millel on MODULLE_LICENSE (), mis ei ühildu GPL-iga, isegi vanemate tuumade puhul, mis ei toeta hõõrumist. See minimeerib hoiatusi, kui vanematelt tuumadelt kasutatakse uusi mooduleid.

insmod -f (jõu) režiim VÕI taigna lipp, mille '2' on tuhandeid, mis toetavad kahjutamist. See annab alati hoiatuse.

Mõned kerneli arendajad nõuavad, et oma koodiga eksporditavaid sümboleid saaks kasutada ainult GPL-i ühilduva litsentsi moodulitega. Neid sümboleid ekspordib EXPORT_SYMBOL_GPL tavalise EXPORT_SYMBOL asemel. Kerneli ja teiste moodulite kaudu eksporditavad GPL- põhised sümbolid on nähtavad ainult GPL-i ühilduva litsentsiga moodulitega, need sümbolid kuvatakse / proc / ksyms koos prefiksiga " GPLONLY_ ". insmod ignoreerib sümbolite eesliite GPLONLY_ GPL litsentsitud mooduli laadimisel, nii et moodul viitab tavalisele sümbolinimele ilma eesliidita. GPL-ga ei kaasne ainult GPL-ga ühilduva litsentsi jaoks ainult sümboleid, sealhulgas litsentsideta moduleid.

Ksymoops Assistance

Kerneli silumisprotsessi abistamiseks Ootame moodulite kasutamisel insmod vaikimisi mõne sümboli lisamiseks ksymidele, vt -Y- valikut. Need sümbolid algavad __insmod_modulename_ -ga . Sümbolid on ainulaadsed. On õigustatud laadida sama objekti rohkem kui üks kord erinevate moodulinimede all. Praegu on määratletud sümbolid:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

Objektifail on objekti laaditud faili nimi. See tagab, et ksymoops sobib koodi õige objektiga. mtime on selle faili viimane muudetud ajatempel hex, null, kui stat ei õnnestunud. versioon on mooduli koostatud kerneli versioon, -1 kui versioon pole saadaval. _O- sümbolil on sama lähteandme kui mooduli päis.

__insmod_modulename_Ssectionname_Llength

See sümbol kuvatakse valitud ELF-i jaotiste alguses, praegu .text, .rodata, .data, .bss ja .sbss. See ilmub ainult siis, kui sektsioonis on nullist erinev suurus. sektsiooni nimi on ELF-i jao nimi, pikkus on kümnendkoha pikkune jaotis. Need sümbolid aitavad ksymoops kaardi aadresse jagada, kui sümboleid pole saadaval.

__insmod_modulename_Ppersistent_filename

Seda saab luua ainult insmod, kui moodulil on üks või mitu parameetrit, mis on märgitud püsivateks andmeteks, ja püsivate andmete salvestamiseks failinimi (vt -e , eespool) on saadaval.

Teine probleem silumisjälgimise osas Hoolimata moodulitest on see, et / proc / ksyms ja / proc / moodulid võivad omavahel vahetada ja logifaili töötlemisel. Selle probleemi lahendamiseks kopeerib insmod ja rmmod kataloogi / var / log / ksymoops eksemplari / proc / ksyms ja / proc / modules automaatselt / var / log / ksymoops koos prefiksiga date +% Y% m % d% H% M% S`. Süsteemiadministraator saab öelda, milliseid hetktõmmisefaile kasutada Opsi silumisel ksymoops . Selle automaatse koopia keelamiseks pole lülitit. Kui te ei soovi seda esineda, ärge looge / var / log / ksymoops . Kui see kataloog on olemas, peaks see kuuluma root, olema režiim 644 või 600, ja peaksite seda skripti käivitama iga päev või nii. Allpool olev skript on installitud insmod_ksymoops_clean .

Põhiteave teadmiseks

NIMI

insmod - paigaldage laaditav kerneli moodul

SÜNOPSIS

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o mooduli_nimi ] [-O blob_name ] [-P prefiks ] moodul [ sümbol = väärtus ...]