Linux / Unix Command: insmod

U cumandamentu Linux / Unix insmodi instaleghja un modulu carricu in u kernel running. insmod cerca di ligà un modulu à u kernel running by resolvi tutti i simboli da a tabella di simbulu esportatu di u kernel.

Se u nomu di u modificatu di u modulu vene datu senza alcune direttori o estensione, insmod cerca circà u modulu in parechje direttori predeterminati cumuni. L' ammaismu variable MODPATH pò esse usatu per annullà sta prefazione. Se un cartafice di cunfigurazione di mudestu cumu /etc/modules.conf esiste, anularà a strada definita in MODPATH .

L' ingiru di u mediu MODULECONF pò ancu esse usate per selezziunate un schedariu di cunfigurazione differenti da u default /etc/modules.conf (o /etc/conf.modules (obsoleta)). Questaambientazione variabile circunna tutti e definizione di supra.

Quandu u medioambientu di l'inturnianza UNAME_MACHINE hè stata, modutils utilizighjate u so valore in latu di u campu di a machina da uname () syscall. Questu hè principarmenti usu di l'usu quandu compilate muduli 64-bit in spaziu di l'usu d'32 -bit o vice versa, stabilisce UNAME_MACHINE à u tipu di i moduli. I mudelli attuale ùn sustentanu u modu di creazione in crescita solu per i moduli, hè limitatu à sceglie versioni di 32 è 64 -bit di l'architettura ogetta.

Opzioni

-e persist_name , --persist = persist_name

Especifique induve qualsiasi datu persistenti per u modulu sò leghjità da a carica è scritte à quandu sta stazzione di u modulu hè sparghje. Questa opzione hè sottumessa in modu silenziu se u modulu ùn hà micca datu persistente. A persistente data hè legenda solu da un insmodu sè sta opción hè prisente, da u situ impurtante ùn prucessa micca dati persistenti.

Cum'è una forma taiuta , -e "" (una stringa vacca) hè interpretatu da un insmod cum'è u valore di persistdir cum'è definitu in moduli. Cunf , seguitatu da u filename di u mudellu relative à u modulu di ricerca di a ricerca hè stata truvata in pocu trailing ".gz", ".o" o "mod". Se modules.conf spicciarii " persistdir = " (per esempiu persistdir hè un campo vacanti) questu questa forma di tecklettasilenciosa ignurata. (Vede i moduli.conf (5).)

-f , --force

Tentativa tuccarà u modulu ancu se a versione di u kernel running and a versione di u kernel per quale u compiu compiu à u module. Queste solu anulisce a verificazione di a versione di l'kernel, ùn hà micca effetti nant'à i cuntrolli di simbolu simbulu. Se u simbulu in nomi in u modulu ùn hè micca cunnessione cù u kernel, ùn hè micca manera di forza in modu di inserimentu di carbu di u modulu.

-h , --help

Indicate un resumu di l'opzioni è sito immediatamente.

-k , --autoclean

Aduprà l'indicazione auto-clean di u modulu. Questa bandiera serà utilizatu da kerneld (8) per rinfrescà moduli chì ùn sò micca stati utilizati in qualchì tempu di u tempu - in generale un minutu.

-L , --lock

Aduprate a raconette (2) per prevalerà cume simultaneiu di u listessu modulu.

-m , --map

Pruvene una mappa di carica nantu à stdout, facendu simplificatu di debuggighja u modulu in casu d'un pannellu di kernel.

-n , --noload

Dummy run, fate tuttu ciò chì averà cumprà u modulu à u kernel. Se deve esse dumandatu da un -m o -O , a scumata producirà un cartulare o blob file. Siculu chì u modulu ùn hè micca carricu, l'indirizzu di carica di kernel di veru ùn hè micca chjamatu cusì u mappa è u blob sò basati nantu à una indirizzu arbitrariu di carga di 0x12340000.

-o module_name , --name = module_name

U nomu esplìcitu u mudellu, più di deriva u nome da u nome basa di u schedariu d'ughjettu.

-O blob_name , --blob = blob_name

Sfrancate l'ogettu binariu in nome blob_ . U risultatu hè un scuru binariu (micca corsi di l'ELF) chì mostranu esattamente ciò chì hè carcu à u kernel dopu a manipulazione è u traslocuore di a secunna. Option -m hè cunsigliatu per avè un mapu di l'uggettu.

-p , --probe

Pruvate u modulu per vede s'ellu pudia riesce bè . Questu incluye a locazione di u schedariu di l'ughjettu in u modulu di ruttura, cuntrolla i numeri di versione è simbulizà i resoluzione. Ùn cuntrolla i rilievamenti nè mancu pruduce un cartulare o blob file.

-P prefix , --prefix = prefix

