GNU/Linux >> Znalost Linux >  >> Cent OS

Průvodce pro začátečníky ke konfiguraci modulu jádra v Linuxu

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.ko
Pozná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 fscache
Pozná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


Cent OS
  1. Instalace jádra Linuxu 5.15 na Ubuntu 20.04 – průvodce krok za krokem?

  2. Jak vytvořit, zkompilovat, načíst moduly jádra Linuxu LKM

  3. Průvodce Sambou pro začátečníky (instalace a konfigurace)

  1. Moduly linuxového jádra, bez kterých nemůžeme žít

  2. Konfigurace spouštění systému Linux

  3. Průvodce pro začátečníky ke konfiguraci yum

  1. Linux – poskvrněné jádro v Linuxu?

  2. Průvodce pro začátečníky ke správě swapového prostoru v Linuxu

  3. Průvodce pro začátečníky Udev v Linuxu