Skip to content

Vše o depmodu Linux/Unix Command

2 de Srpen de 2021
Linuxpenguinlogo 4bd19b300b8044b7b361851afcb66160

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.