Questa opzione pò esse usata cù moduli versione per un SMP o bigmem kernel, perchè dichdi moduli anu un prefessu extra aghjustatu in i so nomi di simbulu. Se u kernel fu custruitu cù versione di simbulu, insmodu eseguisce u prefiaghju di a definizione di "get_module_symbol" o "inter_module_get", una di quale si esisti in un kernel chì soporta moduli. Se u kernel ùn hè micca versioni di simbulu, ma u modulu hè stata stampata cù versioni di simbulu dopu chì l'utilizatori deve furnisce -P .

-q , --quiet

Ùn imprima una lista di alcuni simboli risolvii. Ùn ùn si piacerebbe micca di versione micca in scumpressioni. U prublema solu serà rifughjatu in l' aghjurnatu statutu di insmod .

-r , - radice

Certi utilizatori recopilatori moduli sottu un usu raianu micca usu di stallà i moduli di root. Questu proghjettu pò abbandunà i moduli pusseduti da l'usu non-root, ancu se u cartulariu di i moduli sò pussidìanu di a ràdica. Se l'usu urdinariu hè cumprumatu, un intrudu pò esse scrivite muduli e pussibule di l'usu urientale è l'utilizate di sta esposizione per arrizzà à l'accessu radicali.

Da automaticamente, modutils ritenutu i tentativi di usà un modulu chì ùn hè micca pussibule di raizzione. A sparghjera -r hà da cambià a verificazione è permettenu di ricchezza per carricà i moduli chì ùn sò micca pusside di a ràdica. Nota: u valore predeterminatu per a verificazione verificatu pò esse cambiatu in quandu moduluti hè cunfigurata.

U utilizazione di -r per disabilità a verificazione di a storia o di stallà i predefinitu per "micca truvà verificà cumpagnie" in u tempu di cunfigurazione hè una grande esposizione di sicurezza è ùn hè micca cunsigliatu.

-s , - syslog

Pruvene tutte scherza à a sistema (3) invece di a terminal.

-S , --challsyms

U furmà u mudellu carcu per avè infurmatu di informazione, ancu se u kernel ùn hè micca sustegnu. Questa opzione hè di sistemi chjuchi chì u kernel hè carricu senza schedari, ma i muduli seleccionati avè bisognu di debugging. Questa opzione hè u default in Red Hat Linux.

-v , --verbose

Be verbose.

-V , --version

Visualizza a versione di insmodu .

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

Fate è ùn anu micca esporatu tutti i simboli esterni di u modulu, rispettivamente. U predefinitu hè per i simboli per esse esercitu. Questa opzione hè solu efficace si u mudellu ùn hà micca esporatu nurmale espliumente a so propria tabella di simbulu cuntrullata, è per esse deprecated.

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

Ùn aghjunte micca simbuli di ksymoops à ksyms. Sti simbuli sò usati da ksymoops per furnisce una debugione megliu se ci hè un Vague in stu modulu. U predefinitu hè per u simbulu di ksymoops à esse definitu. Questa opzione ùn hè indipindenza di l'opcions -X / -x .

I simboli di Ksymoops aghjunghjenu circa 260 bytes per mòdulu carricu. A menu chì ùn sia troppu curta nantu à u spaziu di l'kernel è pruvate di reducià i cummerculi in u minimu minimu, piglià a predeterminatu è aghjuste più preciso Spiegata di debugging. I simboli di ksymoops sò obligatori di salvà infurmazioni persistenti di module.

-N , --numeric-only

Solu cuntrolla a parte numèrica di a versione di mudellu contru a versione di u core, vale à dì ignore EXTRAVERSION se decide un mudellu per un kernel. Questa bandiera hè automaticamente stata per a kernel 2.5 in anticipazione, hè attributivu per i kernels previ.

Parametri Module

Certi moduli acceptate parametri di u tempu di cullighjamentu per persunalizà a so operazione. Esse parametri sò spessu u portu I / O è i numeri IRQ chì varienu da a macchina à a machina è ùn ponu esse determinate da u hardware.

In moduli built for 2.0 series kernels, qualche simile di un intruduzione o simplicante di carattere pò esse trattu com un paràmetru è mudificatu. In principiu in i nuclei di a serie 2.1, i simboli sò marcati esplicitamenti cum'è parametri per chì solu i valori specifiche puderebbenu mudificate. Inoltre, l'infurmazione di tipu hè furnita per verificà i valori induve u tempu di tempu.

In u casu di i numeri interni, ogni valore pò esse in decimal, octal o hexadecimale à a C: 17, 021 o 0x11. Elementi arburiche sò sicule spicciata siparati da persone. Elementi ponu saltate per omessu u valore.

