Modprobe:“无效的结节格式”,但在 insmod 之后可以工作

Modprobe:“无效的结节格式”,但在 insmod 之后可以工作

我遇到了 Ubuntu 12.04 无法正确识别自定义内核模块的问题。内核模块是 的仿制品raw1394。因此,即使处理 IEEE 1394/FireWire 通信的实际模块不同,查找raw1394内存中模块存在的程序仍可正常工作。创建虚拟 raw1394 模块的说明位于wiki.sofa-framework.org

insmod问题是我每次都必须使用加载内核模块。

当我重新启动后尝试加载raw1394内核模块时收到以下错误消息:

$ sudo modprobe raw1394
FATAL: Error inserting raw1394 (/lib/modules/3.5.0-51-generic/misc/raw1394.ko): Invalid module format

但是,如果我运行以下命令序列,一切都正常:

$ sudo insmod raw1394.ko
$ sudo modprobe raw1394

我不明白为什么版本不匹配会出现这样的问题:

$ uname -a
Linux mech801 3.5.0-51-generic #77~precise1-Ubuntu SMP Thu Jun 5 00:48:28 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

这是 MD5 哈希值。这两个文件的长度相同,但我认为insmod在插入模块时内部必定发生了一些变化。这两个文件的大小均为 3274 字节。

$ md5sum /lib/modules/3.5.0-51-generic/misc/raw1394.ko ./raw1394.ko 
ab06501bba1372f57115125bc7a24dfb  /lib/modules/3.5.0-51-generic/misc/raw1394.ko
c3c3d2b4e2fe174a76b90af33eefc5e0  ./raw1394.ko

我是否遗漏了某些东西而导致了此Invalid module format问题?

相关内容