Scroll to navigation

DEPMOD(8) depmod DEPMOD(8)

NAZWA

depmod - tworzy modules.dep i pliki map.

SKŁADNIA

depmod [-b katalog-bazowy] [-m katalog-modułu] [-o katalog-wyjściowy]
[-e] [-E Module.symvers] [-F System.map] [-n] [-v] [-A]
[-P przedrostek] [-w] [wersja]

depmod [-e] [-E Module.symvers] [-F System.map] [-n] [-v]
[-P przedrostek] [-w] [wersja] [nazwa-pliku...]

OPIS

Moduły jądra Linux mogą udostępniać usługi (zwane "symbolami") do użycia przez inne moduły (używając jednego z wariantów EXPORT_SYMBOL w kodzie). Jeśli drugi moduł używa tego symbolu, w sposób oczywisty jest zależny od pierwszego modułu. Takie zależności mogą stać się dość złożone.

depmod tworzy listę zależności modułów, odczytując każdy moduł z katalogu <BASEDIR>/<MODULEDIR>/wersja. Domyślnie <MODULEDIR> wynosi /lib/modules, a <BASEDIR> jest pusta. Zob. opcje opisane poniżej, jeśli wymagane jest przesłonięcie. Program sprawdza jakie symbole eksportuje każdy moduł, a jakich wymaga. Lista ta jest zapisywana do pliku modules.dep oraz w zahaszowanej postaci binarnej) do pliku modules.dep.bin, w tym samym katalogu. Jeśli w wierszu polecenia podano nazwy plików, sprawdzane są tylko te moduły (co rzadko kiedy jest przydatne, chyba że podane są wszystkie moduły). depmod tworzy również listę symboli udostępnianych przez moduły w pliku modules.symbols i jego zahaszowanej postaci binarnej - modules.symbols.bin. depmod wypisuje również plik modules.devname, jeśli moduły udostępniają nazwy specjalnych urządzeń (devname), które powinny być tworzone w /dev przy uruchamianiu systemu (przez narzędzia takie jak systemd-tmpfiles).

Jeśli dostarczona jest wersja, to użyty jest katalog modułów wersji jądra, zamiast bieżącej wersji jądra (zwróconej przez uname -r).

OPCJE

-a, --all

Bada wszystkie moduły. Opcja jest domyślna, jeśli nie podano nazw plików w wierszu polecenia.

-A, --quick

Skanuje w celu sprawdzenia czy nie istnieją moduły nowsze niż w pliku modules.dep przed wykonaniem swej pracy, jeśli ich nie znajdzie, to po cichu wychodzi zamiast ponownie tworzyć pliki.

-b katalog-główny, --basedir=katalog główny

Przesłania katalog bazowy <BASEDIR>, w którym położone są moduły. Jeśli dany moduł nie znajduje się obecnie w (zwykłym) katalogu /lib/modules/wersja, tylko w obszarze staging, można określić katalog-bazowy który poprzedza nazwę katalogu. Katalog-bazowy jest wycinany z wynikowego pliku modules.dep, więc jest on gotowy do przeniesienia do zwykłej lokalizacji. Opcja jest przeznaczona dla dostawców dystrybucji, którzy chcą wstępnie wygenerować pliki metadanych zamiast ponownie wywoływać depmod później.

Jeśli poda się ścieżkę względną, jest ona względna wobec bieżącego katalogu roboczego.

Przykład:

depmod -b /my/build/staging/dir/

Polecenie spodziewa się wszystkich plików wejściowych w katalogu /my/build/staging/dir/lib/modules/$(uname -r) oraz tworzy pliki indeksu w tym samym katalogu.

-m katalog-modułu, --moduledir=katalog-modułu

Przesłania katalog modułu <MODULEDIR>, którym domyślnie jest przedrostek /lib/modules ustawiony w czasie zbudowania. Przedatne przy budowaniu pliku modules.dep w katalogu-bazowym dla systemu korzystającego z innego przedrostka np. /usr/lib/modules wobec /lib/modules.

Przyjmowane są ścieżki względne i bezwzględne, lecz są one zawsze względne wobec katalogu-bazowego.

Przykłady:

depmod -b /tmp/build -m /kernel-modules
depmod -b /tmp/build -m kernel-modules

Polecenie spodziewa się wszystkich plików wejściowych w katalogu /tmp/build/kernel-modules/$(uname -r) oraz tworzy pliki indeksu w tym samym katalogu.