In i muduli di a serie 2.0, i valori chì ùn si cumincianu cù un numeru sò cunsiderati strings. Cumplementu in u 2.1, l'infurmazioni di u paràmetru indicanu sì esse interpretatu u valore cum'è una stringa. Se u valore accumenza cù quatru dui ( " ), a catena hè interpretata cum'è in C, sequenzi di scuperte è tutte e cose. Avà nutatu chì da u prompt di scriva, i citati propiasu deve esse di salvezza di l'interpretazione di cunchiglia.

GPL Modules Licensed and Symbols

In principiu cù u kernel 2.4.10, i moduli d'avè una stata di licenza, definita per MODULE_LICENSE () . Diversi catene sò ricunnisciuti cum'è cumpunità di GPL; Qualchidunu altre stringu di licenza o nisna licenza significativamente significa chì u modulu hè trattu da proprietàriu.

Se u kernel soporta a / proc / sys / kernel / bandiera tainted then insmod se OR o u banditu indurata cù '1' quandu aghjunghjenu un modulu senza una licenza GPL. Un avvistatu hè emessu si u kernel soporta i macchiatu è un modulu hè carricu senza una licenza. Un avvistemu sempre emessu per i moduli chì anu un MODULE_LICENSE () chì ùn hè micca GPL compatible, ancu in i kernels più antichi chì ùn sustentanu micca indossu. Cusì minimizeghja advertenzii quandu un modutils novu hè utilatu nantu à mudelli più avanzati.

insmod -f (forza) di u modu o U banditulinu taintatu cù '2' nantu à i nuclei chì sustegnu sopra. Sempre emette un avvistatu.

Certi sviluppaturi di kernel necessanu chì i simboli infurmati da u so codice sò solu usati da muduli cù una licenza GPL compatible. Queste simbuli sò esportati da EXPORT_SYMBOL_GPL in duce di u normale EXPORT_SYMBOL . Ogni simbolu GPL solu esercitanu da u kernel è da altre moduli sò solu visibile per mòldra cù una licenza GPL-compatible, sti simboli apparentanu in / proc / ksyms cun prefessu di " GPLONLY_ ". insmod ignora u prefissu GPLONLY_ nantu à i simboli mentre aduce un modulu licenzu GPL, cusì u modulu si riferisce à u nomu di simbulu normale, senza u prefissu. GPL solu i simboli ùn sò micca dispunibuli per i moduli senza una licenza GPL compatible, chistu includenu moduli senza licenza in tuttu.

Assistenza di Ksymoops

Per assicurà di debugging of kernel Oops quan aduprate muduli, insmoda predeterminate per aghjunghje certi simboli à ksyms, vede l'opzione -Y . Queste i simboli cumincianu cù __insmod_modulename_ . U modulename hè necessariu per fà i simboli unichi. Hè ubligatoriu di carica di u listessu objettu di più d'una volta sottu nomi di moduli differenti. Oghje, i simboli definiti sò:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

schedariu d'oggettu hè u nome di u schedariu chì l'ughjettu era carricu. Questu hà assicuratu chì sicilianu pò cumparisce u còdice à l'ughjettu correctu. mtime hè l'ultimu timestampu mudificatu annantu à quellu file in hex, cero se stat falliu. A versione hè a versione di kernel chì u modulu era compilatu per -1, nisuna versione è disponibile. U simbulu di u _O hè a listessa indirizzu iniziale da u capu di modulu.

__insmod_modulename_Ssectionname_Llength

U simbulu pare à l'iniziu di e rùtesi ELF selezziunati, attualmente .text, .rodata, .data, .bss e .sbss. Solu solu s'ellu hè a sezione ùn hè un tamantu micca cero. nomu di secunna hè u nomu di a secunna ELF, a durazione hè a larga di a seccione in decimal. Queste simboli aiutanu à l'infurmazioni di ksymoops in e rùbbriche quand'elli ùn sò micca simboli.

__insmod_modulename_Persistent_filename

Solu creatu da insmodu se u mudellu hà unu o più paràmetri chì sò marcati com'è persistenti di dati è un nome di scrittoghju per sparà persistent data (vede -e , above) è disponibile.

L'altru problema di debugging kernel Oops in moduli hè chì u cuntenutu di / proc / ksyms è / proc / moduli pò cambià à mezu à l'Ope è quandu si prucessa u schedariu di log. Per aiutà sopra à stu prublemu, se u directory / var / log / ksymoops esiste in cusì insmod è rmmod copiarà automaticamente / proc / ksyms e / proc / moduli à / var / log / ksymoops cun prefessu di "date +% Y% m % d% H% M% S`. L'amministratore di u sistema pò permette di cumprà cusì chì sianu in u scaricamentu per l'usu quandu di debugging un Oops. Ùn ci hè cambiatu per disattiveghjanu sta copia automaticu. Se ùn vogliu micca esse occuratu, ùn create micca / var / log / ksymoops . In casu di u cartulare hè stata pruprietata da a ràdica è esse modellu 644 o 600 è avete devenu esse scrittu ogni ghjornu o più. U script sottu hè installatu com insmod_ksymoops_clean .

Infurmazione basta à sapè

NAME

insmod - installate un modulu di kernel carcassa

SINOPSIS

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o module_name ] [-O blob_name ] [-P prefix ] module [ symbol = value ...]