Linux / Unix komanda Insmod įdiegia įkraunamą modulį veikiančioje branduolyje.Insmod bando susieti modulį su veikiančiu branduoliu, pašalinant visus simbolius iš branduolio eksportuojamos simbolių lentelės.
Jei modulio failo vardas pateikiamas be katalogų ar plėtinio,Insmod bus ieškoti modulio kai kuriose bendrojo nutylėjimo kataloguose. Aplinkos kintamasisMODPATH gali būti naudojamas norint pakeisti šį numatytąjį nustatymą. Jei modulio konfigūracijos failas, toks kaip/etc/modules.conf egzistuoja, jis pakeis kelius, apibrėžtusMODPATH.
Aplinkos kintamasisMODULECONF taip pat gali būti naudojamas norint pasirinkti kitą konfigūracijos failą iš numatytojo/etc/modules.conf (arba/etc/conf.modules (nebeaktualus)). Šis aplinkos kintamasis pakeis visas anksčiau pateiktas apibrėžtis.
Kai aplinkos kintamasisUNAME_MACHINE yra nustatytas, modutils naudos savo vertę vietoj mašininio lauko iš uname () syscall. Tai daugiausia naudinga, kai kaupiate 64 bitų modulius 32 bitų vartotojo erdvėje arba atvirkščiai, nustatykiteUNAME_MACHINE į modulių tipą. Dabartiniai modutils nepalaiko modulių visiško kryžminio kūrimo režimo, jis gali pasirinkti tik 32 ar 64 bitų pagrindinės architektūros versijas.
Galimybės
-e persist_name , --perstatyti= persist_name
Nurodo, kur bet kuris pastovus modulio duomenis skaityti iš apkrovos ir parašyti, kai šis modulio egzaminas yra iškraunamas. Ši parinktis tyliai ignoruojama, jei modulyje nėra nuolatinių duomenų. Nuolatiniai duomenys yra tik skaitomiInsmod jei ši parinktis yra, pagal nutylėjimąInsmod nepakeičia nuolatinių duomenų.
Stenografine forma-e "" (tuščia eilutė) interpretuojamaInsmod kaip vertępersistdir kaip apibrėžtamodules.conf, po kurio nurodomas modulio failo pavadinimas, susijęs su modulio paieškos keliu, kuriame jis buvo rastas, atėmus visus ".gz", ".o" arba ".mod". Jeimodules.conf nurodo "persistdir =" (t.y.persistdir yra tuščias laukas), ši šriftinė forma tyliai ignoruojama. (Pamatytimodules.conf (5).)
-f, - jėga
Bandoma įkelti modulį, net jei veikiančio branduolio versija ir branduolio versija, kuriai sudarytas modulis, nesutampa. Tai tik pakeičia branduolio versijos patikrinimą, ji neveikia simbolių pavadinimų patikrinimų. Jei modulio simbolių pavadinimai nesutampa su branduoliu, tada negalima jėgaInsmod įkelti modulį.
-h, --Pagalba
Rodyti parinkčių santrauką ir iškart išeiti.
-k, --Automatinis valymas
Nustatykite modulio automatinio išvalymo vėliavėlę. Ši vėliava bus naudojamakerneld(8) pašalinti modulius, kurie nebuvo naudojami tam tikrą laiką - paprastai vieną minutę.
-L, - atrakinti
Naudokpulkus(2), kad būtų išvengta vienalaikio to paties modulio apkrovų.
-m, - žemėlapis
Išveskite apkrovos žemėlapį stdout, kad būtų lengviau atkurti modulį branduolio panikos atveju.
-n, --be apkrovos
Manekeno paleisti, atlikite viską, išskyrus įkėlus modulį į branduolį. Jei to prašo-m arba-O, paleisti bus sukurtas žemėlapio ar aplanko failas. Kadangi modulis nėra įkeltas, realus branduolio įkėlimo adresas yra nežinomas, todėl žemėlapio ir aplanko failas yra pagrįstas savavališku apkrovos adresu 0x12340000.
-o module_name , --vardas= module_name
Aiškiai nurodykite modulį, o ne vardą iš šaltinio objekto failo bazinio pavadinimo.
-O blob_name , --blob= blob_name
Išsaugokite dvejetainį objektą blob_name . Rezultatas yra dvejetainė trinkelė (be ELF antraščių), tiksliai nurodanti, kas įkeliama į branduolį po sekcijų manipuliavimo ir perkėlimo. Pasirinkimas-m rekomenduojama gauti objekto žemėlapį.
-p, --probe
Patikrinkite modulį, kad įsitikintumėte, ar jis gali būti sėkmingai įkeltas. Tai apima objekto failo parinkimą modulio keliu, tikrinimo versijų numerius ir simbolių šalinimą. Ji netikrina perkėlimų, taip pat neparodo žemėlapio ar aplanko failo.
-P prefiksas , --prefiksas= prefiksas
Ši parinktis gali būti naudojama su vertikaliais moduliais SMP arba bigmem branduoliui, nes tokie moduliai turi papildomą prefiksą, pridėtą jų simbolių pavadinimuose. Jei branduolys buvo pastatytas naudojant simbolių versijas tadaInsmod bus automatiškai ištraukti prefiksą iš "get_module_symbol" arba "inter_module_get" apibrėžimo, iš kurių vienas turi egzistuoti bet kuriame branduolyje, kuris palaiko modulius. Jei branduolys neturi simbolių versijų, bet modulis buvo pastatytas su simbolių versijomis, vartotojas turi pateikti-P.
-q, - kietas
Neskelbkite neišspręstų simbolių sąrašo. Negalima skųstis dėl versijų neatitikimo. Problema atsispindės tik išėjimo būsenojeInsmod.
-r, - roti
Kai kurie vartotojai modulius sukoncentruoja naudodami ne root vartotojoidą, tada modulius įdiekite kaip root. Šis procesas gali palikti modulius, kurie priklauso ne root vartotojo vardams, net jei modulių aplankas priklauso root. Jei ne root userid yra pažeistas, įsibrovėlis gali perrašyti esamus modulius, priklausančius tai vartotojo vardui, ir naudoti šią ekspoziciją, norint paleisti iš naujo iki root prieigos.
Pagal numatytuosius nustatymus modutils atsisakys bandymų naudoti modulį, kuris nepriklauso root. Nurodant -r įjungs patikrinimą ir leis root root įkelti modulius, kurie nepriklauso root.
Pastaba: Numatyta šakninio tikrinimo reikšmė gali būti pakeista, kai modutils yra sukonfigūruotas.Naudojant -r, jei norite išjungti šaknies tikrinimą arba nustatyti numatytuosius parametrus "be root check" konfigūravimo metu, yra didelis saugumo poveikis ir nerekomenduojama.
-s, --syslogas
Išvesties viską įsyslog(3) vietoj terminalo.
-S, - kamsai
Priverskite įkrautą modulįkallsyms duomenys, net jei branduolys jo nepalaiko. Ši parinktis yra mažoms sistemoms, kuriose branduolys yra įkeltas bekallsyms duomenys, bet reikia pasirinkti moduliuskallsyms derinti. Ši parinktis yra "Red Hat Linux" numatytoji parinktis.
-v, --verbose
Būti verbose.
-V, --versija
Rodyti versijąInsmod.
-X, --eksportas; -x, --noexport
Atlikite ir neeksportuokite visų modulio išorinių simbolių atitinkamai. Pagal nutylėjimą yra eksportuojami simboliai. Ši parinktis yra efektyvi tik tuo atveju, jei modulis tiesiogiai neeksportuoja savo kontroliuojamos simbolių lentelės, taigi jis yra nebeaktualus.
-Y, --ksymoops; -i, - noksymo
Daryk ir nepriimkksymoops simboliai ksymams. Šie simboliai yra naudojamiksymoops jei norite gauti geresnį derinimą, jei šiame modulyje yra "Oops". Numatytoji reikšmė yraksymoopssimboliai, kuriuos reikia apibrėžti. Ši parinktis nepriklauso nuo-X/-x galimybės.
ksymoops simboliai prideda maždaug 260 baitų per įkeltą modulį. Jei esate tikrai mažai erdvės branduolio ir bandote sumažinti ksyms iki mažiausio dydžio, atlikite numatytuosius nustatymus ir tiksliau patikrinkite Oi, derindami.ksymoops simboliai yra būtini norint išsaugoti nuolatinius modulio duomenis.
-N, - tik skaitmenimis
Tik patikrinkite modulio versijos skaitinę dalį prieš branduolio versiją, t. Y. Ignoruokite EXTRAVERSION, kai nusprendžia, ar modulis priklauso branduoliui. Ši vėliava automatiškai nustatoma nuo branduolio 2,5, tai yra neprivaloma ankstesniems branduolims.
Modulio parametrai
Kai kurie moduliai priima apkrovos laiko parametrus, kad pritaikytų jų veikimą. Šie parametrai dažnai yra I / O prievadas ir IRQ numeriai, kurie skiriasi nuo mašinos iki mašinos ir kurių negalima nustatyti pagal aparatūrą.
Moduliuose, sukurtuose 2.0 serijos branduoliams, bet koks sveikas ar simbolis rodyklės simbolis gali būti laikomas parametru ir modifikuotas. Nuo 2.1 serijos branduolių simboliai aiškiai pažymimi kaip parametrai, todėl gali būti keičiamos tik konkrečios reikšmės. Be to, pateikiama tipo informacija, skirta patikrinti įkėlimo metu pateiktas reikšmes.
Visų skaičių atveju visos reikšmės gali būti dešimtainės, aštuonkės arba šešioliktainės a la C: 17, 021 arba 0x11. Array elementai yra nurodyti seka atskirti kableliais. Elementai gali būti praleisti, praleidžiant vertę.
2.0 serijos moduliuose vertės, kurios neprasideda skaičiumi, laikomos eilutėmis. Pradedant nuo 2.1, parametro tipo informacija nurodo, ar vertę reikia interpretuoti kaip eilutę. Jei vertė prasideda dvigubomis kabutėmis ('), eilutė interpretuojama kaip C, pabėgėlių sekos ir visi. Atkreipkite dėmesį, kad iš "shell" eilutės, pačios kabutės gali būti apsaugotos nuo apvalkalo interpretavimo.
GPL licencijuoti moduliai ir simboliai
Pradedant branduoliu 2.4.10, moduliuose turėtų būti licencijų eilutė, apibrėžta naudojantMODULE_LICENSE (). Kelios eilutės pripažįstamos suderinamos su GPL; bet kokia kita licencijos eilutė arba licencija jokiu būdu nereiškia, kad modulis laikomas nuosavybe.
Jei branduolys palaiko/ proc / sys / branduolys / sugadintas vėliava tadaInsmod ARBA sugadinta vėliava su "1" pakraunant modulį be GPL licencijos. Perspėjimas yra išduodamas, jei branduolys palaiko trintis ir modulis yra įkeltas be licencijos. Visada pateikiamas įspėjimas apie modulius, kuriuose yraMODULE_LICENSE () tai nėra suderinama su GPL, net vyresniuose branduoliuose, kurie nepalaiko gedimų. Tai sumažina įspėjimus, kai senesniuose branduoliuose naudojami nauji modutils.
Insmod -f (jėgos) režimas ARBA sugadinta vėliava su "2" branduoliuose, kurie palaiko purvą. Jis visada išleidžia įspėjimą.
Kai kurie branduolio kūrėjai reikalauja, kad jų kodą eksportuojami simboliai būtų naudojami tik moduliuose su GPL suderinama licencija. Šie simboliai eksportuojamiEXPORT_SYMBOL_GPL vietoj normaliosEXPORT_SYMBOL. GPL tik simboliai, kuriuos eksportuoja branduolys ir kiti moduliai, matomi tik modulius su GPL suderinama licencija, šie simboliai rodomi/ proc / ksyms su prefiksu "GPLONLY_'. Insmod ignoruojaGPLONLY_ prefiksas ant simbolių pakraunant GPL licenzijuotą modulį, todėl modulis nurodo įprastą simbolio pavadinimą be prefikso. GPL simboliai nėra prieinami moduliams be GPL suderintos licencijos, tai apima modulius be licencijos.
Ksymoops Assistance
Padėti derinti branduolį Oi, kai naudojate modulius,Insmod Numatyta, kad kai kuriems simboliams pridėti ksyms, žr-Y pasirinkimas. Šie simboliai prasideda__insmod_ modulename_ . The modulename reikalaujama, kad simboliai taptų unikalūs. Tais pačiais tikslais galima įkelti tą patį objektą daugiau nei vieną kartą skirtinguose modulių pavadinimuose. Šiuo metu apibrėžti simboliai yra:
__insmod_ modulename _ Oobjectfile _ Mmtime _ Vversionas
objekto failas yra failo, kurį objektas buvo įkeltas, pavadinimas. Tai užtikrina, kad ksymoops gali suderinti kodą su tinkamu objektu. mtime yra paskutinis modifikuotas timestampas to failo hex, nulis, jei stat nepavyko. versija yra branduolio versija, kuria sudarytas modulis, -1 jei nėra versija. The_O simbolis turi tą patį pradžios adresą kaip modulio antraštė.
__insmod_ modulename _ Ssectionname _ Ilgis
Šis simbolis pasirodo pasirinktų ELF sekcijų pradžioje, šiuo metu yra .text, .rodata, .data, .bss ir .sbss. Tai atrodo tik tada, kai skiltyje yra nulinis dydis. sectionname yra ELF sekcijos pavadinimas, ilgis yra sekcijos ilgis dešimtainis. Šie simboliai padeda ksymoops žemėlapio adresus sekcijoms, kai nėra simbolių.
__insmod_ modulename _Persistent_ failo pavadinimas
Tik sukurtaInsmod jei modulis turi vieną ar daugiau parametrų, kurie pažymėti kaip nuolatiniai duomenys, ir failo vardą, skirtą išsaugoti nuolatinius duomenis (žr-e, aukščiau).
Kita problema su derinimo branduoliu Oi, moduliuose, yra / proc / ksyms turinys ir / proc / moduliai gali keistis tarp "Oops" ir kai apdorojote žurnalo failą. Norėdami padėti išspręsti šią problemą, jei kataloge / var / log / ksymoops egzistuojaInsmod irrmmod automatiškai nukopijuos / proc / ksyms ir / proc / modules į / var / log / ksymoops su prefiksu "data +% Y% m% d% H% M% S". Sistemos administratorius gali pasakyti, ksymoops, kokius momentinių nuotraukų failus naudoti, kai deriname Oi. Nėra šios jungties, kad būtų galima išjungti šią automatinę kopiją. Jei nenorite, kad tai įvyktų, nesukurkite / var / log / ksymoops. Jei šis katalogas egzistuoja, jis turėtų priklausyti root ir būti 644 ar 600 režimu, ir šį dieną turėtumėte paleisti šį scenarijų. Žemiau esantis scenarijus yra įdiegtas kaip insmod_ksymoops_clean.
#! / bin / sh # Ištrinkite išsaugotus ksyms ir modulius, kurie nebuvo pasiekti per 2 dienas jei -d / var / log / ksymoops tada rinkinys -e # Įsitikinkite, kad visada yra bent viena versija d = "data +% Y% m% d% H% M% S" cp -a / proc / ksyms /var/log/ksymoops/${d}.ksyms cp -a / proc / modules /var/log/ksymoops/${d}.modules rasti / var / log / ksymoops-type f -atime +2 -exec rm () ; fi VARDAS Insmod - įdiegti įkeliamą branduolio modulį SANTRAUKA Insmod -fhkLmnpqrsSvVxXyYN -e persist_name -o module_name -O blob_name -P prefiksas modulis simbolis= vertę … Pagrindinė informacija, kurią reikia žinoti