> Linux Reviews > man >

depmod

depmod

, modprobe programy do "automatycznej" obsługi modułów


  1. depmod.1.man
  2. depmod.8.man


1. depmod.1.man

Manpage of DEPMOD

DEPMOD

Section: Linux Module Support (1)
Updated: March 17, 1996
Index Return to Main Contents
 

NAZWA

depmod, modprobe - programy do "automatycznej" obsługi modułów  

SKŁADNIA

depmod [ -a ]
depmod [ -a wersja ]
depmod moduł1.o moduł2.o ...

modprobe moduł.o [symbol=wartość ...]
modprobe -t tag wzorzec
modprobe -a -t tag wzorzec
modprobe -l [ -t tag ] wzorzec
modprobe -r moduł
modprobe -c
 

OPIS

Narzędzia te mają pomóc użytkownikom w posługiwaniu się modułami Linuksa.

Depmod tworzy plik podobny do "Makefile" z zależnościami, bazujący na symbolach, które znalazł w zbiorze modułów podanych w linii komend (lub w standardowym miejscu). Plik zależności może być potem użyty przez modprobe , aby automatycznie załadować odpowiednie moduły.

Modprobe jest używany aby załadować zbiór modułów, pojedynczy moduł, zbiór zależnych od siebie modułów lub wszystkie moduły oznaczone określonym tagiem.

Modprobe ładuje automatycznie wszystkie moduły zależne od siebie w zbiorze modułów, jak zostało to opisane w pliku zależności modules.dep. Jeśli załadowanie jednego z tych modułów się nie powiedzie, cały zbiór modułów zostanie usunięty automatycznie z jądra (przez rmmod).

Modprobe może ładować moduły na dwa różne sposoby. Jeden to taki, że modprobe spróbuje załadować moduł z podanej listy lub zdefiniowany przez wzorzec (pattern). Zatrzymuje się jeśli uda mu się załadować jeden z modułów. Ten tryb może być użyty np. do automatycznego załadowania modułu z driverem dla naszej karty sieciowej, wybranego z listy. Inny sposób użycia modprobe, to załadowanie wszystkich modułów z listy. Ta opcja może być użyta do załadowania wszystkich modułów w trakcie uruchamiania systemu.

Podając opcję -r, modprobe automatycznie usunie zbiór modułów, podobnie jak by to zostało wykonane przez rmmod -r

Opcja -l podana z opcją -t wypisze wszystkie dostępne moduły określonego typu. Polecenie mount mogło by np. wykorzystać komendę

        modprobe -l -t fs

aby otrzymać listę wszystkich dostępnych systemów plików w postaci modułów, aby następnie załadować odpowiedni. Polecenie, mount mogłoby się wtedy stać bardziej elastyczne... (ale tym zajmuje się kerneld bez potrzeby zmian w poleceniu mount).

Opcja -c wyświetla całą konfigurację (ustawienia standardowe + plik konfiguracyjny).

Najczęstsze użycie depmod to wstawienie polecenia "/sbin/depmod -a" w jednym z plików startowych w /etc/rc.d, aby odpowiednie powiązania modułów były dostępne zaraz po uruchomieniu się systemu.
Istnieje także możliwość utworzenia pliku zależności zaraz po skompilowaniu nowego jądra. Po wykonaniu "depmod -a 1.3.99" jeśli wcześniej skompilowałeś jądro 1.3.99 i jego moduły po raz pierwszy, używając wciąż jądra 1.3.98, plik zostanie utworzony w odpowiednim miejscu.
Zauważ, że mimo wszystko, zależności wygenerowane mogą nie być poprawne.

Opcja -d uruchomi depmod w trybie debugowania. Wyświetla wszystkie polecenia, które wydaje.

Opcja -e podaje listę wszystkich nierozwiązanych symboli dla każdego modułu, Normalnie depmod wyświetli jedynie listę modułów, które nie może załadować.

Opcja -v wyświetla listę wszystkich modułów którymi się zajmuje.

