La utilidad modprobe se usa para agregar módulos cargables al kernel de Linux. También puedes ver y eliminar módulos usando el comando modprobe.
Linux usa el directorio /lib/modules/$(uname-r) para los módulos y sus archivos de configuración (excepto /etc/modprobe.conf y /etc/modprobe.d).
En el kernel 2.6 de Linux, los módulos .ko se usan en lugar de los archivos .o, ya que tienen información adicional que el kernel usa para cargar los módulos.
Los ejemplos en este artículo se realizan con el uso de modprobe en Ubuntu.
Uso del comando modprobe
1. Listar los módulos de kernel disponibles
modprobe -l te mostrará todos los módulos disponibles como se ve a continuación.
1 2 3 4 5 6 7 8 9 10 11 |
$ modprobe -l | less kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko kernel/arch/x86/kernel/msr.ko kernel/arch/x86/kernel/cpuid.ko kernel/arch/x86/kernel/apm.ko kernel/arch/x86/kernel/scx200.ko kernel/arch/x86/kernel/microcode.ko kernel/arch/x86/crypto/aes-i586.ko kernel/arch/x86/crypto/twofish-i586.ko |
2. Listar los módulos cargados actualmente
Si bien el comando modprobe anterior muestra todos los módulos disponibles, el comando lsmod mostrará todos los módulos que actualmente están cargados en el kernel de Linux.
1 2 3 4 5 6 |
$ lsmod | less soundcore 7264 1 snd ppdev 6688 0 snd_page_alloc 9156 1 snd_pcm psmouse 56180 0 lp 8964 0 |
3. Instalar nuevos módulos en el kernel de Linux
Para insertar un nuevo módulo en el kernel, ejecuta el comando modprobe con el nombre del módulo.
El siguiente ejemplo carga el módulo vmhgfs al kernel de Linux en Ubuntu.
1 |
$ sudo modprobe vmhgfs |
Una vez que se carga un módulo, verifícalo usando el comando lsmod como se muestra a continuación.
1 2 |
$ lsmod | grep vmhgfs vmhgfs 50772 0 |
Los archivos del módulo están con la extensión .ko. Si deseas conocer la ubicación completa del archivo de un módulo de kernel de Linux específico, debes usar el comando modprobe y hacer un grep del nombre del módulo como se puede ver a continuación.
1 2 3 4 5 6 7 |
$ modprobe | grep vmhgfs misc/vmhgfs.ko $ cd /lib/modules/2.6.31-14-generic/misc $ ls vmhgfs* vmhgfs.ko |
Nota: También puedes usar insmod para instalar nuevos módulos en el kernel de Linux.
4. Cargar nuevos módulos con diferente nombre para evitar conflictos
Considera, en algunos casos, se supone que debes cargar un nuevo módulo, pero con el mismo nombre de módulo, otro módulo ya se cargó para diferentes propósitos.
Si por alguna extraña razón, el nombre del módulo que estás intentando cargar en el kernel se está utilizando (con el mismo nombre) por un módulo diferente, entonces puedes cargar el nuevo módulo con un nombre diferente.
Para cargar un módulo con un nombre diferente, usa la opción modprobe -o como se muestra a continuación.
1 2 3 4 |
$ sudo modprobe vmhgfs -o vm_hgfs $ lsmod | grep vm_hgfs vm_hgfs 50772 0 |
5. Retirar el módulo actualmente cargado
Si has cargado un módulo en el kernel de Linux para algún propósito de prueba, es posible que desees descargarlo (eliminarlo) del kernel.
Debes usar la opción modprobe -r para descargar un módulo del kernel como se observa a continuación.
1 |
modprobe -r vmhgfs |