Depmod zpracovává popisy závislostí pro moduly jádra, které lze načíst.
Synopse
depmod [-aA] [-ehnqrsuvV] [-C configfile] [-F kernelsyms] [-b basedirectory] [forced_version] depmod [-enqrsuv] [-F kernelsyms] module1.o module2.o …
Popis
The depmod a modprobe nástroje jsou určeny k tomu, aby umožnily modulární jádro Linuxu spravovat všem uživatelům, správcům a správcům distribuce.
Depmod vytvoří soubor závislostí podobný „Makefile“ na základě symbolů, které najde v sadě modulů uvedených na příkazovém řádku nebo z adresářů uvedených v konfiguračním souboru. Tento soubor závislostí později používá modprobe automaticky načíst správný modul nebo hromadu modulů.
Běžné používání depmod je zahrnout řádek /sbin /depmod -a
někde v RC souborech v /etc/rc.d, takže správné závislosti modulu budou k dispozici ihned po spuštění systému. Pokud pracujete s distribucí s kompletnějšími funkcemi, jako je Ubuntu, Debian nebo Fedora, bude to provedeno za vás. Všimněte si té možnosti -A je nyní volitelná. Pro účely bootování možnost -q může být vhodnější, protože to depmod mlčí o nevyřešených symbolech. Pokud chcete přesně vidět, co se přidává, použijte -proti přepněte a spusťte příkaz podrobně. Je také možné vytvořit soubor závislostí ihned po kompilaci nového jádra. Pokud udelas „depmod -a 2.2.99„Když zkompilujete jádro 2.2.99 a jeho moduly poprvé, zatímco stále běží např. 2.2.98, soubor bude vytvořen na správném místě. V tomto případě však nebude zaručeno, že závislosti na jádře budou být správný. Podívejte se na možnosti -F, -C a -b výše pro více informací o řešení tohoto. Při budování vztahu mezi moduly a symboly exportovanými jinými modulydepmod nezohledňuje stav GPL modulů ani exportovaných symbolů. To znamená, že depmod nebude označovat chybu, pokud modul bez licence kompatibilní s GPL odkazuje na symbol pouze 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í se nezdaří.
Možnosti
-A, –Všechno
Vyhledejte moduly ve všech adresářích uvedených v (volitelném) konfiguračním souboru/etc/modules.conf.
-A, –rychlý
Porovnejte časová razítka souborů a v případě potřeby se chovejte jako depmod -a. Tato možnost aktualizuje soubor závislostí pouze v případě, že se něco změnilo.
-E, –errsymy
Zobrazit všechny nevyřešené symboly pro každý modul.
-h, –Pomoc
Zobrazte souhrn možností a okamžitě ukončete.
-n, –ukázat
Napište soubor závislosti na stdout místo do /lib/modules strom.
-q, –klid
Řekněte depmod, aby mlčel a nestěžoval si na chybějící symboly.
-r, –vykořenit
Někteří uživatelé kompilují moduly pod ID uživatele bez oprávnění root a poté moduly nainstalují jako root. Tento proces může ponechat moduly ve vlastnictví ID uživatele bez oprávnění root, přestože adresář modulů je ve vlastnictví uživatele root. Pokud je ohroženo uživatelské jméno uživatele bez oprávnění root, vetřelec může přepsat existující moduly vlastněné tímto ID uživatele a použít tuto expozici k zavedení bootstrapu až k přístupu root. Ve výchozím nastavení modutils odmítne pokusy o použití modulu, který není ve vlastnictví root. Upřesnění-r potlačí chybu a umožní rootovi načíst moduly, které nejsou ve vlastnictví root.
Použití -r představuje zásadní bezpečnostní riziko a nedoporučuje se.
-s, –slog
Místo stderr napište všechny chybové zprávy prostřednictvím démona syslog.
-u, -nevyřešená chyba
depmod 2.4 nenastavuje návratový kód, pokud existují nějaké nevyřešené symboly. Některé distribuce chtějí nenulový návratový kód v modutils 2.4, ale tato změna může způsobit problémy uživatelům, kteří očekávají staré chování. Pokud chcete nenulový návratový kód v depmod 2.4, zadejte -u. depmod 2.5 bude tiše ignorovat -u příznak a vždy poskytne nenulový návratový kód pro nevyřešené symboly.
-proti, –verbózní
Ukažte název každého modulu při jeho zpracování.
-PROTI, –verze
Zobrazit verzi depmod.
Správa distribucí
Následující možnosti jsou užitečné pro lidi spravující distribuce:
-b adresář na bázi, –basedir adresář na bázi
Pokud strom adresářů /lib /moduly obsahující dílčí stromy modulů je přesunuto někam jinam, aby bylo možné zpracovat moduly pro jiné prostředí, -b volba říká depmod, kde najít přesunutý obrázek souboru /lib/modules strom. Odkazy na soubory ve výstupním souboru depmod, který je vytvořen, moduly.dep, nebude obsahovat adresář na bázi cesta. To znamená, že když je strom souborů přesunut zpět z basedirectory/lib/modules do /lib/modules v konečné distribuci budou všechny odkazy správné.
-C konfigurační soubor, –konfig konfigurační soubor
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 od výchozího /etc/modules.conf (nebo/etc/conf.modules (zastaralé)). Když proměnná prostředí UNAME_MACHINE je nastavena, modutils použije její hodnotu místo pole stroje z příkazu uname () syscall. To se používá hlavně při kompilaci 64bitových modulů ve 32bitovém uživatelském prostoru nebo naopak, nastavení UNAME_MACHINE na typ stavěných modulů. Aktuální modutils nepodporuje plný křížový režim sestavování modulů, je omezen na výběr mezi 32 a 64 bitovými verzemi hostitelské architektury.
-F jádra,–soubory kernelsyms
Při vytváření souborů závislostí pro jiné jádro než aktuálně spuštěné jádro je důležité, aby depmod používá správnou sadu symbolů jádra k vyřešení odkazů na jádro v každém modulu. Tyto symboly mohou být buď kopií System.map z druhého jádra nebo kopie výstupu z /proc/ksyms. Pokud vaše jádro používá symboly s verzemi, je nejlepší použít kopii souboru /proc/ksyms výstup, protože tento soubor obsahuje verze symbolů symbolů jádra. Můžete však použít a System.map dokonce i s verzovanými symboly.
Konfigurace
Chování depmod a modprobe lze upravit (volitelným) konfiguračním souborem/etc/modules.conf. Vidět modprobe(8) a modules.conf(5) pro úplný popis.
Strategie
Pokaždé, když kompilujete nové jádro, zadejte příkaz „make modules_install„vytvoří nový adresář, ale nezmění výchozí. Když získáte modul nesouvisející s distribucí jádra, měli byste jej umístit do jednoho z adresářů nezávislých na verzi pod /lib/modules. Toto je výchozí strategie, kterou lze přepsat v /etc/modules.conf. Použijte muž příkaz (% muž), abyste zjistili, jak se příkaz používá ve vašem konkrétním počítači.