Moduły mogą być położone w innym miejscu systemu plików, ale zawsze będzie istniała potrzeba aby to zmienić, szczególnie dla ludzi zajmujących się rozwijaniem modułów. Oczekuje się, że pojawią się oficjalne standardy zdefiniowane przez FSSTND. Do tego czasu możesz używać równie dobrze struktury katalogów tu zaproponowanej.  

KONFIGURACJA

Zachowanie się depmod i modprobe może być dostosowane przez (opcjonalny) plik konfiguracyjny /etc/conf.modules

Plik ten składa się ze zbioru linii.
Wszystkie puste linie i linie zaczynające się od znaku '#', zostaną zignorowane.
Linie mogą być kontynuowane poprzez zakończenie ich znakami '\'.
Pozostałe linie powinny być dostosowane do jednego z podanych poniżej formatów:


  keep
  parameter=wartość
  options module symbol=wartość ...
  alias moduł prawdziwa_nazwa
  pre-install moduł polecenie ...
  install moduł polecenie ...
  post-install moduł polecenie ...
  pre-remove moduł polecenie ...
  remove moduł polecenie ...
  post-remove moduł polecenie ...

Wszystkie wartości w liniach "parameter" będą uruchamiane poprzez powłokę, co oznacza, że dozwolone są wszystkie triki powłokowe, jak znaki specjalne "*", "?" i komendy podawane w odwróconych apostrofach:


  path[misc]=/lib/modules/1.1.5?
  path[net]=/lib/modules/`uname -r`

Parametry mogą być powtarzane wiele razy.

Poniżej podane są dozwolone parametry:

keep
Jeśli to słowo zostanie znalezione w lini przed jakąkolwiek inną linią, która zawiera opis ścieżek (path) , standardowy zbiór ścieżek zostanie zachowany, a następne zostaną dodane do niego. W przeciwnym wypadku standardowe ścieżki zostaną usunięte przez sciezki podane w pliku konfiguracyjnym.
depfile=DEPFILE_PATH
Jest to ścieżka do pliku zawierającego plik zależności, który zostanie utworzony przez depmod , a używany przez modprobe.
path=SOME_PATH
Parametr path podaje katalog w którym powinny być szukane moduły.
path[tag]=SOME_PATH
Parametr path może mieć dodatkowy, opcjonalny tag. W ten sposób możemy trochę dokładniej opisać znacznie modułów w tym katalogu, pozwala nam to na zautomatyzowanie operacji wykonywanych przez modprobe. Tag jest dodawany do słowa "path" i zawarty jest w nawiasach kwadratowych. Jeśli przy 'path" nie ma podanego taga, standardowo dołączany jest tag "misc".
Jednym z bardziej użytecznych tagów jest tag boot, którym możemy oznaczyć wszystkie moduły które mają być załadowane podczas startu systemu.

Jeśli brakuje pliku '/etc/conf.modules', lub jeśli żaden z parametrów nie został użyty, następujące ustawienia standardowe są zakładane:


  depfile=/lib/modules/`uname -r`/modules.dep
  path[boot]=/lib/modules


  path[fs]=/lib/modules/`uname -r`
  path[misc]=/lib/modules/`uname -r`
  path[net]=/lib/modules/`uname -r`
  path[scsi]=/lib/modules/`uname -r`
  path[cdrom]=/lib/modules/`uname -r`
  path[ipv4]=/lib/modules/`uname -r`
  path[ipv6]=/lib/modules/`uname -r`
  path[sound]=/lib/modules/`uname -r`


  path[fs]=/lib/modules/default
  path[misc]=/lib/modules/default
  path[net]=/lib/modules/default
  path[scsi]=/lib/modules/default
  path[cdrom]=/lib/modules/default
  path[ipv4]=/lib/modules/default
  path[ipv6]=/lib/modules/default
  path[sound]=/lib/modules/default


  path[fs]=/lib/modules
  path[misc]=/lib/modules
  path[net]=/lib/modules
  path[scsi]=/lib/modules
  path[cdrom]=/lib/modules
  path[ipv4]=/lib/modules
  path[ipv6]=/lib/modules
  path[sound]=/lib/modules

