Linux / Unix Command: insmod

Insomnia Linux / Unix masang masang modul sing bisa diunduh ing kernel. insmod nyoba nubungake modul menyang kernel mlaku kanthi ngrampungake kabeh simbol saka tabel simbol kernel kang diekspor.

Yen jeneng berkas modul diwenehi tanpa direktori utawa ekstensi, insmod bakal nggolèki modul ing sawetara direktori default umum. Variabel lingkungan MODPATH bisa digunakake kanggo ngatasi standar kasebut. Yen file konfigurasi modul kayata /etc/modules.conf ana , bakal ngganti path sing ditetepake ing MODPATH .

MODULECONF variabel lingkungan uga bisa digunakake kanggo milih file konfigurasi sing beda saka /etc/modules.conf (utawa /etc/conf.modules ). Variabel lingkungan iki bakal ngatasi kabeh definisi ing ndhuwur.

Nalika variabel lingkungan UNAME_MACHINE wis disetel, modutils bakal migunakake nilai tinimbang kolom mesin saka syscall uname (). Iki utamané panggunaan nalika sampeyan nyusun modul 64-bit ing papan pangguna 32-bit utawa sabalikna , ngeset UNAME_MACHINE kanggo jinis modul. Modutil saiki ora ndhukung modus salib lengkap kanggo modul, diwatesi milih antara versi 32- lan 64-bit arsitektur inang.

Pilihan

-e persist_name , --persist = persist_name

Nemtokake manawa ana data sing terus-terusan kanggo modul dibaca saka nalika diundhuh lan ditulis nalika instansiasi modul kasebut dipungkasi. Pilihan iki ora dikepengini sanajan modul ora ana data persistent. Data terus- terusan mung dibaca dening insmod yen opsi iki saiki, kanthi insmod standar ora ngolah data persistent.

Minangka wangun cekung , -e "" (tali kosong) diinterpretasikake dening insmod minangka nilai persistdir kaya sing ditemtokake ing modules.conf , diikuti jeneng file modul relatif menyang path search module sing ditemokaké, ngilangi sembarang trailing ".gz", ".o" utawa ".mod". Yen modules.conf nemtokake " persistdir = " ( contone, persistdir minangka lapangan kosong) banjur wangun cekak iki ora dikepengini . (Deleng modules.conf (5).)

-f , --force

Nyoba ngemot modul sanajan versi kernel mlaku lan versi kernel sing dikompilasi modul ora cocog. Iki mung nglebokake priksa versi kernel, ora duweni pangaruh ing pangecekan jeneng simbol. Yen jeneng simbol ing modul ora cocog karo kernel, ora ana cara kanggo meksa insmod kanggo mbukak modul kasebut.

-h , --help

Nampilake ringkesan opsi lan langsung metu.

-k , --autoclean

Setel bendera otomatis-resik ing modul. Bendhelan iki bakal digunakake dening kerneld (8) kanggo mbusak modul sing durung digunakake ing sawetara wektu - biasane siji menit.

-L , - kunci

Gunakake flock (2) kanggo nyegah beban simultan saka modul sing padha.

-m , --map

Output peta muatan ing stdout, supaya luwih gampang debug modul kasebut nalika ana panik kernel.

-n , --noload

Rampung dummy, nindakake kabeh kajaba muat modul menyang kernel. Yen dijaluk dening -m utawa -O , roto bakal ngasilake peta utawa file sing wis diombe. Wiwit modul ora dimuat, alamat pangolahan kernel nyata ora dingerteni supaya file lan file goblok didhasarake ing alamat muat sewenang-wenang saka 0x12340000.

-o module_name , --name = module_name

Tegese ngarani modul iki, tinimbang ngarah jeneng saka jeneng basa file obyek sumber.

-O blob_name , --blob = blob_name

Simpen obyek binar ing blob_name . Asilé iku sawijining blok binar (ora ana header ELF) sing nuduhake persis apa sing dimuat ing kernel sawisé manipulasi lan relokasi bagean. Pilihan- m dianjurake kanggo njaluk peta obyek.

-p , --probe

Siksa modul kasebut kanggo ndeleng yen kasil dimuat . Iki kalebu nemokake file obyek ing path modul, ngecek nomer versi, lan ngrampungake simbol. Ora ngeculake pindhah-liwat utawa ora ngasilake file peta utawa gumpalan.

-P ater-ater , --prefix = ater-ater

Opsi iki bisa digunakake karo modul-modul modhel kanggo SMP utawa kernel bigmem, amarga modul kuwi duwe awalan ekstra sing ditambahake ing jeneng simbol. Yen kernel dibangun karo versi simbol, banjur insmod bakal kanthi otomatis ngekstrak awalan saka definisi "get_module_symbol" utawa "inter_module_get", salah sijine kudu ana ing kernel apa wae sing ndhukung modul. Yen kernel ora duwe versi simbol nanging modul iki dibangun nganggo versi simbol, banjur pangguna kudu nyedhiyakake -P .

