声明:在注明出处的情况下可以随意转载(blog.youkuaiyun.com/innotech)
本代码修改自the linux kernel module programming guaid version 2.6
原本的代码是在2.6.10中编写的。调试的时候出现了错误。
经过修改在2.6.32内核下编译运行。本代码只是实现了一个虚拟的字符型驱动。
需要自己手动设置mknod major数需要通过查看/var/log/message得到。然后就是
mknod /dev/<device name> c major 进行设置。
具体修改为将
init_module(void) -> module_init(function)
cleanup_module(void) ->module_exit(function)
更符合新版本内核模块风格。
还有就是unregister_chrdev是否有返回,原文代码是有返回的并且测试了返回值。但是我编译却出现了错误。
然后查看了内核中其他驱动程序的代码。发现都没有返回。因此我就取消了返回。没有错误,不知的为什么。
本文介绍了一个简单的字符设备驱动程序的设计与实现过程。该驱动能够记录设备被打开的次数,并允许用户通过cat命令读取这些信息。文章详细展示了如何在Linux环境下编写、编译及测试字符设备驱动。
1726

被折叠的 条评论
为什么被折叠?



