Índice de contenidos
Nombre
modprobe – manejo de alto nivel de módulos cargables
Sinopsis
modprobe [-adnqv][-C config] módulo[symbol=value …. modprobe [-adnqv][-C config][-t type] pattern modprobe -l[-C config][-Ft type] pattern modprobe -c[-C config] modprobe -r[-dnv][-C config][module . modprobe -Vh
Opciones
-a , –todos
Cargar todos los módulos correspondientes en lugar de detenerse después de la primera carga correcta.
-c , –showconfig
Muestra la configuración utilizada actualmente.
-C , –config config
Utilice el archivo config en lugar de (el opcional) /etc/modules.conf para especificar la configuración. La variable de entorno MODULECONF también puede utilizarse para seleccionar (y anular) un archivo de configuración diferente del archivo de configuración predeterminado /etc/modules.conf (o /etc/conf.modules (obsoleto)).
Cuando la variable de entorno UNAME_MACHINE está establecida, modutils usará su valor en lugar del campo máquina de la llamada al sistema uname(). Esto es principalmente útil cuando está compilando módulos de 64 bits en espacio de usuario de 32 bits o viceversa, ajuste UNAME_MACHINE al tipo de módulos. Los modutils actuales no soportan el modo cross build completo para los módulos, se limita a elegir entre versiones de 32 y 64 bits de la arquitectura del host.
-d , –debug
Muestra información sobre la representación interna de la pila de módulos.
-h , –help
Muestre un resumen de las opciones y salga inmediatamente.
-k , –autoclean
Configure’autoclean’ en los módulos cargados. Utilizado por el kernel cuando llama a modprobe para satisfacer una característica que falta (suministrada como módulo). La opción -q está implícita en -k . Estas opciones se enviarán automáticamente a insmod .
-l , –list
Lista de módulos coincidentes.
-n , –show
No realice la acción, sólo muestre lo que se haría.
-q , –quiet
No se queje si insmod no instala un módulo. Continúe como de costumbre, pero en silencio, con otras posibilidades para que modprobe pruebe. Esta opción se enviará automáticamente a insmod .
-r , –quitar
Quite el módulo (pilas) o limpie automáticamente, dependiendo de si hay algún módulo mencionado en la línea de comandos.
-s , –syslog
Informe a través de syslog en lugar de stderr. Estas opciones se enviarán automáticamente a insmod .
-t moduletype; –type moduletype
Sólo considere módulos de este tipo. modprobe sólo mirará a los módulos cuya ruta de directorio incluye exactamente » /moduletype/«. moduletype puede incluir más de un nombre de directorio, por ejemplo » -t drivers/net» listaría los módulos en xxx/drivers/net/ y sus subdirectorios.
-v , –verbose
Imprimir todos los comandos a medida que se ejecutan.
-V, –versión
Mostrar la versión de modprobe .
Nota:
Los nombres de los módulos no deben contener trayectorias (no ‘/’), ni pueden contener el final ‘.o’. Por ejemplo, slip es un nombre de módulo válido para modprobe , /lib/modules/2.2.19/net/slip y slip.o no son válidos. Esto se aplica a la línea de comandos y a las entradas en la configuración.
Descripción del comando
Las utilidades modprobe y depmod están pensadas para hacer que un núcleo modular de Linux sea más manejable para todos los usuarios, administradores y mantenedores de distribución.
Modprobe usa un archivo de dependencias tipo «Makefile», creado por depmod , para cargar automáticamente los módulos relevantes desde el conjunto de módulos disponibles en árboles de directorios predefinidos.
Modprobe se usa para cargar un solo módulo, una pila de módulos dependientes, o todos los módulos que están marcados con una etiqueta específica.
Modprobe cargará automáticamente todos los módulos base necesarios en una pila de módulos, como se describe en el archivo de dependencias modules.dep. Si la carga de uno de estos módulos falla, toda la pila actual de módulos cargados en la sesión actual se descargará automáticamente.
Modprobe tiene dos maneras de cargar módulos. Una forma (el modo de prueba) intentará cargar un módulo de una lista (definida por pattern). Modprobe detiene la carga tan pronto como un módulo se carga con éxito. Esto puede usarse para cargar automáticamente un controlador Ethernet de una lista. La otra manera de usar modprobe es cargar todos los módulos de una lista. Ver EJEMPLOS , abajo.
Con la opción -r , modprobe descargará automáticamente una pila de módulos, de forma similar a como lo hace » rmmod -r «. Tenga en cuenta que usando sólo » modprobe -r » se limpiarán los módulos autocargados no utilizados y también se ejecutarán los comandos de pre y post eliminación en el archivo de configuración /etc/modules.conf.
La combinación de las opciones -l y -t enumera todos los módulos disponibles de un determinado tipo.
Opción -c imprimirá la configuración utilizada actualmente (por defecto + archivo de configuración).
Configuración
El comportamiento de modprobe (y depmod ) puede ser modificado por el archivo de configuración (opcional) /etc/modules.conf. Para una descripción más detallada de lo que puede contener este archivo, así como la configuración por defecto utilizada por depmod y modprobe , ver modules.conf (5).
Tenga en cuenta que los comandos de pre- y post-remoción no se ejecutarán si un módulo es «auto-limpiado» por el kerneld! En su lugar, busque la próxima compatibilidad con el almacenamiento persistente de módulos. Si desea utilizar las funciones de pre y post instalación, tendrá que desactivar autoclean para kerneld y en su lugar poner algo como la siguiente línea en su crontab (esto se utiliza también para sistemas kmod) para realizar la autolimpieza cada 2 minutos: */2 * * * * * test -f /proc/modules && /sbin/modprobe -r
Estrategia
La idea es que modprobe busque primero en el directorio que contiene los módulos compilados para la versión actual del kernel. Si el módulo no se encuentra allí, modprobe buscará en el directorio común a la versión del núcleo (por ejemplo, 2.0, 2.2). Si el módulo todavía se encuentra, modprobe buscará en el directorio que contiene módulos una versión por defecto, y así sucesivamente.
Cuando instalas un nuevo linux, los módulos deben ser movidos a un directorio relacionado con la versión (y versión) del kernel que estás instalando. Luego debe hacer un enlace simbólico desde este directorio al directorio «default».
Cada vez que compiles un nuevo núcleo, el comando » make modules_install » creará un nuevo directorio, pero no cambiará el enlace «default».
Cuando obtenga un módulo no relacionado con la distribución del núcleo debería colocarlo en uno de los directorios independientes de la versión bajo /lib/modules.
Esta es la estrategia por defecto, que puede ser anulada en /etc/modules.conf.
Ejemplos
modprobe -t net
Cargue uno de los módulos que están almacenados en el directorio llamado «net». Cada módulo se prueba hasta que uno tiene éxito.
modprobe -a -t boot
Se cargarán todos los módulos que estén almacenados en directorios etiquetados como «boot».
modprobe slip
Esto intentará cargar el módulo slhc.o si no se ha cargado previamente, ya que el módulo de deslizamiento necesita la funcionalidad en el módulo slhc. Esta dependencia se describirá en el archivo modules.dep que fue creado automáticamente por depmod .
modprobe -r slip
Esto descargará el módulo de deslizamiento. También descargará el módulo slhc automáticamente, a menos que sea usado por algún otro módulo también (por ejemplo, ppp).
Véase también:
depmod(8), lsmod (8), kerneld (8), ksyms (8), rmmod (8).
Modo a prueba de fallos
Si el uid efectivo no es igual al uid real, entonces modprobe trata su entrada con extrema sospecha. El último parámetro siempre se trata como un nombre de módulo, incluso si comienza con ‘-‘. Sólo puede haber un nombre de módulo y las opciones de la forma «variable=valor» están prohibidas. El nombre del módulo siempre se trata como una cadena, no se realiza ninguna metaexpansión en modo seguro. Sin embargo, la metaexpansión se sigue aplicando a los datos leídos del fichero de configuración.
euid puede no ser igual a uid cuando se invoca modprobe desde el kernel, esto es cierto para los kernels>= 2.4.0-test11. En un mundo ideal, modprobe podría confiar en que el kernel sólo pasaría parámetros válidos a modprobe. Sin embargo, se ha producido al menos una vulnerabilidad de raíz local porque el código del núcleo de alto nivel ha pasado parámetros no verificados directamente del usuario a modprobe. Así que modprobe ya no confía en la entrada del kernel.
modprobe establece automáticamente el modo seguro cuando el entorno está formado sólo por estas cadenas
INICIO=/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. TERM=linux
PATH=/sbin:/usr/sbin:/bin:/usr/binEsto detecta la ejecución de modprobe desde el núcleo en los núcleos 2.2 a 2.4.0-test11, incluso si uid == euid, lo que hace en los núcleos anteriores.
Comandos de registro
Si el directorio /var/log/ksymoops existe y modprobe se ejecuta con una opción que podría cargar o eliminar un módulo, modprobe registrará su comando y devolverá su estado en /var/log/ksymoops/`date +%Y%m%d.log`. No hay ningún parámetro para desactivar este registro automático, si no quiere que ocurra, no cree /var/log/ksymoops. Si ese directorio existe, debería ser propiedad de root y estar en modo 644 o 600 y debería ejecutar el script insmod_ksymoops_clean todos los días aproximadamente.
Utilidades necesarias
depmod (8), insmod (8).
Utilice el comando man ( % man) para ver cómo se utiliza un comando en su equipo particular.