如果我做:
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
我的问题是如何pipe理插入此模块,如果内核版本是问题 – 如何在Ubuntu 10.04上安装它?
只要提到,当我安装Ubuntu时,我有2.6.32.33-通用内核,但insmod失败。 然后我做了:
sudo aptitude install linux-generic-pae linux-headers-generic-pae
我在启动时select了新内核,但insmod再次失败。 我注意到的是(我认为2.6.32.36-generic-pae而不是2.6.32.33-generic-pae,但我不知道如何安装这个特定的版本)
从“Linux内核模块编程指南”第1.2.1.1节:
如果您启动了不同的内核,除非在内核中启用了CONFIG_MODVERSIONS,否则为一个内核编译的模块将不会加载。
所以,build立一个启用了CONFIG_MODVERSIONS的内核,可能会解决你的问题。 另一个解决scheme是构build和安装支持PAE的Linux 2.6.32-33。
我find了解决scheme – 我只需要从突触包pipe理器安装“linux-image-2.6.32-33-generic-pae”并重启。
现在插入模块正在通过,谢谢。