Linux Ubuntu / Unix Komando: insmod

The Linux Ubuntu / Unix paréntah insmod installs modul loadable dina kernel jalan. insmod nyoba numbu modul a kana kernel ngajalankeun ku resolving sagala simbol tina méja simbol diékspor ka kernel urang.

Mun nami file modul dirumuskeun tanpa directories atanapi extension, insmod bakal milari modul dina sababaraha directories standar umum. Lingkungan variabel MODPATH bisa dipaké pikeun override standar ieu. Lamun file konfigurasi modul kayaning /etc/modules.conf aya, bakal override jalur didefinisikeun dina MODPATH.

Lingkungan variabel MODULECONF ogé bisa dipaké pikeun milih file konfigurasi béda ti /etc/modules.conf standar (atawa /etc/conf.modules (deprecated)). variabel lingkungan ieu bakal override sagala definisi luhur.

Lamun variabel lingkungan UNAME_MACHINE diatur, modutils bakal make nilaina tinimbang widang mesin ti uname () syscall. Ieu utamana ngeunaan pamakéan sawaktos Anjeun keur compiling modul 64-bit dina 32-bit pamaké spasi atawa sabalikna, pakakas UNAME_MACHINE kana tipe tina modul. modutils ayeuna teu ngarojong pinuh cross ngawangun mode pikeun modul, mangka dugi ka milih antara versi 32- jeung 64-bit sahiji arsitéktur host.

Pilihan

-e persist_name, --persist = persist_name

Hususna dimana wae data pengkuh keur modul nu keur maca tina on beban sarta ditulis pikeun nalika instantiation ieu modul nu keur unloaded. pilihan ieu cicingeun dipaliré lamun modul nu boga data pengkuh. Data pengkuh ngan dibaca ku insmod lamun pilihan ieu hadir, ku insmod standar teu ngolah data pengkuh.

Salaku formulir shorthand , -e "" (hiji senar kosong) ieu diinterpretasi ku insmod sakumaha nilai persistdir sakumaha didefinisikeun dina modules.conf, dituturkeun ku Ngaran koropak tina modul nu relatif ka jalur pilarian modul ieu kapanggih dina, dikurangan wae labuh ".gz", ".o" atawa ".mod". Mun modules.conf hususna "persistdir =" (ie persistdir mangrupa widang kosong) lajeng formulir shorthand ieu cicingeun teu dipalire. (Tempo modules.conf (5).)

-f, --force

Nyobian muka modul nu sanajan versi tina kernel ngajalankeun na versi tina kernel keur nu modul ieu disusun teu cocog. Ieu ukur overrides cek versi kernel, éta boga pangaruh dina cék ngaran simbol. Lamun ngaran simbol dina modul nu teu cocog kernel anu lajeng aya cara maksa insmod pikeun muka modul nu.

-h, --help

Nembongkeun kasimpulan pilihan jeung geura kaluar.

-k, --autoclean

Atur bendera otomatis-bersih dina modul nu. Bendera ieu bakal dipaké ku kerneld (8) ngaleupaskeun modul nu teu acan dipaké dina sababaraha periode waktu - biasana hiji menit.

-L, --lock

Paké para (2) pikeun nyegah beban simultaneous tina modul sarua.

-m, --map

Kaluaran peta beban on stdout, sahingga leuwih gampang pikeun debug modul dina acara anu panik kernel.

-n, --noload

Dummy amprok, ngalakukeun sagalana iwal muka modul ka kernel anu. Lamun dipénta ku hiji -m atanapi -o, ngaji bakal ngahasilkeun peta atawa blob file. Kusabab modul henteu dieusian, alamat beban kernel nyata kanyahoan kitu peta na file blob anu dumasar kana alamatna beban sawenang of 0x12340000.

-o module_name, --name = module_name

Kuduna ngaranan modul, batan deriving ngaran ti nami dasar file sumber obyék.

-o blob_name, --blob = blob_name

Simpen objek binér di blob_name. hasilna mangrupakeun blob binér (euweuh headers ELF) némbongkeun kahayang anu dimuat kana kernel sanggeus bagian manipulasi jeung relokasi. Pilihan -m Disarankeun meunang peta obyék.

-p, --probe

Usik modul ka tingali lamun eta bisa hasil dimuat . Ieu ngawengku locating file obyék dina jalur modul, mariksa angka Vérsi, sarta resolving simbol. Teu pariksa relocations atawa henteu eta ngahasilkeun peta atawa blob file.

Awalan -P, --prefix = awalan

pilihan ieu bisa dipaké kalawan modul versioned pikeun SMP atawa kernel bigmem, saprak modul misalna boga hiji awalan tambahan ditambahkeun dina ngaran simbol maranéhanana. Mun kernel anu diwangun kalayan versi simbol lajeng insmod otomatis bakal nimba awalan ti harti "get_module_symbol" atawa "inter_module_get", salah sahiji nu kedah aya di mana wae kernel nu ngarojong modul. Mun kernel anu boga versi simbol tapi modul ieu diwangun kalayan versi simbol lajeng pamaké kudu nyadiakeun -P.

