MODPROBE(8)

NAZWA
modprobe - wysokopoziomowa obsługa modułów

SKŁADNIA
modprobe [ -adnqv ] [ -C konfiguracja ] moduł [ symbol=wartość ... ]
modprobe [ -adnqv ] [ -C konfiguracja ] [ -t typ ] wzorzec
modprobe -l [ -C konfiguracja ] [ -t typ ] wzorzec
modprobe -c [ -C konfiguracja ]
modprobe -r [ -dnv ] [ -C konfiguracja ] [ moduł ...]
modprobe -V

OPCJE

-a, --all
    Ładuje all wszystkie moduły pasujące do wzorca, zamiast zatrzymać się po pierwszym pomyślnym załadowaniu.

-c, --showconfig
    Pokazuje aktualnie używaną konfigurację.

-d, --debug
    Pokazuje informacje o wewnętrznej reprezentacji stosu modułów.

-k, --autoclean
    Ustawia 'autoczyszczenie' dla załadowanych modułów. Używane przez jądro podczas wywoływania modprobe aby zapewnić brakujące właściwości (dostępne jako moduły). Opcja -k włącza też -q. Opcje te są automatycznie przekazywane do insmoda.

-l, --list
    Wypisuje pasujące moduły.

-n, --show
    Pokazuje, co by się działo, nie podejmując żadnej akcji.

-q, --quiet
    Nie narzeka na niepomyślną instalację modułu przez insmoda. Kontynuuje jak zwykle, lecz po cichu, umożliwiając modprobe testowanie innych możliwości. Opcja ta jest automatycznie przekazywana do insmoda.

-r, --remove
    Usuwa moduł (stos modułów) lub wykonuj autoczyszczenie, w zależności od tego, czy podano jakieś moduły w linii poleceń, czy nie.

-s, --syslog
    Wyprowadza wszystko do syslog zamiast na standardową diagnostykę. Opcja ta jest automatycznie przekazywana do insmoda.

-t, --type typmodułu
    Bierze pod uwagę jedynie moduły danego typu. modprobe będzie szukać jedynie takich modułów, których katalog w ścieżce zawiera "/typmodułu/". typmodułu może zawierać więcej niż jedną nazwę katalogu, np. -t drivers/net wypisze moduły z xxx/drivers/net/ i jego podkatalogów.

-v, --verbose
    Wypisuje wszystkie uruchamiane polecenia.

-V, --version
    Wypisuje wersję modprobe.

-C, --config plikkonf
    Korzysta z pliku plikkonf zamiast z (opcjonalnego) /etc/modules.conf dla określenia konfiguracji. Do wybrania (i narzucenia) innego pliku konfiguracyjnego niż domyślny /etc/modules.conf (lub (przestarzały) /etc/conf.modules) można również użyć zmiennej środowiska MODULECONF.

Uwaga:
    Zawy modułów nie mogą zawierać ścieżek (bez '/') ani kończących nazwę '.o'. Na przykład, slip jest dla modprobe poprawną nazwą, a /lib/modules/2.2.19/net/slip i slip.o są niepoprawne. Dotyczy to linii poleceń i całego pliku konfiguracyjnego.

OPIS
Programy narzędziowe modprobe i depmod służą do zarządzania zmodularyzowanym jądrem Linuksa przez zwykłych użytkowników, administratorów i twórców dystrybucji.

modprobe w celu automatycznego ładowania właściwych, spośród zbioru modułów dostępnych w predefiniowanych drzewach katalogów, korzysta z pliku podobnego do "Makefile", tworzonego przez depmod. modprobe jest używany do załadowania: pojedynczego modułu, zbioru powiązanych modułów, lub wszystkich modułów oznaczonych podanym znacznikiem.

modprobe automatycznie załaduje wszystkie moduły podstawowe, wymagane przez zbiór modułów, zgodnie z opisem w pliku powiązań modules.dep. Jeśli ładowanie jednego z tych modułów się nie powiedzie, cały zbiór modułów załadowanych w bieżącej sesji zostanie automatycznie rozładowany.

modprobe może ładować moduły na dwa różne sposoby. Jeden to taki, że modprobe spróbuje załadować moduł z podanej listy (zdefiniowany przez wzorzec ). modprobe zatrzyma się jeśli uda mu się załadować jeden z modułów. W ten sposób można automatycznie ładować sterownik karty Ethernet jako jeden z listy.
Inny sposób użycia modprobe to załadowanie wszystkich modułów z listy. Zobacz PRZYKŁADY poniżej.

Gdy poda się opcję -r, modprobe automatycznie usunie zbiór modułów, podobnie jak by to zostało wykonane przez rmmod -r. Należy zauważyć, że wydanie polecenia modprobe -r spowoduje wyczyszczenie nieużywanych, automatycznie załadowanych modułów a także wykonanie poleceń pre- i post-remove z pliku konfiguracyjnego /etc/modules.conf.

Jeżeli opcja -l zostanie połączona z opcją -t, wypisana zostanie lista wszystkich dostępnych modułów określonego typu.

Opcja -c wypisuje całą bieżącą konfigurację (ustawienia domyślne + plik konfiguracyjny).

KONFIGURACJA
Zachowanie się depmod i modprobe może być dostosowane przez (opcjonalny) plik konfiguracyjny /etc/conf.modules.
Po bardziej szczegółowy opis możliwej zawartości tego pliku, jak i konfigurację domyślną używaną przez depmod i modprobe, zajrzyj do modules.conf(5).

