GNU/Linux >> Tutoriales Linux >  >> Cent OS

Guía para principiantes sobre la configuración del módulo kernel en Linux

El kernel de Linux se carga en la memoria mediante el cargador de arranque. Los módulos del núcleo se cargan y descargan dinámicamente según se requiera. Proporcionan controladores de dispositivos para permitir que el núcleo acceda a nuevo hardware, compatibilidad con diferentes tipos de sistemas de archivos y, en general, amplían la funcionalidad del núcleo.

Lista de los módulos del kernel cargados

Para enumerar qué módulos del kernel están actualmente cargados en el kernel, use el lsmod dominio. Este comando produce una salida al leer el /proc/modules expediente. Ejemplo:

# 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
...

El Usado por La columna proporciona el número total de procesos que utilizan el módulo y los otros módulos de los que depende, seguido de una lista de esos módulos dependientes.

paquete kmod

El comando lsmod y otros archivos y utilidades del módulo del kernel como modinfo, modprobe, depmod, insmod y rmmod son proporcionados por el paquete kmod:

# rpm -qf /sbin/lsmod 
kmod-20-9.el7.x86_64

Para enumerar todos los archivos proporcionados por el paquete kmod, ingrese:

# 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

Detalles del módulo de listado

El comando modinfo muestra información detallada sobre un módulo de kernel específico. Por ejemplo, para mostrar información sobre el módulo kernel de iptables, ingrese:

# 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

aquí ,
nombre de archivo :La ruta absoluta del archivo de objeto del núcleo
descripción :La breve descripción del módulo
alias :Los nombres de alias internos para el módulo, si los hay
depende :una lista separada por comas de los módulos de los que depende este módulo, si corresponde
parm :El nombre del parámetro y una breve descripción

Los módulos se cargan desde /lib/modules/[kernel_version]/kernel directorio. Por ejemplo, para mostrar la ruta absoluta del archivo de objeto del núcleo ip_tables,:

# modinfo -n ip_tables
/lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko

Cargar y descargar módulos del kernel

Cargando módulos
Los módulos del kernel se cargan mediante el comando modprobe. El administrador de dispositivos para el kernel de Linux, udev, usa modprobe para cargar controladores para hardware detectado automáticamente. Por ejemplo, para cargar el módulo del kernel ip_tables:

# modprobe ip_tables

Para verificar que el módulo se ha cargado:

# lsmod | grep ip_tables
ip_tables              27115  5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw

Los módulos dependientes se cargan primero. Utilice modprobe –v (detallado) para ver la resolución de dependencia al cargar un módulo del kernel. Por ejemplo:

# 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
Nota :modprobe usa el comando insmod para cargar los módulos en el kernel. Sin embargo, no use insmod porque este comando no resuelve las dependencias.

Descarga de módulos
Descargue los módulos del kernel usando modprobe –r dominio. También puede utilizar la opción detallada. Por ejemplo, para descargar el módulo kernel nfs, ingrese:

# modprobe -rv nfs
rmmod nfs
rmmod fscache
Nota :El comando modprobe –r usa rmmod para descargar los módulos. Pero al igual que insmod, no se recomienda usar rmmod directamente para descargar módulos del kernel.

Los módulos se descargan en el orden inverso, descargando primero el módulo del núcleo nfs.ko, seguido de los módulos de los que dependía. Los módulos que utiliza un proceso o los módulos que necesitan otros módulos cargados no se descargan.

Parámetros del módulo del núcleo

Así como el kernel puede aceptar parámetros de tiempo de arranque para modificar el comportamiento del kernel, los módulos del kernel también pueden aceptar parámetros para modificar su comportamiento. La sintaxis para pasar parámetros a un módulo del kernel con modprobe es:

# modprobe [module_name] [parameter=value]

Se pueden pasar múltiples pares de parámetro=valor separando los pares con espacios. Asegúrese de que el módulo no se haya cargado previamente, porque modprobe no recarga el módulo.

Directorio de configuración para modprobe

El directorio de configuración de modprobe es /etc/modprobe.d. Cree archivos *.conf en /etc/modprobe.d para:
– Especifique opciones
– Cree alias
– Anule el comportamiento normal de modprobe
– Incluya en la lista negra los módulos del kernel

El formato de estos archivos .conf es un comando por línea. Los comandos válidos para usar en estos archivos incluyen los siguientes:

alias, options, install, remove, blacklist

Alias

Utilice la sintaxis alias alias_name module_name para crear nombres alternativos para los módulos del núcleo. También puede usar comodines de shell en nombres de alias. Ejemplo:

alias usbdevfs usbcore

Opciones

Utilice las opciones de sintaxis nombre_módulo para agregar opciones a nombre_módulo. Ejemplo:

options b43 nohwcrypt=1 qos=0

Instalar

Utilice la sintaxis install module_name comando(s) para decirle a modprobe que ejecute comandos de shell en lugar de insertar el módulo en el kernel. Ejemplo:

install net-pf-6 /bin/true

Eliminar

Esto es similar al comando de instalación, excepto que se invoca cuando se ejecuta “modprobe –r”. Use la sintaxis remove module_name comando(s) para decirle a “modprobe –r” que ejecute comandos de shell en lugar de descargar el módulo del kernel.

Lista negra

Use la sintaxis blacklist module_name para decirle a modprobe que ignore los alias internos de un módulo. Los alias internos son los que se ven cuando se usa el comando modinfo [nombre_del_módulo]. La palabra clave de la lista negra generalmente se usa cuando el hardware asociado no es necesario, o cuando dos o más módulos admiten los mismos dispositivos, o cuando un módulo afirma incorrectamente que admite un dispositivo.

Consulte la página de manual de modprobe.d para obtener más información.

# man modprobe.d


Cent OS
  1. Módulos del kernel de Linux sin los que no podemos vivir

  2. Configuración de arranque de Linux

  3. Instalar Linux kernel 5.15 en Ubuntu 20.04 - ¿Guía paso a paso?

  4. Cómo crear, compilar y cargar módulos de kernel cargables LKM de Linux

  5. Guía para principiantes de Samba (instalación y configuración)

Cómo cargar o descargar un módulo del kernel de Linux

Cómo cargar y descargar módulos del kernel en Linux

Comando Lsmod en Linux (Lista de módulos del kernel)

Comando Modprobe en Linux

Mostrar información del módulo del kernel de Linux con el comando Modinfo

Guía completa de registro de Linux