mat*_*975 7 linux kernel kernel-modules
我得到了供应商提供的最小 linux 安装。从对上一个问题的回答中,我发现可以在有或没有模块支持的情况下构建内核。我有一个需要附加的 CANBUS 设备,它带有 .ko 文件形式的驱动程序。我希望能够使用提供的安装脚本安装这些,但首先我需要知道我的内核是否使用模块支持构建 - 我是否可以从命令行检测到这一点?
当我运行lsmod
它时,它什么都不返回,所以我知道目前没有 .ko 文件 - 但这是否意味着内核不允许我安装 .ko 文件?
Gil*_*il' 11
如果您有/proc
文件系统,则该文件/proc/modules
存在当且仅当内核使用模块支持编译时才存在。如果文件存在但为空,则您的内核支持模块但目前没有加载模块。如果该文件不存在,您的内核将无法加载任何模块。
从技术上讲,可以在没有/proc
. 您可以检查内核二进制文件中是否存在init_module
和delete_module
系统调用。如果您只有一个压缩的二进制文件(例如vmlinuz
或uImage
),这可能并不容易。请参阅如何将 vmlinuz 解压缩到 vmlinux?为vmlinuz
。一旦您设法解压了大部分内核,就可以搜索字符串sys_init_module
.
请注意,如果支持模块,则无论如何您都需要其他文件来编译您自己的模块:kernel headers。这些是 C 头文件 ( *.h
),其中一些是在编译内核时生成的(因此您不能仅从内核源代码中获取它们)。请参阅内核源代码树包含什么?这与 Linux 内核头文件有关吗?