linux - 构建一个没有源代码的linux模块

标签 linux module kernel system opensuse

我只是想知道,是否可以在没有源代码的情况下构建/插入模块。假设我下载了一个openSuse操作系统,内核源代码没有附带。如何在不重新编译内核的情况下编译模块并插入模块?

对于没有内核源码的openSuse,真的很难找到完全相同版本的源码。即使内核的配置不同,您也无法将模块插入当前的 openSuse 中。

但这不可能发生在行业中,不是吗?我们不能编写驱动程序,让用户下载最新版本的源代码并找出正确的配置。

业界是如何解决这个问题的?我好奇。我对此比较陌生。

最佳答案

要构建模块,您需要内核头文件而不是整个源代码。 NVidia 以这种方式重建它的内核模块,因此这将是业界解决问题的一种方式。 Linux 对纯二进制模块不是很友好,事实上内核开发人员习惯于定期更改 ABI 和结构以破坏纯二进制模块。

关于linux - 构建一个没有源代码的linux模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10456628/

相关文章:

c - 使用字符串表和打印部分名称

c# - linux下C++中Gmap.Net的替代品

python - ModuleNotFoundError : What does it mean __main__ is not a package?

c - 来自 copy_to_user 的“错误地址”错误

kernel - Playstation 的游戏是如何在完全没有操作系统的情况下进行编程的?

linux - 如何扩展 cron 脚本以手动运行

java - 系统 getenv() 在 ubuntu 中给出 null,相同的代码在 mac 中工作

python - 在模块之间共享资源的良好做法?

android - 如何摆脱应用程序模块中的模块特定库存储库?

c++ - 我自己的操作系统内核上的 C++ 静态构造函数