-q , --quiet

Aja nyithak dhaptar simbol sing ora dipungkiri. Aja sambat babagan versi sing ora cocog. Masalah kasebut mung bakal dibayangke ing status exit saka insmod .

-r , - ROOT

Sawetara kedhaftar nyusun modul ing pangguna non-root banjur nginstal modul minangka root. Proses iki bisa ninggalake modul sing diduweni dening user root, sanadyan direktori modul diduweni dening root. Yen pangguna ora ROOT dikompromi, penyusup bisa nimpa modul sing wis ana ing pangguna sing diidinake lan gunakake pajanan kanggo bootstrap nganti akses root.

Secara default, modutils bakal nolak upaya nggunakake modul sing ora dimupangatake dening root. Spesifikasi -r bakal ngowahi priksa lan ngidini root kanggo mbukak modul sing ora dimupangatake dening root. Cathetan: Nilai gawan kanggo mriksa root bisa diowahi nalika modutils dikonfigurasi.

Gunakake -r kanggo mateni pambusakan root utawa nyetel default menyang "ora ana priksa" ing wektu konfigurasi minangka pajanan keamanan utama lan ora dianjurake.

-s , - syslog

Output kabeh kanggo syslog (3) tinimbang terminal.

-S , --kalem

Peksa modul sing dimuat kanggo nduwe data kallsym , sanajan kernel kasebut ora ndhukung. Opsi iki kanggo sistem cilik ngendi kernel dimuat tanpa data kallsyms nanging modul sing dipilih kudu kallsyms kanggo debugging. Opsi iki minangka standar ing Red Hat Linux.

-v , --verbose

Dadi tegese.

-V , --versi

Nuduhake versi insmod .

-X , - ekspor ; -x , --noexport

Nggawe lan ora ngekspor kabeh simbol eksternal modul, mungguh. Default kanggo simbol sing bakal diekspor. Opsi iki mung efektif yen modul ora sacara eksplisit ngekspor tabel simbol kontrol sing dikendali, lan sauntara ora ditrapake.

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

Aja lan ora nambah simbol ksymoops kanggo nyenyet. Simbol kasebut digunakake dening ksymoops kanggo nyedhiyakake debugging luwih apik yen ana Oops ing modul iki. Default yaiku kanggo simbol ksymoops sing didefinisine. Opsi iki bebas saka opsi -X / -x .

simbol ksymoops nambah kira-kira 260 byte saben modul sing dimuat. Kajaba yen sampeyan pancene cendhak spasi kernel lan nyoba kanggo nyuda ksyms kanggo ukuran minimal, njupuk standar lan njaluk luwih akurat Oops debugging. simbol ksymoops dibutuhake kanggo nyimpen data modul data persistent.

-N , - mung angka

Mung mriksa bagian numerik versi modul marang versi kernel, misale dene EXTRAVERSION nalika nemtokake yen modul kuwi kernel. Gendéra iki kanthi otomatis disetel kanggo kernel 2.5 lan luwih, opsional kanggo kernel awal.

Parameter modul

Sawetara modul nampa paramater waktu kanggo ngatur operasi kasebut. Parameter kasebut asring I / O port lan nomer IRQ sing beda-beda saka mesin nganti mesin lan ora bisa ditemtokake saka hardware.

Ing modul sing dibangun kanggo kernel seri 2.0, simbol-simbol poin sing ana integer utawa karakter bisa dianggep minangka parameter lan dimodifikasi. Diwiwiti ing kernel seri 2.1, simbol kasebut tegas ditandhani minangka paramèter supaya mung nilai-nilai tartamtu bisa diganti. Salajengipun, ngetik informasi sing disedhiyakake kanggo mriksa nilai sing kasedhiya ing wektu muat.

Ing kasus integer, kabeh nilai bisa dadi desimal, oktaf utawa heksadesimal a C: 17, 021 utawa 0x11. Unsur susunan diwatesi urutan sing dipisahake ku koma. Unsur bisa diliruti kanthi ora ngemot nilai kasebut.

