无法在 Ubuntu 中加载模块-操作不允许

无法在 Ubuntu 中加载模块-操作不允许

如果我做:

sudo insmod module.ko

我得到:

insmod: error inserting 'module.ko': -1 Operation not permitted

modinfo 给我:

filename:       module.ko
license:        XXX Proprietary
version:        210
author:         XXX
description:    XXX Driver
srcversion:     XXX
depends:        
vermagic:       2.6.32-33-generic-pae SMP mod_unload modversions 586TSC

uname -a 给出的结果为:

2.6.32-35-generic-pae #78-Ubuntu SMP Tue Oct 11 17:01:12 UTC 2011 i686 GNU/Linux

所以我怀疑我需要安装这个特定的内核版本:

2.6.32-33-generic-pae

我的问题是如何插入这个模块,如果内核版本是问题所在,如何在 Ubuntu 10.04 上安装它?

顺便提一下,我安装 Ubuntu 时使用的是 2.6.32.33-generic 内核,但 insmod 失败了。然后我做了:

sudo aptitude install linux-generic-pae linux-headers-generic-pae

我在启动时选择了新内核,但 insmod 再次失败。我注意到它是(我认为是 2.6.32.36-generic-pae 而不是 2.6.32.33-generic-pae,但我不知道如何安装这个特定版本)

答案1

Linux 内核模块编程指南,第 1.2.1.1 节:

除非您在内核中启用 CONFIG_MODVERSIONS,否则如果您启动不同的内核,则为一个内核编译的模块将不会加载。

因此,构建启用了 CONFIG_MODVERSIONS 的内核可能会解决您的问题。另一个解决方案是构建并安装支持 PAE 的 Linux 2.6.32-33。

答案2

我找到了解决方案 - 我只需要从 synaptic 包管理器安装“linux-image-2.6.32-33-generic-pae”并重新启动。

现在插入模块正在通过,谢谢。

相关内容