我正在尝试构建一个简单的内核模块并在Raspberry Pi上运行它。我已经从官方的raspberry网站下载了内核源代码,但它们的内核版本与我的raspbian有不同的内核版本。 是否有必要在源和目标机器上具有完全相同的内核版本来运行内核模块?我在我的Raspberry Pi上有这个
$ uname -a
Linux raspberrypi 4.4.11+ #888 Mon May 23 20:02:58 BST 2016 armv6l GNU/Linux
关于我的模块
$ modinfo ./threads.ko
filename: /lib/modules/4.4.11+/kernel/mymodules/./threads.ko
version: 0.0.1
description: Kernel threads example
author: xxxxxx
license: GPL
srcversion: C906582EC824D2D8DA76BFB
depends:
vermagic: 4.4.13+ mod_unload modversions ARMv6
如你所见:“4.4.11+”vs“4.4.13 +”...... 我为什么要问?插入模块时出错:
$ sudo insmod ./threads.ko
insmod: ERROR: could not insert module ./threads.ko: Invalid module format
并且不明白,它在最后一个版本的内核中存在很大差异,或者存在另一个问题。
答案 0 :(得分:5)
是否有必要在源和目标机器上使用完全相同的内核版本来运行内核模块?
是