Ing modul seri 2.0, nilai sing ora diwiwiti kanthi nomer dianggep minangka senar. Diwiwiti ing 2.1, informasi jinis parameter kasebut nemtokake manawa menehi teges nilai minangka senar. Yen angka kasebut diwiwiti kanthi kuotasi kaping pindho ( " ), senar kasebut diinterpretasikake ing C, bisa ngilangi urutan lan kabeh. Ngelingake yen saka ujung cangkang kasebut, kutipan kasebut uga kudu direksa saka interpretasi cangkang.

Modul lan Simbol sing dilisensi GPL

Miwiti karo kernel 2.4.10, modul kudu duwe lisensi string, ditetepake nggunakake MODULE_LICENSE () . Sawetara strings diakoni minangka GPL sing cocog; lisensi liyane utawa ora ana lisensi ing kabeh tegese modul kasebut dianggep minangka proprietary.

Yen kernel ndhukung kertu / proc / sys / kernel / tainted banjur insmod bakal OR flag sing tainted karo '1' nalika ngganti modul tanpa lisensi GPL. Bebaya diwenehi yen kernel ndhukung tainting lan modul dimuat tanpa lisensi. Bebaya tansah ditindakake kanggo modul sing duwe MODULE_LICENSE () sing ora kompatibel karo GPL, sanajan ing kernel lawas sing ora ndhukung tainting. Iki bakal menehi bebaya nalika modutils anyar digunakake ing kernel lawas.

mode insmod -f (pasukan) UTAWA bendera tainted karo '2' ing kernels sing ndhukung tainting. Iku tansah menehi bebaya.

Sawetara pangembang kernel mbutuhake simbol sing diekspor dening kodhe mung kudu digunakake dening modul karo lisensi sing kompatibel karo GPL. Simbol-simbol kasebut diekspor dening EXPORT_SYMBOL_G_GPL tinimbang EXPORT_SYMBOL normal. Simbol-simbol mung GPL sing diekspor karo kernel lan modul-modul liyané mung bisa ditampilake modul karo lisensi sing kompatibel karo GPL, simbol kasebut katon ing / proc / ksyms kanthi awalan ' GPLONLY_ '. insmod nglirwakake awalan GPLONLY_ ing simbul nalika ngemot modul sing dilisensi GPL supaya modul kasebut mung nuduhake jeneng simbol normal, tanpa ater-ater. Simbol mung GPL ora kasedhiya ing modul tanpa lisensi sing kompatibel karo GPL, iki kalebu modul tanpa lisensi ing kabeh.

Ksymoops Assistance

Kanggo mbantu debugging kernel Oops nalika nggunakake modul, insmod standar kanggo nambah sawetara simbol kanggo ksyms, ndeleng opsi -Y . Simbol kasebut diwiwiti kanthi __insmod_modulename_ . Modulename dibutuhake supaya lambang unik. Iku sah kanggo mbukak obyek sing padha luwih saka sapisan miturut jeneng modul sing beda. Saiki, simbol sing ditetepake yaiku:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile yaiku jeneng berkas sing diiseni obyek kasebut. Iki mesthine yen ksymoops bisa cocog karo kode kasebut menyang obyek sing bener. mtime yaiku wektu paling cepet sing diowahi ing file kasebut ing hex, nol yen stat gagal. versi yaiku versi kernel sing modul disusun kanggo, -1 yen ora ana versi sing kasedhiya. Simbol _Ojo duwe alamat wiwitan sing padha minangka header modul.

__insmod_modulename_Ssectionname_Llength

Simbol iki muncul ing wiwitan bagean ELF sing dipilih, saiki .text, .rodata, .data, .bss, lan .sbss. Iku mung katon yen bagean duwe ukuran sing ora nol. sectionname iku jeneng bagéan ELF, dawa iku dawa ing desimal. Simbol-simbol iki mbantu alamat ksymoops alamat menyang bagean nalika ora ana simbol.

__insmod_modulename_Ppersistent_filename

Mung digawé dening insmod yen modul nduweni parameter siji utawa luwih sing dicenthang minangka data sing terus-terusan lan jeneng filenya kanggo nyimpen data sing terus-terusan (ndeleng -e , ing ndhuwur) kasedhiya.

Masalah liyane karo kernel debugging Oops ing modul yaiku isi / proc / ksyms lan / proc / modul bisa ngganti antarane Oops lan nalika sampeyan ngolah file log. Kanggo ngatasi masalah iki, yen direktori / var / log / ksymoops ana, banjur insmod lan rmmod bakal kanthi otomatis nyalin / proc / ksyms lan / proc / modul menyang / var / log / ksymoops kanthi awalan `tanggal +% Y% m % d% H% M% S`. Administrator sistem bisa nyritakake ksymoops sing njupuk file snapshot nalika debugging Oops. Ora ana owah-owahan kanggo mateni salinan otomatis iki. Yen sampeyan ora pengin kedadeyan, aja nggawe / var / log / ksymoops . Yen direktori iku ana, kudu diduweni dening root lan dadi mode 644 utawa 600 lan sampeyan kudu mbukak script iki saben dina utawa luwih. Tulisan ing ngisor iki diinstal minangka insmod_ksymoops_clean .

Informasi Dasar Kanggo Mangerteni

NAMA

insmod - nginstal modul kernel loadable

SINOPSIS

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