红联Linux门户
Linux帮助

linux驱动开发学习步骤

发布时间:2008-05-09 10:46:03来源:红联作者:Mwany
1. 学会写简单的makefile

2. 编一应用程序,可以用makefile跑起来

3. 学会写驱动的makefile

4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。

5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。

6. 写一block驱动, 加上read,write,ioctl,poll等各种函数实现。

7. 简单学习下内存管理, 这个是最难的,明白各种memory alloc的函数实现细节。这是linux开发的基本功。

8. 学习锁机制的应用,这个不是最难的但是最容易犯错的,涉及到很多同步和并发的问题。

9. 看内核中实际应用的驱动代码。 你会发现最基本的你已经知道了, 大的框架都是一样的, 无非是read, write, ioctl等函数的实现, 但里面包含了很多很多细小的实现细节是之前不知道的。 这时候就要考虑到很多别的问题而不仅仅是基本功能的实现。

推荐您看2.6.20中integrated的一个驱动 kvm, 记得是在driver/lguest下,很好玩的, 就是linux下的虚拟机驱动, 代码不长,但功能强大。有能力的可以自己写一操作系统按照要求做成磁盘镜像加载到虚拟机中, 然后客户机可以有自己的4G虚拟地址空间。

10. 看完驱动欢迎您进入Linux kernel学习中来。

最简单的方法,跟着ldd(linux devive driver)做一遍。

转自byr, ParadiseLost的帖子。
文章评论

共有 47 条评论

  1. yezhiba 于 2014-08-20 22:24:37发表:

    表示不明白咯

  2. kyan1991 于 2012-07-18 22:29:16发表:

    顶起!!!

  3. wueric 于 2012-07-06 12:37:32发表:

    其实有些时候得能坚持下去,要有兴趣才好

  4. gjh558 于 2012-07-01 22:34:28发表:

    感谢楼主

  5. aijinger 于 2012-07-01 20:11:55发表:

    在路上

  6. shuixian4716 于 2012-02-03 09:23:36发表:

    好东西啊

  7. mw4927 于 2011-11-04 15:54:38发表:

    顶!正在按照楼主的做 自己弄了个hello world的驱动

  8. lanlanlangzi 于 2011-11-03 15:18:53发表:

    {:3_125:}

  9. wjh19800329 于 2011-09-27 13:10:11发表:

    牛人,学习了

  10. cyzzzz 于 2011-09-20 15:22:18发表:

    {:2_93:}

  11. fhr625 于 2011-09-19 16:29:38发表:

    这个得顶

  12. linuxfeng 于 2011-09-07 20:40:03发表:

    非常感谢!

  13. wenhao1129 于 2011-08-08 23:08:18发表:

    好贴,定一个先

  14. 99770337 于 2011-08-08 10:49:38发表:

    学到很多东西,谢谢!

  15. xingchen2004 于 2011-07-02 19:28:04发表:

    按部就班 挺好的方法 步步为营

  16. daen 于 2011-06-28 14:43:03发表:

    高深》。。

  17. 278113193 于 2011-06-28 11:32:35发表:

    学习中 顶LZ

  18. txgc_wm 于 2011-05-12 01:31:32发表:

    顶,很不错!

  19. txgc_wm 于 2011-03-31 01:47:37发表:

    学习了!

  20. stephenyong 于 2011-03-28 12:48:59发表:

    必须顶

  21. txgc_wm 于 2011-03-27 00:15:42发表:

    good

  22. 373622116 于 2011-03-14 22:25:59发表:

  23. linuxmm 于 2010-12-15 11:22:25发表:

    前辈的话要听~

  24. yyxl 于 2010-12-08 15:53:04发表:

    二句哪能说得清楚

  25. Lyndon 于 2010-11-17 13:18:35发表:

    果断收藏了。。

  26. shao13081352 于 2010-11-17 13:15:28发表:

    楼主说的对!小弟顶一下。

  27. dengt 于 2010-09-03 08:34:56发表:

    好啊,!这个我保存了!

  28. hp370440182 于 2010-08-26 08:25:17发表:

    {:2_96:}

  29. swei 于 2010-08-26 04:56:48发表:

    哎,关键是坚持,计划不如变化快

  30. lyanxia28 于 2010-08-19 08:44:59发表:

    牛人啊!

  31. haoxingfeng 于 2010-08-18 14:16:16发表:

    好东西 ,楼主,强

  32. hualiu0131 于 2010-08-03 10:17:40发表:

    学习了,谢谢!

  33. lishiyong110 于 2010-07-05 22:11:22发表:

    恩 学习一些基础知识后 对各个设备驱动层次结构了解下 多实际操作就应该差不多了

  34. 咖啡男孩 于 2010-07-05 12:50:18发表:

    还没到写驱动的境界,不过看步骤好像挺切合实际的……

  35. cuijianlei2007 于 2010-05-10 22:22:18发表:

  36. hooao 于 2010-03-19 16:57:55发表:

    嵌入式学习者,受益匪浅

  37. hooao 于 2010-03-19 16:42:57发表:

    学习了,谢谢

  38. 浩瀚天魔 于 2010-03-18 22:23:50发表:

    学习了

  39. xzqiu2010 于 2010-03-18 20:58:18发表:

    牛逼啊

  40. zhangbohtz 于 2010-02-02 13:22:34发表:

    更详细就好了!
    哈哈
    感谢!