我正在尝试为embedded式设备创build一个简约的Linux。 这意味着编译内核和驱动程序的必要性。 一个驱动程序是由它的创build者直接写入设备板,所以它不是一个存储库。 它可以被编译为一个内核模块。
但是由于Linux不可变的性质以及对内存使用量极小的要求,我不想使用模块。 我想要内核中的所有驱动程序。 所有提供的内核驱动都是这样设置的。
所以我的问题是如何编译一个特殊的驱动程序到内核?
所有的search都没有给我提供一个解决scheme – 所有的只是作为模块编译。
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。 说实话,我不知道他们是否可以在驱动程序的源文件中进行处理(在这种情况下,你可以做的很好),还是需要修改源代码树中的其他文件。 这是一个很好的资源这样的事情。
祝你好运
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。