【问题标题】:how to code drivers?如何编写驱动程序?
【发布时间】:2010-11-01 19:46:24
【问题描述】:

我想在 linux 操作系统中用 C 语言编写驱动程序,尽管我认为这非常困难。我可以得到一些关于如何开始或要遵循的书籍的提示吗?驱动可以从我的USB口到显卡!!

我知道我可以在哪里搜索书籍,我想知道我应该从哪些基础知识开始。我是否需要具备硬件知识以及哪些特定书籍适合像我这样的新手?

【问题讨论】:

  • 开始时不要以“!!”结尾的每个句子。 ;-)

标签: c driver linux-device-driver


【解决方案1】:

从 Rubini 和 Corbet 的 Linux Device Drivers 开始,由 O'Reilly 出版。

它也可以作为free PDF download 使用。

【讨论】:

  • 没有,唯一需要的参考。
【解决方案2】:

"Linux Device Drivers"(O'Reilley 的书)由 Rubini 和 Corbet 撰写,是 Linux 设备驱动程序的权威书籍。

酷!在 Roddy 的回答和 kristina 的评论中查看免费的 pdf 版本!

【讨论】:

    【解决方案3】:

    试试亚马逊!!那里有很多给司机看的书。有些有样品2!!

    【讨论】:

    • 为什么投反对票?我喜欢这种风格与问题的匹配方式。
    • 因为它不被认为是有帮助的,我认为。
    【解决方案4】:

    几个文本:

    【讨论】:

      【解决方案5】:

      在开始设计驱动程序之前,您应该首先获得出色的 C 技能,并且可能还掌握一些 Linux 内核知识。设计驱动程序并非易事,如果您不习惯在低级别编程,可能会吓跑您。

      如果你不习惯 C,我可能会推荐 The C programming Language,因为在我看来,如果你有一些编程背景,那么它是 C 的入门。

      【讨论】:

      • 扎实的 C 技能固然是个好主意,但内核和驱动程序开发并不可怕。当你犯错时,赌注会更高。 :-)
      【解决方案6】:

      驱动程序的复杂性因设备而异。 USB 驱动程序比较简单。 GPU 驱动程序非常复杂,甚至这些驱动程序的作者通常也不知道他们所做的一切。我的建议是专注于你个人关心的硬件驱动程序,而不是试图成为一个万能的硬件;从长远来看会更容易。

      其他人关于文档来源和各种要阅读的内容的答案都是正确的,您应该真正接受其中之一。

      许多更复杂的驱动程序社区也有自己的特定领域信息。如果您想编写 GPU 驱动程序,DRI/DRM 和 Mesa 社区有他们自己的 wiki 和邮件列表,这将极大地帮助您,以及他们自己的文档。 http://dri.freedesktop.org/ 是一个不错的起点,http://wiki.x.org/ 也是如此。

      希望这会有所帮助!

      【讨论】:

        【解决方案7】:

        你有一个很好的例子

        http://www.linuxjournal.com/article/7353

        【讨论】:

          【解决方案8】:

          只需查看当前驱动程序的源代码即可。我只通过阅读代码上方的 cmets 来编写我的 usb rndis 驱动程序。

          获取内核源代码并查看 /drivers 目录。 usb驱动在usb目录下,而关于网络的usb驱动在/net/usb下。

          您可以通过阅读 cmets 学到很多东西。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-01-21
            • 2010-11-02
            • 2021-10-04
            • 1970-01-01
            • 2011-06-24
            • 2013-11-24
            • 2013-03-25
            相关资源
            最近更新 更多