【问题标题】:How to write an Hello world driver for linux [closed]如何为 linux 编写 Hello world 驱动程序 [关闭]
【发布时间】:2013-01-11 08:57:08
【问题描述】:

最近我对 linux 感到非常兴奋。我想学习如何编写简单的 linux 驱动程序。我知道 C 和 python 。我正在使用 ubuntu 11.10(3.0.0-12-通用内核)。

我的疑惑

  1. 开发学习简单的linux驱动程序需要什么条件
  2. 我看到了可能的教程。但是在初学者水平上都不是很好。您能否为初学者推荐一个更好的教程。
  3. 如何编译、运行并查看我的驱动程序是否正常工作。

【问题讨论】:

  • 不确定这是否是您要查找的内容:Writing Device Drivers in Linux。一般来说,那里有很多教程。您可能还想查看FPGA4Fun 教程。虽然更偏向FPGA,但PCI驱动大纲真的很整齐。
  • 谢谢。是否可以在我的系统中开始学习设计驱动程序(3.0.0-12-generic kernal)。我需要安装哪些基础功能)
  • 完成本教程后,您可以在线阅读“Linux 设备驱动程序,第三版”或通过 PDF 下载(它具有知识共享许可证):makelinux.net/ldd3lwn.net/Kernel/LDD3free-electrons.com/doc/books/ldd3.pdf

标签: c linux embedded driver linux-device-driver


【解决方案1】:

请参阅以下链接。它包含开发内核linux char驱动程序的示例

http://tldp.org/LDP/lkmpg/2.6/html/x569.html

如果你想从头开始内核开发,那就从头开始教程

http://tldp.org/LDP/lkmpg/2.6/html/index.html

使用 Makefile 构建内核模块:

obj-m += module1.o

all
 make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean
 make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean


【讨论】:

  • 先生,请您给我推荐一个hello world驱动程序
  • 在第一个链接中,您会发现 cherdev.c 是 linux 的 hello world 字符驱动程序。但我建议你从一开始就遵循教程(第二个链接)
  • 先生,在我的 ubuntu 11.10 (3.0.0-12-generic kernal) 中是否可以进行这种开发
  • 你的内核是 3.0。我给你的链接是关于内核 2.6 的。我对内核 3.0 不熟悉。但让我们假设这段代码适用于 3.0。如果您的 linux 内核在此代码中遇到任何问题,请返回堆栈溢出
  • 3.0 与 2.6 并没有太大的不同 - 你可能认为这是因为数字上有很大的差距,但是他们将版本号更改为在从2.6.something to 3.0.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
  • 2011-06-24
  • 2019-10-05
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多