Estoy buscando algunos módulos de kernel para cargar i2c-dev
y i2c-bcm2708
. Pero el modprobe
comando regresa:
sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep
¿Cómo puedo enumerar todos los módulos disponibles en el sistema? ¿En qué directorio se encuentran?
linux-kernel
kernel-modules
UserK
fuente
fuente
Respuestas:
Por defecto
modprobe
carga módulos de subdirectorios ubicados en el/lib/modules/$(uname -r)
directorio. Por lo general, todos los archivos tienen extensión.ko
, por lo que puede enumerarlos cono, teniendo en cuenta los archivos comprimidos:
Sin embargo, para cargar un módulo con éxito
modprobe
necesita sus dependencias enumeradas en el archivo/lib/modules/$(uname -r)/modules.dep
(y una versión binaria correspondientemodules.dep.bin
). Si algún módulo está presente en el sistema, pero no está en la lista, entonces debe ejecutar un comandodepmod
que generará tales dependencias e incluirá automáticamente su módulo amodules.dep
ymodules.dep.bin
.Además, si el módulo se carga correctamente, aparecerá en la lista del archivo
/proc/modules
(también se accede mediante un comandolsmod
).fuente
find /lib/modules/$(uname -r) -type f -name *.ko*
.gz
*.ko*
si tienes en tu directorio actual algún archivo que coincida. mejor escapar entre comillas simples:find /lib/modules/$(uname -r) -type f -name '*.ko*'
Escriba
modprobe
y presione la pestaña, la lista de autocompletar debe contener todos los módulos cargablesfuente
Hay
lsmod
mando delkmod
paquete en Arch Linux lo enumera y muestra el estado de los módulos del núcleo que contiene otros comandos útiles tales comomodinfo
,rmmod
modprobe
también.Para l ist todos los binarios proporcionados por el paquete se puede escribir:
, y también puede verificar el paquete o wner de un binario con
pacman -Qo lsmod
.Q
interruptor es q uery paquetes instalados localmente (a diferenciaS
de s ynchronize, es decir. para comprobar de forma remota).fuente
lsmod
solo muestra los módulos ya cargados. El autor de este hilo tuvo el problema de cargar un módulo que no estaba en el mapa de los módulos del núcleo cargables. Además, esta solución solo se aplica a archlinux. Lo que podría no ser la distribución del Autor y podría no resolver el problema para otros.lsmod
también está disponible en Ubuntu, al menos. Sin embargo, estoy de acuerdo en que esto no resuelve el problema de OP.Prefiero usar
depmod
. Con el comando:,depmod -av|grep MOD_NAME
su sistema generará los módulos modules.dep / map y grep a través de él. El-v
parámetro es importante para la verbosidad y-a
para garantizar que todos los módulos posibles/lib/modules/
se utilicen para el archivo modules.dep.De esta manera, es posible garantizar que un módulo del núcleo solicitado se asigne al núcleo como cargable. Cuando el módulo del kernel deseado no aparece en la salida, sabe que el kernel no lo encontrará.
fuente