gpt4 book ai didi

linux - 将驱动程序编译为内核的一部分,而不是模块

转载 作者:IT王子 更新时间:2023-10-29 00:20:57 25 4
gpt4 key购买 nike

我正在尝试为嵌入式设备创建一个简约的 Linux。这意味着编译内核和驱动程序的必要性。一个驱动程序是由其创建者直接为设备板编写的,因此它不是存储库驱动程序。它可以编译为内核模块。

然而,由于 Linux 的不可变特性和对内存使用量极小的要求,我不想使用模块。我想要内核中内置的所有驱动程序。所有随内核提供的驱动程序我都是这样设置的。

所以我的问题是如何将那个特殊驱动程序编译到内核?

所有搜索都没有为我提供解决方案 - 所有搜索都只是关于编译为模块。

感谢您的帮助。

最佳答案

您肯定必须将驱动程序源代码放入内核源代码树中并更新 makefile 以包含它。您可以在步骤 1.1 到 1.3 中看到这是如何工作的 here .

如果用户级软件与设备驱动程序进行任何对话,它可能会通过系统调用来进行。在驱动程序的源代码中搜索 asmlinkage 如果您找到其中任何一个,那么您正在考虑添加一些系统调用。上述文档的其余部分将解释如何设置它们。您必须至少修改两个文件(它们可能会根据您的内核版本略有不同)。

如果设备驱动程序直接与内核进行任何对话,我们就是在处理中断、内存映射 I/O 或 DMA。老实说,我不知道它们是否可以在您的驱动程序的源文件中处理(在这种情况下您可以继续),或者它们是否还需要修改源代码树中的其他文件。 Linux Kernel Module Programming Guide是这类事情的好资源。

祝你好运

关于linux - 将驱动程序编译为内核的一部分,而不是模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8421970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com