-q, --quiet

Ulah nyitak daptar sagala simbol unresolved. Ulah ngangluh ngeunaan mismatch versi. Masalah bakal ngan bisa reflected dina status kaluar tina insmod.

-r, - root

Sababaraha pamaké compile modul dina hiji userid non-root lajeng masang modul salaku akar. proses ieu bisa ninggalkeun modul milik userid non-akar, sanajan diréktori modul anu dipiboga ku akar. Lamun userid non-root geus compromised, hiji jelema nu ngacow tiasa nimpa modul nu aya milik userid yén na make paparan ieu bootstrap nepi ka akar aksés.

Sacara standar, modutils bakal nampik usaha pikeun ngagunakeun modul nu teu dipiboga ku akar. Nangtukeun -r bakal toggle dipariksa jeung ngawenangkeun akar pikeun muka modul nu teu dipiboga ku akar. Catetan: dina nilai standar pikeun dipariksa root bisa dirobah lamun modutils geus ngonpigurasi.

Mangpaat -r mareuman root mariksa atawa netepkeun standar keur "euweuh akar cek" wanoh konfigurasi mangrupakeun paparan kaamanan utama na teu dianjurkeun.

-s, - syslog

Kaluaran sagalana pikeun syslog (3) tinimbang terminal.

-S, --kallsyms

Maksakeun modul sarat pikeun mibanda data kallsyms, sanajan kernel anu henteu ngarojong eta. Pilihan Ieu pikeun sistim leutik dimana kernel anu dimuat tanpa data kallsyms tapi modul dipilih kedah kallsyms pikeun debugging. pilihan ieu teh standar on Red Hat Linux.

-V, --verbose

Janten verbose.

-V, --version

Nembongkeun versi tina insmod.

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

Ngalakukeun tur ulah ngekspor sadaya lambang éksternal modul urang masing-masing. standar kasebut pikeun lambang bisa diékspor. pilihan Ieu ngan efektif lamun modul nu teu eksplisit ngekspor tabel simbol dikawasa sorangan, sahingga ieu deprecated.

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

Ngalakukeun tur ulah nambahkeun ksymoops simbol pikeun ksyms. Simbol ieu dipaké ku ksymoops nyadiakeun debugging hadé lamun aya hiji Haduh di modul ieu. Standar kasebut pikeun ksymoops lambang dihartikeun. Pilihan Ieu bebas tina -X / -x pilihan.

ksymoops lambang nambahkeun kira 260 bait per modul dimuat. Iwal anjeun estu pondok dina spasi kernel na nyobian pikeun ngurangan ksyms kana ukuranana minimum anak, nyandak standar jeung meunang leuwih akurat Haduh debugging. ksymoops lambang diwajibkeun simpen data modul pengkuh.

-N, --numeric-hijina

Ngan pariksa bagian numerik tina versi modul ngalawan versi kernel, nyaéta malire EXTRAVERSION nalika mutuskeun lamun modul a milik kernel a. bendera ieu sacara otomatis disetel pikeun kernel 2,5 saterusna, éta pilihan pikeun kernels baheula.

parameter modul

Sababaraha modul nampa parameter beban-waktos keur ngaropea operasi maranéhanana. parameter ieu mindeng I / O port na angka IRQ nu rupa-rupa ti mesin keur mesin na teu bisa ditangtukeun ti hardware.

Dina modul diwangun pikeun kernels runtuyan 2.0, sagala integer atanapi karakter simbol pointer bisa diolah jadi parameter a jeung dirobah. Dimimitian di kernels 2.1 seri, lambang nu kuduna ditandaan salaku parameter sahingga ngan nilai husus bisa jadi robah. Saterusna, jenis informasi anu disadiakeun pikeun ngecék nu nilai disadiakeun dina waktos beban.

Dina kasus wilangan buleud, sadaya nilai mungkin bisa di decimal, octal atanapi hexadecimal a la C: 17 021 atanapi 0x11. elemen Asép Sunandar Sunarya téh dieusian runtuyan dipisahkeun ku koma. Elemen bisa skipped ku omitting nilai.

