我正在尝试为embedded式设备创build一个简约的linux。 这意味着编译内核和驱动程序的必要性。 一个驱动程序是由它的创build者直接写入设备板,所以它不是一个存储库。 它可以被编译为一个内核模块。
但是由于linux不可变的性质以及对内存使用量极小的要求,我不想使用模块。 我想要内核中的所有驱动程序。 所有提供的内核驱动都是这样设置的。
所以我的问题是如何编译一个特殊的驱动程序到内核?
所有的search都没有给我提供一个解决scheme – 所有的只是作为模块编译。
在linux内核空间获得最大支持的cpu频率
madvise(___,___,MADV_DONTNEED)是否指示 *** 作系统懒惰地写入磁盘?
通过内核模块发送数据包
如何在linux内核中使用lockdepfunction进行死锁检测
自制内核链接器全局variables和内联string不能被访问
谢谢你的帮助。
linux / windows内核模块中的无限循环
如何在重新连接时使windbg强制加载符号?
在linux内核模块中定制.mod.c MODulE_AliAS
windows内核是否可以在用户模式下发生损坏
如何使USB设备启用多点触摸?
你一定要把驱动程序源码放在内核源代码树中,并更新makefile以包含它。 你可以看到这是如何工作在步骤1.1到1.3 这里 。
如果用户级别的软件与设备驱动程序进行通话,则可能通过系统调用进行。 搜索通过寻找asmlinkage的驱动程序的源,如果你发现任何这些,那么你正在寻找添加一些系统调用。 以上文档的其余部分将解释如何设置它们。 你将不得不修改至少两个文件(它们可能会有所不同,取决于你的内核版本)。
如果设备驱动程序直接与内核通信,我们正在处理中断,内存映射I / O或DMA。 说实话,我不知道他们是否可以在驱动程序的源文件中进行处理(在这种情况下,你可以做的很好),还是需要修改源代码树中的其他文件。 这是一个很好的资源这样的事情。
祝你好运
总结以上是内存溢出为你收集整理的将驱动程序编译为内核的一部分,而不是作为模块全部内容,希望文章能够帮你解决将驱动程序编译为内核的一部分,而不是作为模块所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)