Depmod - příkaz Linux - příkaz Unix

název

depmod - popis popisů závislostí modulů jádra načíst

Synopse

depmod [-aA] [-ehnqrsuvV] [ -Cfigfile ] [-F kernelsyms ] [-b basedirectory ] [ forced_version ]
depmod [-enqrsuv] [-F kernelsyms ] modul1.o modul2.o ...

Popis

Nástrojy depmod a modprobe jsou určeny k tomu, aby modularní jádro systému Linux bylo možné spravovat pro všechny uživatele, správce a správce distribuce.

Aplikace Depmod vytváří soubor závislých na podobě "Makefile", založený na symbolech, které nalezne v sadě modulů uvedených na příkazovém řádku nebo v adresářích uvedených v konfiguračním souboru. Tento soubor závislostí je později používá modprobe k automatickému načtení správného modulu nebo stohu modulů.

Normální použití depmodu zahrnuje linku


/ sbin / depmod -a

někde v rc-souborech v adresáři /etc/rc.d , takže správné závislosti modulů budou k dispozici ihned po zavedení systému. Všimněte si, že volba -a je nyní volitelná. Pro bootovací účely může být volba -q vhodnější, protože to činí depmod tichý o nevyřešených symbolech.

Soubor závislostí lze také vytvořit ihned po sestavení nového jádra. Pokud " depmod -a 2.2.99 " uděláte, když jste poprvé sestavili jádro 2.2.99 a jeho moduly, zatímco ještě běží např. 2.2.98, bude soubor vytvořen na správném místě. V tomto případě však závislost na jádře nebude zaručena správná. Pro více informací o manipulaci se podívejte na možnosti -F , -C a -b výše.

Při vytváření vztahu mezi moduly a symboly vyexportovanými jinými moduly, depmod nepovažuje stav modulů GPL ani exportovaných symbolů za GPL. To znamená, že depmod nehlásí chybu, pokud modul bez licence kompatibilní s GPL odkazuje na symbol GPL (EXPORT_SYMBOL_GPL v jádře). Insmod však odmítne vyřešit pouze symboly GPL pro moduly jiné než GPL, takže skutečné zatížení selže.

Možnosti

-a , - všechno

Vyhledávejte moduly ve všech adresářích uvedených v (volitelném) konfiguračním souboru /etc/modules.conf .

-A , - kvalitní

Porovnejte časové značky a v případě potřeby jednat jako depmod -a . Tato možnost pouze aktualizuje soubor závislostí, pokud se něco změní.

-e , --errsyms

Zobrazit všechny nevyřešené symboly pro každý modul.

-h , --help

Zobrazte přehled možností a okamžitě ukončete.

-n , - zobrazit

Napište soubor závislosti na stdout namísto ve stromu / lib / modules .

-q , --quiet

Řekni depotovi, aby mlčel a nestěžoval si na chybějící symboly.

-r , --root

Někteří uživatelé sestavují moduly pod uživatelem bez oprávnění root a pak nainstalují moduly jako root. Tento proces může opustit moduly vlastněné uživatelským jménem bez oprávnění root, přestože adresář modulů je vlastněn kořenem. Pokud je uživatelská oprávnění typu non-root kompromitována, může útočník přepsat existující moduly vlastněné daným uživatelským jménem a tuto expozici použít k zavedení do kořenového přístupu.

Ve výchozím nastavení modutils odmítne pokusy o použití modulu, který není vlastněn kořenem. Určení -r potlačí chybu a povolí kořenovému načtení modulů, které nejsou vlastněny kořenem.

Použití -r je hlavní bezpečnostní expozice a nedoporučuje se.

-s , --syslog

Napište všechny chybové zprávy pomocí démona syslog namísto stderr.

-u , - nevyřešená chyba

depmod 2.4 nenastaví návratový kód, pokud existují nějaké nevyřešené symboly. Další hlavní vydání modutils (2.5) nastaví návratový kód pro nevyřešené symboly. Některé distribuce vyžadují nenulový návratový kód v modutils 2.4, ale tato změna může způsobit problémy pro uživatele, kteří očekávají staré chování. Chcete-li nenulový návratový kód v depmodu 2.4, zadejte -u . depmod 2.5 mlčky ignoruje parametr -u a bude vždy poskytovat nenulový návratový kód pro nevyřešené symboly.

-v , - verbose

Zobrazí se název každého modulu při jeho zpracování.

-V , --version

Zobrazí verzi depmodu .

Následující volby jsou užitečné pro uživatele správy distribucí:

-b basedirectory , -basedir baseirectory

Pokud se stromový adresář / lib / moduly obsahující podružné stromy modulů přesune někde jinde, aby se mohly zpracovávat moduly pro jiné prostředí, volba -b informuje o tom, kde se pohybuje obrázek stromu / lib / modules . Odkazy na soubor ve výstupním souboru typu depmod, module.dep, neobsahují cestu k založení . To znamená, že když se stromový soubor přesune zpět z konektoru / lib / modules do / lib / modules v konečné distribuci, všechny odkazy budou správné.

-C configfile , --config configfile

Použijte soubor configfile namísto /etc/modules.conf . Proměnná prostředí MODULECONF lze také použít k výběru jiného konfiguračního souboru z výchozího souboru /etc/modules.conf (nebo /etc/conf.modules (zastaralý)).

Při proměnné prostředí

UNAME_MACHINE je nastaven, modutils použije svou hodnotu namísto pole stroje z příkazu uname (). Používá se hlavně při kompilaci 64bitových modulů ve 32bitovém uživatelském prostoru nebo naopak, nastavte UNAME_MACHINE na typ vytvořených modulů. Současný modutils nepodporuje moduly plného křížového budování, ale je omezen na výběr mezi 32 a 64 bitovými verzemi hostitelské architektury.

-F kernelsyms , --fileyms kernelsyms

Při vytváření souborů závislostí pro jiné jádro než jádro, které je aktuálně spuštěné, je důležité, aby depmod používal správnou sadu symbolů jádra k vyřešení odkazů na jádra v každém modulu. Tyto symboly mohou být buď kopie System.map z jádra nebo kopie výstupu z / proc / ksyms . Pokud jádro používá verzované symboly, je nejlepší použít kopii výstupu / proc / ksyms , protože tento soubor obsahuje symbolové symboly jádra. Můžete však použít System.map i s verzovanými symboly.

Konfigurace

Chování modulu depmod a modprobe lze nastavit pomocí (volitelného) konfiguračního souboru /etc/modules.conf .
Pro úplný popis viz modprobe (8) a modules.conf (5).

Strategie

Pokaždé, když zkompilujete nové jádro, příkaz " make modules_install " vytvoří nový adresář, ale nezmění výchozí nastavení.

Když získáte modul, který nesouvisí s distribucí jádra, měli byste jej umístit do jednoho z adresářů / lib / modules nezávislých na verzi.

Toto je implicitní strategie, kterou lze v souboru /etc/modules.conf přepsat.

Viz též

lsmod (8), ksyms (8)

Důležité: Použijte příkaz man ( % man ), abyste zjistili, jaký příkaz se používá v konkrétním počítači.