为内核模块创建DKMS包,依赖于内核头

为内核模块创建DKMS包,依赖于内核头,第1张

概述背景 我开发了一个Linux设备驱动程序(ASoC).现在我想将它作为DKMS包发布.目标机器是Raspberry Pi和Raspbian. 问题 我的源代码依赖于Linux / sound / soc / codecs /目录中的头文件.目标计算机上不存在此文件. 解决方法1 我可以将所需的头文件添加到我的DKMS包中.但它感觉不对,因为我认为我应该使用构建模块内核源头文件(例如4.6,4.7 背景

我开发了一个Linux设备驱动程序(ASoC).现在我想将它作为DKMS包发布.目标机器是RaspBerry Pi和Raspbian.

问题

我的源代码依赖于linux / sound / soc / codecs /目录中的头文件.目标计算机上不存在此文件.

解决方法1

我可以将所需的头文件添加到我的DKMS包中.但它感觉不对,因为我认为我应该使用构建模块的内核源头文件(例如4.6,4.7 ……).

解决方法2

在构建模块之前,我可以告诉最终用户下载整个内核源代码(apt-get source …).但是由于单个头文件而安装超过700MB也感觉不对.包kernel-headers-不包含我需要的文件.

有两种解决方法比一种更好的解决方案吗?你会建议什么?

解决方法 由于头文件提供了与内核内部不相关的声明,因此您可以安全地从一个内核版本获取头文件,将其复制到您的包中并使用它来针对任何内核版本进行构建.无需用户在其计算机上具有此标头的额外要求.

当然,最好保留此标头的属性,但由于您使用DKMS,您的项目可能与linux内核许可证(GPL)兼容.

另一种方法 – 使用您构建的内核中的标头 – 从用户的角度来看更复杂.因此只有在真正需要时才应该使用它.例如,问题中的标题描述了您在模块中使用的某些内核内部.在这种情况下,您不能对所有目标内核使用单个(预复制)文件.

总结

以上是内存溢出为你收集整理的为内核模块创建DKMS包,依赖于内核头全部内容,希望文章能够帮你解决为内核模块创建DKMS包,依赖于内核头所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1228243.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存