我需要创建一个测试来检查特定设备的驱动程序是否是内核模块(而不是静态链接)。有没有办法在运行时知道这些信息?谢谢!
答案1
lsmod
将列出当前加载的内核模块。因此,如果驱动程序未在那里列出,那么它要么内置于内核中,要么未加载。大多数发行版应该在其目录中存储一个配置文件/boot
,其中包含所使用的内核配置选项。如果您要下载并解压相同内核版本的源代码;将配置文件复制到.config
源树的顶部;然后运行make menuconfig
,然后您将能够浏览配置设置并查看该驱动程序的配置方式。
在某些情况下,内核配置实际上内置于内核本身中,但我必须查找如何访问它:)
编辑:
另一个可能更快的选项(如果它是 PCI 设备)是运行lspci -v
.其输出将告诉您当前正在使用的驱动程序的名称。如果 lsmod 中没有列出它,那么您就知道它一定是内置的。