我怎样才能知道我的内核中内置了哪些驱动程序?

我怎样才能知道我的内核中内置了哪些驱动程序?

sensors-detect告诉我:

要加载所需的一切,请将其添加到/etc/modules

# Chip drivers
coretemp
w83627ehf

如果您的内核中内置了一些驱动程序,上面的列表将包含太多模块。跳过相应的模块!

如果有的话,我怎样才能找出哪些驱动程序适合跳过?

答案1

规范的方法是检查正在运行的内核配置,但这可能很难解析,因为它将包含模块和其他选项,并且名称可能不对应:

grep "=y" /boot/config-`uname -r`

find实际上,使用或都更容易locate

  • 用于find搜索常见位置:
    查找 /usr /lib /opt -type d -name 模块 -exec 查找 {} -path "*`uname -r`*" -name "*.ko" \;
  • 用于locate搜索整个系统:
    定位模块名称 | grep "`uname -r`.*ko"
    (如有必要,请先运行以确保数据库的准确性sudo updatedb。)

如果您看到.ko类似这样的文件条目:

/lib/modules/3.2.0-29-generic/kernel/drivers/hwmon/coretemp.ko

那么这个模块不是内置的,可以添加到/etc/modules。如果未找到,则它要么是内置的,要么不存在,不应添加。

查找所有非内置模块的变体/lib/modules是:

查找 /lib/modules/`uname -r` | grep -oP “(?<=/)\w+(?=\.ko)”

相关内容