Wszystkie linie opcji ("option" lines) podają standardowe opcje które są wymagane przez moduł, np.:


  modprobe de620 bnc=1

Opcje te mogą być zmienione przez podanie tych opcji do programu modprobe z lini komend.

Możliwe jest użycie lini opcji także dla aliasu modułu równie dobrze jak i dla jego prawdziwej nazwy. Przykład użytecznego użycia poniżej:


  alias dummy0 dummy
  options dummy0 -o dummy0

Linie zaczynające się od słowa "alias" mogą być użyte dla podania aliasów dla pewnych modułów. Linia w /etc/conf.modules która wygląda jak poniżej:


  alias iso9660 isofs

sprawia że można wpisać modprobe iso9660 mimo iż tak naprawdę nie ma takiego modułu.
Zauważ że linia:


  alias nazwa_modułu off

sprawi, że modprobe zignoruje żądania załadownia tego modułu. Jest to zazwyczaj używane w połączeniu z kerneld.

Komendy
Linie konfigurujące
  pre-install moduł polecenie ...
  install moduł polecenie ...
  post-install moduł polecenie ...
  pre-remove moduł polecenie ...
  remove moduł polecenie ...
  post-remove moduł polecenie ...
mogą być użyte kiedy chcemy aby pewne specyficzne polecenia zostały wykonane kiedy moduł jest ładowany lub usuwany. Cały tekst podany za nazwą modułu będzie zinterpretowany jak komenda do wykonania.
Zauważ, że komendy pre- i post-remove nie będą wykonywane jeśli moduł jest usuwany automatycznie przez kerneld! Zamiast zastanawiać się, jak to obejść, poczekaj, aż zostanie wprowadzona obsługa uporczywych modułom.

 

STRATEGIA

Istnieje pomysł aby modprobe najpierw sprawdził katalog zawierający moduły skompilowane dla bieżącej wersji jądra. Jeśli nie zostanie tam znaleziony, modprobe sprawdzi inne katalogi.

Kiedy zainstalujesz nowego Linuksa, moduły powinny być przesunięte do katalogu nazwanego od numeru jądra które instalujemy. Następnie powinieneś zrobić link z tego katalogu do katalogu "default".

Za każdym razem kiedy kompilujesz nowe jądro, polecenie make modules_install stworzy nowy katalog, ale nie zmieni katalogu default.

Kiedy otrzymasz moduł nie związany z konkretnym jądrem powinieneś go umieścić w katalogu nie zależnym od wersji jądra w katalogu /lib/modules.

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

PRZYKŁADY

modprobe -t net
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).
modprobe -a -t boot
Wszystkie moduły, które znajdują się w katalogu oznaczony przez "boot" będą załadowane (standardowo: /lib/modules/boot).
modprobe slip.o
Polecenie to spowoduje próbę załadowania modułu slhc.o o ile nie został uprzednio załadowany, ponieważ moduł slip potrzebuje wcześniejszego załadowania modułu slhc.o. Ta zależność będzie opisana w pliku "modules.dep", który został wygenerowany automatycznie przez depmod
modprobe -r slip.o
usunie slip.o, a także automatycznie slhc.o, chyba że jest on używany przez jakiś inny moduł (np. ppp.o).
 

PLIKI

