Jak načíst a uvolnit moduly jádra v Linuxu
Modul jádra je program, který lze na vyžádání zavést do jádra nebo z něj uvolnit, aniž by bylo nutné jej znovu kompilovat (jádro) nebo restartovat systém, a je určen ke zlepšení funkčnosti jádra.
Obecně řečeno, moduly jsou víceméně jako pluginy do softwaru, jako je WordPress. Pluginy poskytují prostředky pro rozšíření softwarové funkčnosti, bez nich by vývojáři museli vytvořit jediný masivní software se všemi funkcemi integrovanými v balíčku. Pokud jsou potřeba nové funkce, musely by být přidány v nových verzích softwaru.
Stejně tak bez modulů by jádro muselo být sestaveno se všemi funkcemi integrovanými přímo do obrazu jádra. To by znamenalo mít větší jádra a správci systému by museli překompilovat jádro pokaždé, když je potřeba nová funkce.
Jednoduchým příkladem modulu je ovladač zařízení – který umožňuje jádru přístup k hardwarové komponentě/zařízení připojenému k systému.
Doporučená četba: Jak zjistit, jakou verzi Linuxu používáte
Seznam všech načtených modulů jádra v Linuxu
V Linuxu všechny moduly končí příponou .ko
a normálně se načítají automaticky, když je při startu systému detekován hardware. Správce systému však může moduly spravovat pomocí určitých příkazů.
Pro výpis všech aktuálně načtených modulů v Linuxu můžeme použít příkaz lsmod (list modules), který přečte obsah /proc/modules takto.
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 načíst a uvolnit (odebrat) moduly jádra v Linuxu
K načtení modulu jádra můžeme použít příkaz insmod (vložit modul). Zde musíme zadat úplnou cestu k modulu. Níže uvedený příkaz vloží modul speedstep-lib.ko.
insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
K uvolnění modulu jádra použijeme příkaz rmmod (odstranit modul). Následující příklad uvolní nebo odebere modul speedstep-lib.ko.
rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
Jak spravovat moduly jádra pomocí příkazu modprobe
modprobe je inteligentní příkaz pro výpis, vkládání a odstraňování modulů z jádra. Hledá v adresáři modulu /lib/modules/$ (uname -r) všechny moduly a související soubory, ale vylučuje alternativní konfigurační soubory v /etc/modprobe.d adresář.
Zde nepotřebujete absolutní cestu modulu; to je výhoda použití modprobe oproti předchozím příkazům.
Chcete-li vložit modul, jednoduše zadejte jeho název následovně.
modprobe speedstep-lib
Chcete-li odebrat modul, použijte příznak -r
, jako je tento.
modprobe -r speedstep-lib
Poznámka: V modprobe se provádí automatická konverze podtržítka, takže není žádný rozdíl mezi _
a –
zatímco zadávání názvů modulů.
Pro více informací o použití a možnostech si přečtěte manuálovou stránku modprobe.
man modprobe
Nezapomeňte zkontrolovat:
- Jak změnit parametry běhu jádra trvalým a netrvalým způsobem
- Jak nainstalovat nebo upgradovat na nejnovější verzi jádra v CentOS 7
- Jak upgradovat jádro na nejnovější verzi v Ubuntu
To je prozatím vše! Máte nějaké užitečné nápady, které byste chtěli přidat do této příručky nebo dotazů, použijte formulář pro zpětnou vazbu níže a pošlete nám je.