modprobeodczytuje moduły z /lib/modules/$(uname -r)/modules.dep.bin(lub bez .binprzyrostka, jeśli inny plik nie jest dostępny). Z tego samego pliku ładowane są zależności.
modprobeakceptuje nazwę .kopliku w /lib/modules/$(uname -r)(np. nvidia-currentdla pliku dkms/nvidia-current.ko) i aliasy ( modules.alias.bin). Wbudowane ( modules.alias.bin) również są rozpoznawane, ale ponieważ te moduły są ładowane domyślnie, nie ma sensu modprobowanie tego rodzaju modułów.
insmodz drugiej strony akceptuje ścieżki do plików. Moduł nie musi rezydować /lib/modules/$(uname -r), ale zależności nie są ładowane automatycznie. Jest to niższy program używany modprobedo ładowania modułów.
Inne programy związane z modułami to rmmodi modinfo.
rmmodusuwa nazwę jądra na podstawie nazwy z /proc/modules. Ta nazwa niekoniecznie musi być taka sama jak nazwa przekazana modprobe(na przykład dla nvidia-currentpliku nvidia).
modinfoakceptuje nazwę pliku lub nazwę pliku bez .koprzyrostka /lib/modules/$(uname -r).
modprobeto inteligentne polecenie, szuka zależności podczas ładowania modułu. Załóżmy, że jeśli załadowałem moduł, który ma symbole zdefiniowane w innym module (ta ścieżka modułu jest podana w module głównym). Tak więc modprobeładuje moduł główny i moduł zależny.
Ale jeśli insmodzostanie użyty, nie załaduje zależności, a zatem spowoduje błędy kompilacji takie jak Unresolved symbols. W takim przypadku musimy ręcznie poszukać modułu zależnego i musimy go załadować, aby usunąć błędy.
Warto wspomnieć o narzędziu modprobe. Modprobe, podobnie jak insmod, ładuje moduł do jądra. Różni się tym, że sprawdzi moduł, który ma zostać załadowany, aby sprawdzić, czy odwołuje się do symboli, które nie są obecnie zdefiniowane w jądrze. Jeśli zostaną znalezione takie odniesienia, modprobe szuka innych modułów w bieżącej ścieżce wyszukiwania modułów, które definiują odpowiednie symbole. Kiedy modprobe znajdzie te moduły (potrzebne do załadowanego modułu), ładuje je również do jądra. Jeśli zamiast tego użyjesz insmod w tej sytuacji, polecenie zakończy się niepowodzeniem z komunikatem „nierozwiązane symbole” w pliku dziennika systemu
modprobe
odczytuje moduły z/lib/modules/$(uname -r)/modules.dep.bin
(lub bez.bin
przyrostka, jeśli inny plik nie jest dostępny). Z tego samego pliku ładowane są zależności.modprobe
akceptuje nazwę.ko
pliku w/lib/modules/$(uname -r)
(np.nvidia-current
dla plikudkms/nvidia-current.ko
) i aliasy (modules.alias.bin
). Wbudowane (modules.alias.bin
) również są rozpoznawane, ale ponieważ te moduły są ładowane domyślnie, nie ma sensu modprobowanie tego rodzaju modułów.insmod
z drugiej strony akceptuje ścieżki do plików. Moduł nie musi rezydować/lib/modules/$(uname -r)
, ale zależności nie są ładowane automatycznie. Jest to niższy program używanymodprobe
do ładowania modułów.Inne programy związane z modułami to
rmmod
imodinfo
.rmmod
usuwa nazwę jądra na podstawie nazwy z/proc/modules
. Ta nazwa niekoniecznie musi być taka sama jak nazwa przekazanamodprobe
(na przykład dlanvidia-current
plikunvidia
).modinfo
akceptuje nazwę pliku lub nazwę pliku bez.ko
przyrostka/lib/modules/$(uname -r)
.źródło
modprobe
to inteligentne polecenie, szuka zależności podczas ładowania modułu. Załóżmy, że jeśli załadowałem moduł, który ma symbole zdefiniowane w innym module (ta ścieżka modułu jest podana w module głównym). Tak więcmodprobe
ładuje moduł główny i moduł zależny.Ale jeśli
insmod
zostanie użyty, nie załaduje zależności, a zatem spowoduje błędy kompilacji takie jakUnresolved symbols
. W takim przypadku musimy ręcznie poszukać modułu zależnego i musimy go załadować, aby usunąć błędy.źródło
Warto wspomnieć o narzędziu modprobe. Modprobe, podobnie jak insmod, ładuje moduł do jądra. Różni się tym, że sprawdzi moduł, który ma zostać załadowany, aby sprawdzić, czy odwołuje się do symboli, które nie są obecnie zdefiniowane w jądrze. Jeśli zostaną znalezione takie odniesienia, modprobe szuka innych modułów w bieżącej ścieżce wyszukiwania modułów, które definiują odpowiednie symbole. Kiedy modprobe znajdzie te moduły (potrzebne do załadowanego modułu), ładuje je również do jądra. Jeśli zamiast tego użyjesz insmod w tej sytuacji, polecenie zakończy się niepowodzeniem z komunikatem „nierozwiązane symbole” w pliku dziennika systemu
źródło