我正在运行内核version-2.6.35
当我点击uname -r时,它给出的是2.6.35-22-generic
从Kernel-2.6.35源代码树编译了一个模块,
但是它未能将模块插入我正在运行的内核中。
我一点线索都没有。有人能帮我摆脱这一切吗!!
谢谢。
发布于 2013-05-31 18:23:36
必须针对正确的内核版本(即uname -r的输出)编译LKM。在您的示例中,您下载了内核版本-2.6.35源代码树,并根据它编译了LKM。在插入LKM时,检查是否匹配KERNEL_VERSION,不会在模块插入时得到任何错误,但是如果它们不匹配,则检查它们是否无法插入模块。
发布于 2013-05-31 19:27:03
您希望确保在运行的内核中启用CONFIG_MODVERSIONS,在您的情况下启用2.6.35-22-generic。当您从2.6.35源构建内核模块时,运行的内核将允许加载具有匹配符号的模块,或者如果缺少符号,它将无法加载。
没有启用CONFIG_MODVERSIONS意味着必须在内核版本和模块之间匹配版本。
发布于 2013-06-01 12:21:54
我假设您正在使用正式的内核树,但您正在尝试在您的发行版中加载您的模块。您必须从Linux发行版中获得内核源代码/头文件。我假设这是因为这个版本的2.6.35-22-generic,-22-generic,它不是官方版本名称的一部分。
https://stackoverflow.com/questions/16849587
复制相似问题