建立没有源代码一个Linux模块(Build a linux module without sour

2019-07-29 06:44发布

我只是想知道,是否有可能建立/插入模块没有源代码。 说我已经下载在OpenSuse操作系统,内核源代码并没有随之而来。 我怎么能编译模块并插入模块时无需重新编译内核?

openSUSE的无内核源代码,这是真的很难找到准确的源代码的版本相同。 即使内核的配置是不同的,你不能插入当前的openSUSE里面的模块。

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

如何这个问题在业界解决了吗? 我好奇。 我是比较新的这一点。

Answer 1:

要构建一个模块所需的内核头文件而不是整个源代码。 的NVidia重建它的内核模块这种方式,所以这将是该行业是如何解决这个问题的方法之一。 Linux是不是仅二进制模块,实际上用于常规的改变ABI和结构,打破二元仅模块的内核开发人员非常友好。



Answer 2:

目前还不清楚你在说什么工业。 为什么他们使用Linux呢? 凡 - 服务器,客户端上? 作为桌面系统?

如果他们知道,他们可能需要构建模块 - 他们为什么不有内核源代码?

具体我不openSUSE的认识,但对于Ubuntu的,你可以下载内核头文件为内核的当前PATCHLEVEL。 然后你就可以编译模块。 不难发现他们在突触,软件库管理程序。



Answer 3:

如果你是一个硬件制造商,理想情况下,你会得到你的司机在正式的Linux开发树,所以所有发行最终会继承它。 毫无疑问你会得到你原来提交的一些相当真诚的意见,并得到其认可的标准将需要做出任何编码风格/质量,接口选择等改变维护者坚持。

如果你是一个唯一的二进制发行版体积小集成商采购主板已经在他们身上,实现比除了技术上的挑战,你可能会得到一些悲伤(或更糟)从谁知道他们应该是能够最终客户请求得到它的来源。

如果你这样做是为了在内部使用而已,那么你就必须面临的技术挑战。 可能对于未修改的上游支持的体系结构可以得到足够接近的一组内核头文件,可能来自的Suse,甚至上游树,一旦你计算出你所需要的。 但是,如果你的主板有未正式支持的硬件(缺乏公开数据表),并依赖于未发表的内核补丁和/或未发表的GCC补丁,那么你是在一个艰难的点 - 有可能是使用系统基于不完全光明正大的路径这样的芯片上,除非你能反向工程足够的硬件独特性才能够使用,你可以从源代码构建一个编译器来创建自己的内核形式来源。 有很多灰色市场停留在这样的明朗,现在Android平板电脑。

最后,如果你的项目依赖于软件的基础,如Linux或GCC,你不能从源代码重新创建的二进制,你是在一个危险的境地。 如果是用于附带相比内部使用更多的项目,你应该想想切换到一个平台,提供必要的支持代码 - 或者至少是所需要的数据表的细节重新实现它 - 发布。



文章来源: Build a linux module without source code