Linuxové jádro je načteno do paměti zavaděčem. Moduly jádra se dynamicky načítají a uvolňují na vyžádání. Poskytují ovladače zařízení, které jádru umožňují přístup k novému hardwaru, podporují různé typy souborových systémů a obecně rozšiřují funkčnost jádra.
Výpis načtených modulů jádra
Chcete-li zobrazit, které moduly jádra jsou aktuálně načteny do jádra, použijte lsmod příkaz. Tento příkaz vytváří výstup čtením /proc/modules soubor. Příklad:
# lsmod Module Size Used by ip_tables 27115 5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw xfs 985426 2 libcrc32c 12644 1 xfs ...
Používá sloupec uvádí celkový počet procesů, které modul používají, a dalších modulů, na kterých závisí, následovaný seznamem těchto závislých modulů.
balíček kmod
Příkaz lsmod a další soubory modulu jádra a nástroje jako modinfo, modprobe, depmod, insmod a rmmod jsou poskytovány balíčkem kmod:
# rpm -qf /sbin/lsmod kmod-20-9.el7.x86_64
Chcete-li zobrazit všechny soubory poskytované balíčkem kmod, zadejte:
# rpm -ql kmod /etc/depmod.d /etc/depmod.d/dist.conf /etc/modprobe.d /usr/bin/kmod /usr/lib/modprobe.d /usr/sbin/depmod /usr/sbin/insmod /usr/sbin/lsmod /usr/sbin/modinfo /usr/sbin/modprobe /usr/sbin/rmmod /usr/sbin/weak-modules /usr/share/bash-completion/completions/kmod /usr/share/doc/kmod-20 /usr/share/doc/kmod-20/COPYING /usr/share/doc/kmod-20/NEWS /usr/share/doc/kmod-20/README /usr/share/doc/kmod-20/TODO /usr/share/man/man5/depmod.d.5.gz /usr/share/man/man5/modprobe.conf.5.gz /usr/share/man/man5/modprobe.d.5.gz /usr/share/man/man5/modules.dep.5.gz /usr/share/man/man5/modules.dep.bin.5.gz /usr/share/man/man8/depmod.8.gz /usr/share/man/man8/insmod.8.gz /usr/share/man/man8/kmod.8.gz /usr/share/man/man8/lsmod.8.gz /usr/share/man/man8/modinfo.8.gz /usr/share/man/man8/modprobe.8.gz /usr/share/man/man8/rmmod.8.gz
Podrobnosti o modulu výpisu
Příkaz modinfo zobrazí podrobné informace o konkrétním modulu jádra. Chcete-li například zobrazit informace o modulu jádra iptables, zadejte:
# modinfo ip_tables filename: /lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko description: IPv4 packet filter author: Netfilter Core Team [[email protected]] license: GPL rhelversion: 7.3 srcversion: EDBAB32FC38D6942C83A4B1 depends: intree: Y vermagic: 3.10.0-514.el7.x86_64 SMP mod_unload modversions signer: CentOS Linux kernel signing key sig_key: D4:88:63:A7:C1:6F:CC:27:41:23:E6:29:8F:74:F0:57:AF:19:FC:54 sig_hashalgo: sha256
zde ,
název souboru :Absolutní cesta k souboru objektu jádra
popis :Krátký popis modulu
alias :Názvy interních aliasů modulu, pokud nějaké
závisí :Seznam modulů oddělených čárkami, na kterých tento modul závisí, pokud existují
parm :Název parametru a krátký popis
Moduly se načítají z /lib/modules/[verze_kernelu]/kernel adresář. Chcete-li například zobrazit absolutní cestu k souboru objektů jádra ip_tables, :
# modinfo -n ip_tables /lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko
Načítání a vyjímání modulů jádra
Načítání modulů
Moduly jádra se načítají pomocí příkazu modprobe. Správce zařízení pro linuxové jádro, udev, používá modprobe k načtení ovladačů pro automaticky detekovaný hardware. Například pro načtení modulu jádra ip_tables :
# modprobe ip_tables
Chcete-li ověřit, že byl modul načten:
# lsmod | grep ip_tables ip_tables 27115 5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw
Nejprve se načtou závislé moduly. Použijte modprobe –v (verbose) pro zobrazení rozlišení závislostí při načítání modulu jádra. Například:
# modprobe -v nfs insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/fscache/fscache.ko insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/nfs/nfs.koPoznámka :modprobe používá příkaz insmod k načtení modulů do jádra. Nepoužívejte však insmod, protože tento příkaz neřeší závislosti.
Uvolnění modulů
Uvolněte moduly jádra pomocí modprobe –r příkaz. Můžete také použít podrobnou možnost. Chcete-li například uvolnit modul jádra nfs, zadejte:
# modprobe -rv nfs rmmod nfs rmmod fscachePoznámka :Příkaz modprobe –r používá rmmod k uvolnění modulů. Ale podobně jako u insmodu se nedoporučuje používat rmmod přímo k uvolnění modulů jádra.
Moduly se uvolňují v opačném pořadí, přičemž modul jádra nfs.ko se stahuje jako první a poté moduly, na kterých byl závislý. Moduly používané procesem nebo moduly potřebné pro jiné načtené moduly nejsou uvolněny.
Parametry modulu jádra
Stejně jako jádro může přijímat parametry doby spouštění pro úpravu chování jádra, moduly jádra mohou také přijímat parametry pro úpravu svého chování. Syntaxe pro předávání parametrů do modulu jádra pomocí modprobe je:
# modprobe [module_name] [parameter=value]
Více párů parametr=hodnota lze předat oddělením párů mezerami. Ujistěte se, že modul nebyl dříve načten, protože modprobe modul znovu nenačte.
Konfigurační adresář pro modprobe
Konfigurační adresář pro modprobe je /etc/modprobe.d. Vytvořte soubory *.conf v /etc/modprobe.d pro:
– Určete možnosti
– Vytvořte aliasy
– Přepište normální chování modprobe
– Zablokujte moduly jádra
Formát těchto souborů .conf je jeden příkaz na řádek. Platné příkazy pro použití v těchto souborech zahrnují následující:
alias, options, install, remove, blacklist
Alias
Použijte syntax alias alias_name název_modulu k vytvoření alternativních jmen pro moduly jádra. V názvech aliasů můžete také použít zástupné znaky shellu. Příklad:
alias usbdevfs usbcore
Možnosti
Použijte volby syntaxe název_modulu volbu(y) k přidání voleb do název_modulu. Příklad:
options b43 nohwcrypt=1 qos=0
Instalovat
Použijte syntaxi příkazů install název_modulu, abyste řekli modprobe, aby spouštěl příkazy shellu místo vkládání modulu do jádra. Příklad:
install net-pf-6 /bin/true
Odstranit
Je to podobné příkazu install, s tím rozdílem, že se vyvolá při spuštění „modprobe –r“. Pomocí syntaxe remove module_name command(s) sdělte „modprobe –r“, aby spouštěl příkazy shellu namísto vyjímání modulu z jádra.
Černá listina
Pomocí černé listiny syntaxe název_modulu sdělte modprobe, aby ignoroval interní aliasy modulu. Interní aliasy jsou ty, které se zobrazují při použití příkazu modinfo [název_modulu]. Klíčové slovo blacklist se obvykle používá, když není potřeba související hardware, nebo když dva nebo více modulů podporuje stejná zařízení, nebo když modul neplatně tvrdí, že podporuje zařízení.
Více informací naleznete na manuálové stránce modprobe.d.
# man modprobe.d