/etc/conf.modules, (and /etc/modules.conf)
/lib/modules/*/modules.dep,
/lib/modules/*
 

ZOBACZ TAKŻE

lsmod(1), kerneld(8), ksyms(1), modules(2),  

NIEZBĘDNE NARZĘDZIA

insmod(1), nm(1) rmmod(1),  

NOTES

Wzorzec podany programowi modprobe często jest escapowany, aby mieć pewność, że jest interpretowany we właściwy sposób.

 

AUTOR

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

BŁĘDY

Naah...


 

Index

NAZWA
SKŁADNIA
OPIS
KONFIGURACJA
STRATEGIA
PRZYKŁADY
PLIKI
ZOBACZ TAKŻE
NIEZBĘDNE NARZĘDZIA
NOTES
AUTOR
BŁĘDY

This document was created by man2html using the manual pages.
Time: 17:40:19 GMT, May 11, 2012

2. depmod.8.man

Manpage of DEPMOD

DEPMOD

Section: Wsparcie dla modułów (8)
Updated: 2 października 2001
Index Return to Main Contents
 

NAZWA

depmod - obsługa opisu zależności pomiędzy modułami jądra  

SKŁADNIA

depmod -[aA] [-enqsvVru] [-C plikkofiguracyjny] [-F symbolejądra] [-b katalogbazowy] [wymuszona_wersja]
depmod [-enqsvru] [-F symbolejądra] moduł1.o moduł2.o ...  

OPCJE

-a
Poszukuje modułów we wszystkich katalogach wymienionych w (opcjonalnym) pliku kofiguracyjnym /etc/modules.conf.
-A
Porównuje znaczniki czasowe plików i, jeśli trzeba, działa jak depmod -a. Ta opcja aktualizuje zależności jedynie, gdy coś się zmieniło.
-e
Pokazuje wszystkie nierozwiązane symbole dla poszczególnych modułów.
-n
Wypisuje plik zależności na standardowe wyjście, zamiast do drzewa /lib/modules.
-s
Wypisuje komunikaty o błędach za pośrednictwem demona syslog, zamiast na standardową diagnostykę.
-v
Wypisuje nazwy poszczególnych modułów podczas ich przetwarzania.
-q
Każe depmodowi zamilknąć i nie narzekać na brakujące symbole.
-V
Wypisuje numer wersji programu depmod
-r
Niektórzy użytkownicy kompilują moduły jako użytkownik inny niż root, a następnie instalują je jako root. W wyniku tego właścicielem modułów nie będzie root, nawet jeśli jest on właścicielem katalogu modułów. Jeśli dopuści się innego użytkownika niż root jako właściciela modułów, umożliwi się nieproszonemu gościowi nadpisanie istniejących modułów będących własnością tego użytkownika i wykorzystanie załadowania go do uzyskania uprawnień roota.
Domyślnie, modutils odrzucą próbę załadowania modułu nie należącego do root-a. Podanie -r zniesie błąd i pozwoli root-owi załadować moduły, które nie są jego własnością.
Używanie -r jest poważnym naruszeniem bezpieczeństwa i nie jest zalecane.
-u
depmod 2.4 nie ustawia kodu powrotu, gdy występują nierozwiązane symbole. Następna główna wersja modutils (2.5) będzie to robić. Niektóre dystrybucje wymagają niezerowego kodu powrotu przy nierozwiązanych symbolach, ale taka zmiana mogłaby spowodować problemy u użytkowników oczekujących starego zachowania. Jeśli niezerowy kodu powrotu jest potrzebny w depmod 2.4, należy podać -u. depmod 2.5 będzie milcząco ignorować flagę -u i będzie zawsze zwracać niezerowy kodu powrotu przy nierozwiązanych symbolach.

Następujące opcje są przydatne dla osób zarządzających dystrybucjami:

-b katalogbazowy
Jeśli drzewo katalogów /lib/modules zawierające poddrzewa modułów zostanie przeniesione gdzie indziej, aby obsługiwać moduły w innym środowisku, opcja katalogbazowy mówi depmodowi, gdzie szukać przeniesionego obrazu drzewa /lib/modules. Odwołania do plików w pliku wynikowym depmoda, modules.dep, który zostanie utworzony nie będą zawierać ścieżki katalogbazowy. Oznacza to, że gdy drzewo plików zostanie przeniesione z powrotem z katalogbazowy/lib/modules do /lib/modules w ostatecznej dystrybucji, wszystkie odwołania będą poprawne.
-C plikkofiguracyjny
Każe korzystać z pliku plikkofiguracyjny zamiast /etc/modules.conf.
Do wybrania innego pliku konfiguracyjnego niż domyślny /etc/modules.conf (lub /etc/conf.modules (przestarzałe)) można również wykorzystać zmienną środowiska MODULECONF.
-F symbolejądra
Podczas budowania pliku zależności dla innego jądra niż aktualnie działąjące ważne jest, aby depmod korzystał z właściwego zbioru symboli jądraa przy rozwiązywaniu odwołań do jądra z poszczególnych modułów. Symbole te mogą być kopią albo kopią pliku System.map z właściwego jądra, albo kopią zawartości /proc/ksyms. Jeśli jądro używa a wersjonowanych symboli, najlepiej korzystać z kopii zawartości /proc/ksyms, gdyż plik ten zawiera wersje symboli jądra. Jednakże, nawet z wersjonowanymi symbolami, można używać System.map.
 

OPIS

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

depmod tworzy podobny do "Makefile" plik z zależnościami, oparty na symbolach, które znajdzie w zbiorze modułów podanych w linii poleceń lub w katalogach wymienionych w pliku konfiguracyjnym. Plik zależności może być potem wykorzystany przez modprobe w celu automatycznego ładowania odpowiednich modułów lub zestawów modułów.

Typowe użycie depmod polega na umieszczeniu linii /sbin/depmod -a gdzieś w skryptach startowych w /etc/rc.d tak, aby odpowiednie powiązania modułów były dostępne zaraz po uruchomieniu się systemu. Należy zauważyć, że parametr -a jest obecnie opcjonalny. Dla stosowania podczas startu systemu opcja -q może być bardziej właściwa, gdyż wycisza ona depmoda w kwestii nierozwiązanych symboli.

Istnieje także możliwość utworzenia pliku zależności zaraz po skompilowaniu nowego jądra. Wydanie polecenia "depmod -a 2.2.99" po wcześniejszej kompilacji jądra 2.2.99 i jego modułów po raz pierwszy, używając wciąż jądra 2.2.98, spowoduje utworzenie pliku we właściwym miejscu. Jednakże w tym przypadku, wygenerowane zależności mogą nie być poprawne. Zobacz opis opcji -F, -C i -b powyżej aby uzyskać więcej informacji na temat obsługi tej sytuacji.

Podczas tworzenia związków pomiędzy modułami i symbolami udostępnionymi przez inne moduły depmod nie bierze pod uwagę stosunku modułu lub udostępnionych syboli do licencji GPL. To znaczy, depmod nie zgłosi błędu jeśli moduł na licencji niezgodnej z GPL będzie się odwoływać to symboli zastrzeżonych dla GPL (EXPORT_SYMBOL_GPL w jądrze). Jednakże, insmod odmówi rozwiązania symboli zastrzeżonych dla GPL dla modułów nie-GPL, więc modułu nie uda się załadować.  

KONFIGURACJA

Zachowanie się depmod i modprobe może być dostosowane przez (opcjonalny) plik konfiguracyjny /etc/modules.conf.
Zajrzyj do modprobe(8) i modules.conf(5) po pełny opis.

 

STRATEGIA

Za każdym razem podczas kompilacji nowego jądra, polecenie make modules_install stworzy nowy katalog, ale nie zmieni katalogu domyślnego.

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 /lib/modules.

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

PLIKI

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

ZOBACZ TAKŻE

modules.conf(5), modprobe(8), modinfo(8), lsmod(8), ksyms(8)  

AUTOR

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


 

Index

NAZWA
SKŁADNIA
OPCJE
OPIS
KONFIGURACJA
STRATEGIA
PLIKI
ZOBACZ TAKŻE
AUTOR

This document was created by man2html using the manual pages.
Time: 17:40:19 GMT, May 11, 2012

SVENSKA - SVENSKA - ja