我正在寻找一些要加载i2c-dev
和加载的内核模块i2c-bcm2708
。但是modprobe
命令返回:
sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep
如何列出系统中所有可用的模块?他们位于哪个目录中?
我正在寻找一些要加载i2c-dev
和加载的内核模块i2c-bcm2708
。但是modprobe
命令返回:
sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep
如何列出系统中所有可用的模块?他们位于哪个目录中?
Answers:
默认情况下,modprobe
从目录中的子目录加载模块/lib/modules/$(uname -r)
。通常所有文件都有扩展名.ko
,因此您可以使用
find /lib/modules/$(uname -r) -type f -name '*.ko'
或者,考虑到压缩文件:
find /lib/modules/$(uname -r) -type f -name '*.ko*'
但是,要成功加载模块,modprobe
需要在文件中列出其依赖项/lib/modules/$(uname -r)/modules.dep
(以及相应的二进制版本modules.dep.bin
)。如果系统上存在某个模块,但列表中未包含该模块,则应运行depmod
将生成此类依赖关系的命令,并自动将模块包含到modules.dep
和中modules.dep.bin
。
此外,如果模块已成功加载,它将在文件中列出/proc/modules
(也可以通过命令进行访问lsmod
)。
find /lib/modules/$(uname -r) -type f -name *.ko*
.gz
*.ko*
如果您在当前目录中碰巧有一些与之匹配的文件,那么外壳可能会扩展您的文件。最好使用单引号引起来: find /lib/modules/$(uname -r) -type f -name '*.ko*'
还有lsmod
的命令kmod
包在Arch Linux的东西列出,并显示了Linux内核模块包含其他有用的命令,如状态modinfo
,rmmod
modprobe
太。
要升 IST由您可以键入程序包提供的所有二进制文件:
pacman -Ql kmod | grep /bin/ --color=always
,你也可以检查该Ø用二进制的wner包pacman -Qo lsmod
。
Q
开关是q uery本地安装的软件包(不像S
到小号 ynchronize,即远程查看)。
lsmod
仅显示已加载的模块。该线程的作者在加载不在可加载内核模块映射中的模块时遇到问题。此外,该解决方案仅适用于archlinux。这可能不是作者的分布,也可能无法解决其他人的问题。
lsmod
至少在Ubuntu上也可以使用@Akendo 。但是,我同意这不能解决OP的问题。