Module 引导的内核版本是否与构建模块所依据的版本不同?

Module 引导的内核版本是否与构建模块所依据的版本不同?,module,linux-kernel,driver,Module,Linux Kernel,Driver,我正在尝试从源代码为网卡构建和安装内核模块。模块源代码似乎非常挑剔它们可以编译哪个内核版本 我已经针对我的发行版Arch Linux的LTS内核头构建了模块,目前它是Linux LTS头5.10.37-1。这是否意味着我需要实际安装和引导完全相同的内核版本,才能使用这些模块?或者模块在引导版本和编译版本之间是否有一些公差 我意识到这取决于我到底在构建什么,但我对常规做法感兴趣,做什么和不做什么。例如,对于滚动发行版来说,每一次主线内核更新都需要重建模块,例如现在linux headers 5.1

我正在尝试从源代码为网卡构建和安装内核模块。模块源代码似乎非常挑剔它们可以编译哪个内核版本

我已经针对我的发行版Arch Linux的LTS内核头构建了模块,目前它是
Linux LTS头5.10.37-1
。这是否意味着我需要实际安装和引导完全相同的内核版本,才能使用这些模块?或者模块在引导版本和编译版本之间是否有一些公差


我意识到这取决于我到底在构建什么,但我对常规做法感兴趣,做什么和不做什么。例如,对于滚动发行版来说,每一次主线内核更新都需要重建模块,例如现在
linux headers 5.12.3
->
linux headers 5.12.4
。指针很受欢迎。

这就是为什么您通常找不到分布在某处的预构建内核模块。您必须使用运行内核的内核头构建内核模块。通常的做法是在
/usr/src

中始终具有正确的内核头。您可以尝试使用modprobe模块——force vermagic,但内核应该使用CONFIG\u module\u force\u loads构建。谢谢这两种方法。因此,我是否正确地理解这将是偶然的。更好的选择是从LTS内核启动@Varun我不知道股票内核包是否有更精确的选项-如果我的模块没有使用某些内核进行编译,作为一种解决方法,根据稍微不同的版本进行编译并强制将其加载到未编译的版本是天真的,对吗?是的。。你的回答在这方面是正确的。。使用不同的内核和模块版本总是有风险的。更新内核时重建外部模块可以使用DKMS(动态内核模块支持)实现自动化。它应该在发行版的回购协议中。