Dina 2.0 modul seri, nilai anu teu dimimitian ku angka hiji dianggap senar. Awal taun 2.1, informasi tipe parameter urang nunjukkeun naha mun napsirkeun nilai salaku senar a. Lamun nilai nu dimimitian ku ganda-tanda petik ( "), string anu diinterpretasi sakumaha di C, kabur urutan na sagala. Ulah dicatet yén ti cangkang ajakan, anu tanda petik sorangan bisa perlu ditangtayungan tina cangkang interpretasi.

GPL dilisensikeun modul jeung Simbol

Dimimitian ku kernel 2.4.10, modul kudu boga string lisénsi, diartikeun make MODULE_LICENSE (). Sababaraha string anu dipikawanoh salaku mahluk GPL cocog; sagala string lisénsi séjén atawa aya lisénsi pisan hartina modul nu keur dirawat sakumaha proprietary.

Mun kernel anu ngarojong / proc / sys / kernel / tainted bendera lajeng insmod bakal OR bendera tainted kalawan '1' lamun loading modul a tanpa lisénsi GPL. A warning geus dikaluarkeun mun kernel anu ngarojong tainting na modul keur dieusian tanpa lisénsi a. A warning sok dikaluarkeun pikeun modul nu boga MODULE_LICENSE () yén teu GPL cocog, sanajan dina kernels heubeul nu teu ngarojong tainting. Ieu ngaminimalkeun warnings lamun modutils anyar anu dipaké dina kernels heubeul.

(gaya) mode insmod -f bakal OR bendera tainted kalawan '2' dina kernels nu ngarojong tainting. Eta salawasna isu gera.

Sababaraha pamekar kernel merlukeun yén simbol diékspor ku kode maranéhanana kudu ngan dipaké ku modul ku lisénsi cocog GPL. Lambang ieu téh diékspor ku EXPORT_SYMBOL_GPL gaganti EXPORT_SYMBOL normal. GPL-hijina lambang diékspor ku kernel jeung ku modul séjén anu ngan ditingali kana modul ku lisénsi GPL-cocog, simbol ieu muncul dina / proc / ksyms ku awalan tina 'GPLONLY_'. insmod ignores awalan GPLONLY_ on lambang bari loading modul GPL dilisensikeun jadi modul nu ngan ngarujuk ka ngaran simbol normal, tanpa awalan. GPL ukur simbul nu teu digawe sadia pikeun modul tanpa lisénsi cocog GPL, ieu ngawengku modul jeung euweuh lisénsi pisan.

Bantuan Ksymoops

Pikeun mantuan kalawan debugging of kernel Haduh lamun ngagunakeun modul, ingkar insmod mun nambahkeun sababaraha lambang ka ksyms, tingali pilihan -Y. Lambang ieu mimitian ku __insmod_modulename_. Modulename anu diperlukeun sangkan lambang unik. Éta légal pikeun muka objek anu sarua leuwih ti sakali handapeun ngaran modul béda. Ayeuna, lambang diartikeun nyaéta:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile mangrupakeun ngaran file nu obyék ieu sarat ti. Ieu ensures yén ksymoops bisa cocog kode ka objek nu bener. mtime teh timestamp dirobah panungtungan on yén file di hex, enol lamun stat gagal. Vérsi nyaeta versi kernel anu modul ieu disusun pikeun, -1 lamun euweuh versi anu aya. Lambang _O boga alamat mimiti sami salaku lulugu modul.

__insmod_modulename_Ssectionname_Llength

simbol ieu mucunghul dina mimiti bagian ELF dipilih, ayeuna .text, .rodata, .data, .bss na .sbss. Ieu ngan ditembongkeun lamun bagian ngabogaan ukuran non-nol. sectionname mangrupakeun ngaran bagian ELF, panjangna teh panjangna tina bagian di decimal. lambang ieu mantuan ksymoops peta alamat ka bagian lamun euweuh simbol anu aya.

__insmod_modulename_Ppersistent_filename

Ngan dijieun ku insmod lamun modul nu boga hiji atawa leuwih parameter nu ditandaan data sakumaha pengkuh sarta Ngaran koropak mun simpen data pengkuh (tingali -e, luhur) nyaéta aya.

Masalah sejen kalawan debugging kernel Haduh di modul éta eusi / proc / ksyms jeung / proc / modul bisa ngarobah antara Haduh jeung pas ngolah file kumplit. Pikeun mantuan nungkulan masalah ieu, lamun diréktori / var / log / ksymoops aya lajeng insmod na rmmod otomatis baris nyalin / proc / ksyms jeung / proc / modul ka / var / log / ksymoops ku awalan tina `tanggal +% Y% m % d% H% M% S`. Sistem administrator bisa ngabejaan ksymoops nu snapshot file ngagunakeun nalika debugging hiji Haduh. Aya switch mareuman salinan otomatis ieu. Mun anjeun teu hoyong ka kajadian, ulah nyieun / var / log / ksymoops. Mun diréktori nu nyampak, kudu dipiboga ku akar na jadi mode 644 atawa 600 jeung anjeun kedah ngajalankeun ieu naskah unggal dinten kapayun. Naskah di handap ieu dipasang sakumaha insmod_ksymoops_clean.

Émbaran dasar pikeun Nyaho

NAME

insmod - install modul kernel loadable

SYNOPSIS

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name] [-o module_name] [-o blob_name] [-P awalan] modul [simbol = nilai ...]