Scroll to navigation

MODPROBE(8) Wsparcie dla modułów 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

Ładuje all wszystkie moduły pasujące do wzorca, zamiast zatrzymać się po pierwszym pomyślnym załadowaniu.
Pokazuje akrualnie używaną konfigurację.
Pokazuje informacje o wewnęrznej reprezentacji stosu modułów.
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.
Wypisuje pasujące moduły.
Pokazuje, co by się działo, nie podejmując żadnej akcji.
Nie narzeka na niepomyślną instalację modułu przez insmoda. Kontymuuje jak zwykle, lecz po cichu, umożliwiając modprobe testowanie innych możliwości. Opcja ta jest automatycznie przekazywana do insmoda.
Usuwa moduł (stos modułów) lub wykonuj autoczyszczenie, w zależności od tego, czy podano jakieś moduły w linii poleceń, czy nie.
Wyprowadza wszystko do syslog zamiast na standardową diagnostykę. Opcja ta jest automatycznie przekazywana do insmoda.
Bierze pod uwagę jedynie moduły danego typu. modprobe będzie szukać jadynie 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.
Wupisuje wszystkie uruchamiane polecenia.
Wypisuje wersję modprobe.
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.
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. Zobzcz 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

Załaduj jeden z modułów, który znajduje się w katalogu oznaczonym "net". Każdy moduł jest wyprubowywany aż do momentu kiedy któryś z nich zostanie załadowany (standardowo: /lib/modules/net).
Ładuje jeden z modułów znajdujących się w katalogu "net". Próbuje wszystkich modułów po kolei, aż z jednym się uda.
Wszystkie moduły znajdujące się w katalogach oznaczonych przez boot będą załadowane.
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.
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)

15 sierpnia 2001 Linux