内核模块与内核的兼容性与新补丁重新编译

问题描述 投票:1回答:1

我想知道Linux内核模块是否可以与更高版本号的Linux内核版本(版本中的最后一个数字)一起使用,而不是编译内核。

请看以下示例:

  • 您目前正在使用Linux 4.14.75作为ARM目标
  • 我给你一个包含一起工作的应用程序和内核模块的RPM。该模块是针对4.14.75内核编译的。该模块由应用程序加载insmod。
  • 出现安全问题,并将目标内核更新为4.14.100。

鉴于这种情况,RPM中的内核模块是否会让您使用新内核?是否可以编译一次内核并使其与所有4.14内核兼容?

我不是在问depmod / modprobe是否有用或是否是好的做法。

linux linux-kernel linux-device-driver embedded-linux kernel-module
1个回答
1
投票

“是否有可能编译一次内核并使其与所有4.14内核兼容?”如果安全更新和backports没有破坏任何东西,也许。但是内核中没有稳定的内核API / ABI。只是userland API / ABI是稳定的。 https://www.phoronix.com/scan.php?page=news_item&px=Linux-Kernel-Stable-API-ABI https://github.com/torvalds/linux/blob/master/Documentation/process/stable-api-nonsense.rst

这里有一个帖子可以自动检查,如果有任何API / ABI到userland会破坏/中断:Linux kernel API changes/additions

对于内核ABI,我找到了一个工具(和你的用例):https://developers.redhat.com/blog/2018/03/28/analyzing-binary-interface-changes-linux-kernel/

© www.soinside.com 2019 - 2024. All rights reserved.