我正在使用内核运行version-2.6.35
当我击中uname -r
它时2.6.35-22-generic
Kernel-2.6.35
从源代码树编译模块,
但它无法将模块插入我正在运行的内核中。
我没有任何线索。任何人都可以帮我解决这个问题!
谢谢你。
我正在使用内核运行version-2.6.35
当我击中uname -r
它时2.6.35-22-generic
Kernel-2.6.35
从源代码树编译模块,
但它无法将模块插入我正在运行的内核中。
我没有任何线索。任何人都可以帮我解决这个问题!
谢谢你。
必须针对正确的内核版本编译 LKM,即uname -r的输出。在您的情况下,您已经下载了内核版本 2.6.35 源代码树并针对它编译了 LKM。在插入 LKM 时,检查KERNEL_VERSION,如果它们匹配,则在插入模块时不会出现任何错误,但如果它们不匹配则无法插入模块。
在您的情况下,您要确保在正在运行的内核中启用了 CONFIG_MODVERSIONS 2.6.35-22-generic
。当您从源代码构建内核模块时,2.6.35
正在运行的内核将允许加载具有匹配符号的模块,或者如果缺少符号,它将无法加载。
未启用 CONFIG_MODVERSIONS 意味着您必须匹配内核版本和模块之间的版本。
我假设您正在使用官方内核树,但您正在尝试在您的发行版中加载您的模块。你必须从你的 Linux 发行版中获取内核源代码/头文件。我想这是因为这个版本2.6.35-22-generic
,-22-generic
它不是正式版本名称的一部分。