Należy zwrócić uwagę, że polecenia pre- i post-remove nie będą wykonywane jeśli moduł jest usuwany automatycznie przez kerneld! Zamiast zastanawiać się, jak to obejść, należy poczekać, aż zostanie wprowadzona obsługa trwałego przechowywania danych dla modułów.
Jeśli funkcjonalność pre- i post-install jest potrzebna, należy wyłączyć automatyczne usuwanie modułów przez kerneld i zamiast tego wpisać linię podobną do poniższej w crontab (ma to również zastosowanie w systemach korzystających z kmod), aby automatyczne usuwać moduły co 2 minuty:
 */2 * * * * test -f /proc/modules && /sbin/modprobe -r

STRATEGIA
Idea polega na tym, by modprobe najpierw sprawdził katalog zawierający moduły skompilowane dla bieżącej wersji jądra. Jeśli właściwy moduł nie zostanie tam znaleziony, modprobe sprawdzi inne katalogi, wspólne dla głównego numery wersji jądra (np. 2.0, 2.2). Jeśli tam też nie znajdzie modułu, modprobe będzie szukać w katalogu zawierającym moduły dla domyślnego jądra, itd.

Podczas instalacji nowego Linuksa, moduły powinny być przeniesione do katalogu nazwanego od numeru jądra które jest instalowane. Wówczas należy zrobić dowiązanie symboliczne z tego katalogu do katalogu "default".

Podczas każdej kompilacji nowego jądra, polecenie make modules_install utworzy nowy katalog, ale nie zmieni dowiązania do katalogu default.

Kiedy otrzyma się moduł nie związany z konkretnym jądrem należy go umieścić w jednym z katalogów nie zależnych od wersji jądra w katalogu /lib/modules.

Takie jest standardowe zachowanie, które może być zmienione poprzez odpowiednie wpisy do /etc/modules.conf.

PRZYKŁADY

modprobe -t net
    Załaduj jeden z modułów, który znajduje się w katalogu oznaczonym "net". Każdy moduł jest wypróbowywany aż do momentu kiedy któryś z nich zostanie załadowany (standardowo: /lib/modules/net).

modprobe -t net
    Ładuje jeden z modułów znajdujących się w katalogu "net". Próbuje wszystkich modułów po kolei, aż z jednym się uda.

modprobe -a -t boot
    Wszystkie moduły znajdujące się w katalogach oznaczonych przez boot będą załadowane.

modprobe slip
    Polecenie to spowoduje próbę załadowania modułu slhc.o o ile nie został uprzednio załadowany, ponieważ moduł slip wymaga funkcjonalności modułu slhc. Ta zależność będzie opisana w pliku "modules.dep" utworzonym wcześniej automatycznie przez polecenie depmod.

modprobe -r slip
    usunie moduł slip. Usunie również automatycznie moduł slhc, o ile nie jest on również używany przez jakiś inny moduł (np. ppp).

PLIKI
/etc/modules.conf (alternatywnie, przestarzały /etc/conf.modules)
/lib/modules/*/modules.dep,
/lib/modules/*

ZOBACZ TAKŻE
depmod(8), lsmod(8), kerneld(8), ksyms(8), rmmod(8)

TRYB BEZPIECZNY
Jeśli efektywny uid jest różny od rzeczywistego uid, modprobe analizuje podane parametry szczególnie podejrzliwie. Ostatni parametr jest zawsze traktowany jak nazwa modułu, nawet gdy zaczyna się od '-'. Może być podana nazwa tylko jednego modułu a opcje postaci "zmienna=wartość" są zabronione. Nazwa modułu jest zawsze traktowana jak łańcuch znakowy, w trybie bezpiecznym nie są przeprowadzane rozwinięcia. Jednakże, rozwinięcia nadal są wykonywane odnośnie danych zawartych w pliku konfiguracyjnym.

euid może być różny od uid podczas wywoływania modprobe przez jądro; dzieje się tak dla jąder >= 2.4.0-test11. W świecie idealnym modprobe mógłby ufać jądru, że przekazuje tylko prawidłowe parametry. Jednakże, pojawiła się co najmniej jedna metoda wykorzystania tego lokalnie dla uzyskania uprawnień roota, gdyż wysokopoziomowy kod kernela przekazywał bezpośrednio parametry od użytkownika do modprobe, bez kontroli.

modprobe automatycznie ustawia tryb bezpieczny, gdy środowisko składa się jedynie z następujących zmiennych:
 HOME=/
 TERM=linux
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
Jest to wykrywanie uruchamiania modprobe przez jądro dla jąder 2.2 do 2.4.0-test11, nawet gdy uid == euid, jak się dzieje dla wcześniejszych jąder.

LOGOWANIE POLECEŃ
Jeśli istnieje katalog /var/log/ksymoops, a modprobe zostanie uruchomiany z opcją powodującą załadowanie lub usunięcie modułu, modprobe zaloguje swoje polecenie i kod powrotu w /var/log/ksymoops/`date +%Y%m%d.log`. Nie ma przełącznika wyłączającego automatyczne logowanie. Jeśli nie ma ono występować, nie należy tworzyć katalogu /var/log/ksymoops. Jeśli ten katalog istnieje, powinien być on własnością roota i mieć prawa dostępu 644 lub 600 oraz należy uruchamiać codziennie, lub w podobnych odstępach czasu, skrypt insmod_ksymoops_clean.

NIEZBĘDNE NARZĘDZIA
depmod(8), insmod(8)

UWAGI
Wzorce podane programowi modprobe często wymagają cytowania, aby mieć pewność, że są interpretowany we właściwy sposób.

AUTOR
Jacques Gelinas (jack@solucorp.qc.ca)
Bjorn Ekwall (bj0rn@blox.se)