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