Bez towarzyszącego argumentu -b, katalog-modułu jest względny wobec /. Przykład:

depmod -m foo/bar

Polecenie spodziewa się wszystkich plików wejściowych w katalogu /foo/bar/$(uname -r) oraz tworzy pliki indeksu w tym samym katalogu. O ile nie przygotowano libkmod na tę niestandardową lokalizację, nie zadziała ono w czasie rozruchu.

-o katalog-wyjściowy, --outdir=katalog-wyjściowy

Ustawia katalog wyjściowy, gdzie depmod przechowa wszelkie wygenerowane pliki. Katalog-wyjściowy służy jako korzeń tego położenia, podobnie jak używany jest katalog-bazowy. To ustawienie ma również pierwszeństwo, a jeśli użyje się go razem z katalogiem-bazowym, rezultatem będzie wejście z tego katalogu, ale wyjście zgodne z katalogiem-wyjściowym.

Jeśli poda się ścieżkę względną, jest ona względna wobec bieżącego katalogu roboczego.

Przykład:

depmod -o /my/build/staging/dir/

Polecenie spodziewa się wszystkich plików wejściowych w katalogu /lib/modules/$(uname -r) oraz tworzy pliki indeksu w katalogu /my/build/staging/dir/lib/modules/$(uname -r).

-C plik-lub-katalog, --config=plik-lub-katalog

Opcja przesłania domyślne pliki konfiguracyjne. Zob. podręcznik depmod.d(5).

-e, --errsyms

W połączeniu z opcją -F, wypisywane są symbole wymagane przez moduł, które nie są udostępniane przez inne moduły lub jądro. Przyjmuje się zwykle, że symbole nieudostępniane przez moduły są zapewniane przez jądro (co powinno być prawdą w idealnym świecie), ale to założenie może nie być prawdziwe, szczególnie gdy dodatkowo zaktualizowane sterowniki zewnętrzne nie są poprawnie zainstalowane lub zostały nieprawidłowo zbudowane.

-E Module.symvers, --symvers=Module.symvers

W połączeniu z opcją -e wypisywane są wersje symboli udostępnianych przez moduły, które nie pasują do wersji symboli udostępnianych przez jądro w swoim Module.symvers. Opcja nie może być łączona z -F.

-F System.map, --filesyms=System.map

Z podaniem pliku System.map utworzonego przy budowaniu jądra, ta opcja pozwala opcji -e wypisać nierozwiązane symbole. Opcja nie może być łączona z -E.

-h, --help

Wyświetla komunikat pomocy i wychodzi.

-n, --show, --dry-run

Wypisuje wynikowy modules.dep i różne pliki map na standardowe wyjście, zamiast zapisywać je do katalogu modułów.

-P

Część architektur poprzedza symbole egzotycznym znakiem. Przy użyciu tej opcji może podać ten przedrostek (np. "_") w celu zignorowania go.

-v, --verbose

W trybie szczegółowym, depmod wypisze (na standardowe wyjście) wszystkie symbole, od których zależy każdy moduł oraz nazwę pliku modułu, który go udostępnia.

-V, --version

Wyświetla informacje o wersji i kończy działanie. Wypisanie ostrzeżeń przy działaniu na starszym jądrze umożliwia poniższa opcja.

-w

Ostrzega o zdublowanych zależnościach, aliasach, wersjach symboli itp.

PRAWA AUTORSKIE

Pierwotnie: Copyright 2002, Rusty Russell, IBM Corporation. Częściowo: Jon Masters i inni.

ZOBACZ TAKŻE

depmod.d(5), modprobe(8), modules.dep(5)

USTERKI

Zgłoszeń błędów prosimy dokonywać w systemie śledzenia błędów pod adresem https://github.com/kmod-project/kmod/issues/, wraz z informacją o wersji programu, krokach potrzebnych do odtworzenia problemu oraz oczekiwanym rezultacie.

AUTORZY

Wielu współautorów pochodzi z listy dyskusyjnej linux-modules pod adresem <linux-modules@vger.kernel.org> oraz z Githuba. Mając sklonowane repozytorium kmod.git, wynik polecenia git-shortlog(1) i git-blame(1) ukaże autorów danej części projektu.

Projektem opiekuje się aktualnie Lucas De Marchi <lucas.de.marchi@gmail.com>.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

25 lutego 2025 r. kmod