【问题标题】:Kernel version for target and for module目标和模块的内核版本
【发布时间】:2016-06-21 03:36:45
【问题描述】:

我正在尝试构建一个简单的内核模块并在 Raspberry Pi 上运行它。我已经从官方 raspberry 网站下载了内核源代码,但它们的内核版本与我的 raspbian 略有不同。 是否需要在源机器和目标机器上拥有完全相同版本的内核才能运行内核模块?我的树莓派上有这个

$ 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+”与“4.4.13+”... 我为什么要问?插入模块时出现错误:

$ sudo insmod ./threads.ko
insmod: ERROR: could not insert module ./threads.ko: Invalid module format

而且不明白,内核的最新版本号存在有价值的差异或者还有其他问题。

【问题讨论】:

    标签: c linux linux-kernel


    【解决方案1】:

    是否需要在源机器和目标机器上拥有完全相同版本的内核才能运行内核模块?

    是的。

    【讨论】:

    • 谢谢!那么,如何切换到这个版本呢?
    • 我创建了git fetch,然后创建了git checkout v4.4.11,但出现错误:“错误:pathspec 'v4.4.11' 与 git 已知的任何文件都不匹配。”
    猜你喜欢
    • 2019-01-19
    • 1970-01-01
    • 2020-01-20
    • 2012-09-05
    • 2018-11-27
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多