Depmod - ukaz Linux - ukaz Unix

Ime

depmod - opisuje odvisnost odvisnosti od modulov, ki jih lahko naložite

Povzetek

depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b podporni naslov ] [ forced_version ]
depmod [-enqrsuv] [-F kernelsyms ] module1.o modul2.o ...

Opis

Namen pripomočkov depmod in modprobe je, da modulno jedro Linuxa obvlada vse uporabnike, skrbnike in vzdrževalce distribucije.

Depmod ustvari datoteko odvisnosti od "Makefile", ki temelji na simbolih, ki jih najdemo v množici modulov, navedenih v ukazni vrstici ali iz imenikov, navedenih v konfiguracijski datoteki. To datoteko odvisnosti kasneje uporablja modprobe, da samodejno naloži pravilen modul ali kup modulov.

Običajna uporaba depmoda mora vključevati črto


/ sbin / depmod -a

nekje v rc-datotekah v /etc/rc.d , tako da bodo takoj po zagonu sistema na voljo ustrezne odvisnosti modula. Upoštevajte, da je možnost -a zdaj neobvezna. Za zagonske namene je morda primernejša možnost -q, ker to naredi depmod tiho o nerešenih simbolih.

Prav tako je mogoče ustvariti datoteko odvisnosti takoj po sestavljanju novega jedra. Če naredite " depmod -a 2.2.99 ", ko ste prvič sestavili jedro 2.2.99 in njegove module, medtem ko še vedno deluje, npr. 2.2.98, bo datoteka ustvarjena na pravilnem mestu. V tem primeru pa odvisnosti od jedra ne bodo zagotovljene pravilne. Za več informacij o ravnanju s temi si oglejte možnosti -F , -C in -b zgoraj.

Med gradnjo razmerja med moduli in simboli, ki jih izvažajo drugi moduli, depmod ne upošteva statusa GPL modulov niti izvoženih simbolov. To pomeni, da depmod ne bo zaznal napake, če modul brez licence, združljive z GPL, pomeni simbol GPL (EXPORT_SYMBOL_GPL v jedru). Vendar pa bo insmod zavrnil razreševanje simbolov GPL samo za modele, ki niso GPL, zato bo dejanska obremenitev neuspešna.

Opcije

-a , - vse

Poiščite module v vseh imenikov, ki so navedene v (neobvezno) konfiguracijski datoteki /etc/modules.conf .

-A , - skok

Primerjajte časovne oznake datoteke in, če je potrebno, delujejo kot depmod -a . Ta možnost posodobi samo datoteko odvisnosti, če se kaj spremeni.

-e , -errsimi

Pokaži vse nerešene simbole za vsak modul.

-h , - pomoč

Prikažite povzetek možnosti in takoj zapustite.

-n , - prikaži

Datoteko odvisnosti odprite na stdout namesto v drevesu / lib / moduli .

-q , - vprašanje

Povejte depmodu, naj ostane tiho in se ne pritožuje glede manjkajočih simbolov.

-r , -root

Nekateri uporabniki sestavijo module pod nekorenskim uporabniškim nadimkom in nato namestijo module kot root. Ta proces lahko zapusti module, ki so v lasti nekorenskega uporabnika, čeprav je imenik modulov v lasti root. Če nekrjanski userid ogrozi, lahko vsiljivec prepisuje obstoječe module, ki so v lasti tega uporabniškega uporabnika, in to izpostavljenost uporabite za bootstrap do dostopa do root-a.

Modutils bo privzeto zavrnil poskuse uporabe modula, ki ni v lasti root. Določanje -r bo preprečilo napako in dovolilo root naložiti module, ki niso v lasti root.

Uporaba -r je glavna varnostna izpostavljenost in ni priporočljiva.

-s , --sloglog

Napišite vsa sporočila o napakah preko syslogovega demona namesto stderr.

-u , -unresolved-error

depmod 2.4 ne nastavi povratne kode, če obstajajo nerešeni simboli. Naslednja večja izdaja modutils (2.5) bo nastavila povratno kodo za nerešene simbole. Nekatere distribucije želijo odzivno kodo, ki ni enaka nič, v modutils 2.4, vendar ta sprememba lahko povzroči težave za uporabnike, ki pričakujejo staro obnašanje. Če želite v oddaljeni različici 2.4 navesti vrnitev, ki ni nič, podajte -u . depmod 2.5 bo tiho prezrl zastavico -u in bo za nerešene simbole vedno dal ąe ničelno povratno kodo.

-v , - verbose

Prikažite ime vsakega modula, ko se obdeluje.

-V , -version

Prikaže različico depmoda .

Naslednje možnosti so uporabne za ljudi, ki upravljajo distribucije:

-b bazni direktorij , - bazirni bazo

Če se drevesni / lib / moduli imenikov, ki vsebujejo poddelja modulov, premaknejo kje drugje, da bi lahko obvladali module v drugem okolju, opcija -b pove depmod kje naj se premakne sliko drevesa / lib / modulov . Referenčne datoteke v izhodni datoteki depmoda, ki je zgrajena, modules.dep , ne bo vsebovala poti za usmerjanje . To pomeni, da ko se drevo datotek premakne iz osnovnega / lib / modula v / lib / module v končni distribuciji, bodo vse reference pravilne.

-C configfile , --config configfile

Uporabite datoteko configfile namesto /etc/modules.conf . Orodje MODULECONF lahko uporabite tudi za izbiro druge konfiguracijske datoteke iz privzetega /etc/modules.conf (ali /etc/conf.modules (zastarelo)).

Ko spremenljivka okolja

Nastavljen je bil UNAME_MACHINE , modutils bo uporabil svojo vrednost namesto polja stroj iz uname () syscall. To je predvsem v uporabi pri sestavljanju 64-bitnih modulov v 32-bitnem uporabniškem prostoru ali obratno, nastavite UNAME_MACHINE na vrsto zgrajenih modulov. Trenutni moduli ne podpirajo celotnega načina navzkrižne izgradnje modulov, omejen je na izbiro med 32 in 64 bitnimi različicami arhitekture gostitelja.

-F kernelsyms , --filesyms kernelsyms

Pri izdelavi datotek odvisnosti za drugo jedro, kot je trenutno nameščeno jedro, je pomembno, da depmod uporablja pravilen nabor simbolov jedra, da razreši reference jedra v vsakem modulu. Ti simboli so lahko kopija System.map iz drugega jedra ali kopija izpisa iz / proc / ksyms . Če vaše jedro uporablja verzirane simbole, je najbolje, da uporabite kopijo izhoda / proc / ksyms , ker ta datoteka vsebuje simbolne različice simbolov jedra. Vendar pa lahko System.map uporabljate tudi z različnimi simboli.

Konfiguracija

Obnašanje depmoda in modprobe lahko prilagodi (neobvezno) konfiguracijska datoteka /etc/modules.conf .
Za popoln opis si oglejte modprobe (8) in modules.conf (5).

Strategija

Vsakič, ko sestavite novo jedro, bo ukaz " make modules_install " ustvaril nov imenik, vendar ne bo spremenil privzetega.

Ko dobite modul, ki ni povezano z distribucijo jedra, ga morate postaviti v enega od imenikov, neodvisnih od različice pod / lib / moduli .

To je privzeta strategija, ki jo lahko preglasi v /etc/modules.conf .

Poglej tudi

lsmod (8), ksyms (8)

Pomembno: Uporabite ukaz man ( % man ), da vidite, kako se na vašem računalniku uporablja ukaz.