如何练习编写真实的Linux设备驱动程序?

5
我是一名中级程序员,拥有丰富的Linux内核编程经验。在实习期间,我主要负责调试内核和驱动程序代码。我最近完成了Robert Love的《Kernel Development》书籍的学习,并已经读完了Jonathan Corbet的《Linux Device Drivers》一书的一半。但是我面临一个困扰的问题。这些书中没有教我如何编写真正的(硬件)设备驱动程序。LDD3e一书告诉我如何编写基于内存的软件驱动程序和sysfs接口,这方面我比较擅长。那么我应该从哪里开始?有哪些要求以及如何着手处理呢?
附注:我已经开始阅读Sreekrishnan Venkateswaran的《Essential Linux Device Drivers》一书。

我会研究Linux内核中现有驱动程序的源代码(特别是针对具有可用规格的硬件)。 - Basile Starynkevitch
驱动程序太多了,我该如何知道使用哪个硬件。 - warpcoder
你需要了解自己所拥有的硬件设备。同时请参考http://kernelnewbies.org/。 - Basile Starynkevitch
1个回答

3

与其只是阅读它,你应该去做它。

有一种很好玩的方式可以亲身体验它。

跟随eudyptula挑战。只需访问eudyptula-challenge.org并按照他们的指示操作。共有20个任务。解决它们后,你不仅会了解内核,还将在Linux和内核上做了些事情。

他们说在挑战任务中使用脚本来验证你的驱动程序,但我对此持怀疑态度,因为我从他们那里得到的回复非常幽默和有趣!


1
很遗憾,目前Eudyptula挑战不接受新申请者。 - landmn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接