Jak ładować i rozładowywać moduły jądra w systemie Linux
Moduł jądra to program, który można załadować do jądra lub wyładować z niego na żądanie, bez konieczności ponownej jego kompilacji (jądra) lub ponownego uruchamiania systemu, i ma na celu ulepszenie funkcjonalności jądra.
Ogólnie rzecz biorąc, moduły przypominają mniej więcej wtyczki do oprogramowania takiego jak WordPress. Wtyczki umożliwiają rozszerzenie funkcjonalności oprogramowania. Bez nich programiści musieliby stworzyć jedno, ogromne oprogramowanie ze wszystkimi funkcjami zintegrowanymi w pakiecie. Jeżeli potrzebne byłyby nowe funkcjonalności, musiałyby zostać dodane w nowych wersjach oprogramowania.
Podobnie bez modułów jądro musiałoby zostać zbudowane ze wszystkimi funkcjonalnościami zintegrowanymi bezpośrednio z obrazem jądra. Oznaczałoby to posiadanie większych jąder, a administratorzy systemu musieliby rekompilować jądro za każdym razem, gdy potrzebna jest nowa funkcjonalność.
Prostym przykładem modułu jest sterownik urządzenia – który umożliwia jądru dostęp do komponentu/urządzenia sprzętowego podłączonego do systemu.
Sugerowana lektura: Jak sprawdzić, jakiej wersji Linuksa używasz
Wyświetl listę wszystkich załadowanych modułów jądra w systemie Linux
W Linuksie wszystkie moduły kończą się rozszerzeniem .ko
i zwykle są ładowane automatycznie po wykryciu sprzętu podczas uruchamiania systemu. Jednakże administrator systemu może zarządzać modułami za pomocą określonych poleceń.
Aby wyświetlić listę wszystkich aktualnie załadowanych modułów w systemie Linux, możemy użyć polecenia lsmod (list Modules), które odczytuje zawartość /proc/modules w ten sposób.
lsmod
Module Size Used by
rfcomm 69632 2
pci_stub 16384 1
vboxpci 24576 0
vboxnetadp 28672 0
vboxnetflt 28672 0
vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci
bnep 20480 2
rtsx_usb_ms 20480 0
memstick 20480 1 rtsx_usb_ms
btusb 45056 0
uvcvideo 90112 0
btrtl 16384 1 btusb
btbcm 16384 1 btusb
videobuf2_vmalloc 16384 1 uvcvideo
btintel 16384 1 btusb
videobuf2_memops 16384 1 videobuf2_vmalloc
bluetooth 520192 29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
videobuf2_v4l2 28672 1 uvcvideo
videobuf2_core 36864 2 uvcvideo,videobuf2_v4l2
v4l2_common 16384 1 videobuf2_v4l2
videodev 176128 4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
intel_rapl 20480 0
x86_pkg_temp_thermal 16384 0
media 24576 2 uvcvideo,videodev
....
Jak załadować i rozładować (usunąć) moduły jądra w systemie Linux
Aby załadować moduł jądra, możemy użyć polecenia insmod (wstaw moduł). Tutaj musimy podać pełną ścieżkę modułu. Poniższe polecenie wstawi moduł speedstep-lib.ko.
insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
Aby zwolnić moduł jądra, używamy polecenia rmmod (usuń moduł). Poniższy przykład wyładuje lub usunie moduł speedstep-lib.ko.
rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
Jak zarządzać modułami jądra za pomocą polecenia modprobe
modprobe to inteligentne polecenie służące do wyświetlania, wstawiania i usuwania modułów z jądra. Wyszukuje w katalogu modułów /lib/modules/&36 (uname -r) wszystkie moduły i powiązane pliki, ale wyklucza alternatywne pliki konfiguracyjne w /etc/modprobe.d katalog.
Tutaj nie potrzebujesz bezwzględnej ścieżki modułu; to jest zaleta używania modprobe w porównaniu z poprzednimi poleceniami.
Aby wstawić moduł, po prostu podaj jego nazwę w następujący sposób.
modprobe speedstep-lib
Aby usunąć moduł, użyj flagi -r
w ten sposób.
modprobe -r speedstep-lib
Uwaga: w modprobe wykonywana jest automatyczna konwersja podkreśleń, więc nie ma różnicy pomiędzy _
i –
podczas wprowadzanie nazw modułów.
Aby uzyskać więcej informacji o użytkowaniu i opcjach, przeczytaj stronę podręcznika modprobe.
man modprobe
Nie zapomnij sprawdzić:
- Jak zmieniać parametry wykonawcze jądra w sposób trwały i nietrwały
- Jak zainstalować lub uaktualnić do najnowszej wersji jądra w CentOS 7
- Jak zaktualizować jądro do najnowszej wersji w Ubuntu
To wszystko na teraz! Jeśli masz jakieś przydatne pomysły, które chciałbyś, abyśmy dodali do tego przewodnika lub masz pytania, skorzystaj z poniższego formularza opinii i prześlij je nam.