自动创建设备节点时遇到的BUG

转载 2016年08月30日 11:31:57
之前写的字符类设备驱动,没有自动创建设备节点,因为只使用了register_chrdev()函数,只是注册了这个设备。然后在系统启动后,就要自己创建设备节点mknod,这样虽然是可行的,但是比较麻烦。于是想在__init函数里面,自动创建设备节点。

    经过查阅资料,发现创建设备节点使用了两个函数  class_create()和class_device_create(),当然在__exit()函数里,要使用class_destory()和class_device_desotry()注销创建的设备节点!

       问题来了,编译了之后,发现报错error: implicit declaration of function 'class_device_create'等几个错误。经过分析,应该是Linux内核版本不同的原因!早期的版本,使用的是上面说的两个函数,但是在2.6.29以后(我用的是2.6.32的),使用的函数则变成了 class_create()和device_create(),并且要在声明中加入#include <linux/device.h> ,因为定义这些函数是在Linux2.6.32/include/linux/device.h里面!

      经过这些修改后,驱动编译成功,就能够自动创建设备节点了


相关文章推荐

一步一步学习 Linux 驱动之自动创建设备节点

extern struct device *device_create(struct class *cls, struct device *parent, dev_t devt, vo...

Linux内核驱动自动创建设备节点文件

Linux内核驱动自动创建设备节点文件 (2012-06-16 10:06) 标签:  转载  原文地址:Linux内核驱动自动创建设备节点文件 作者:xgqsa Lin...

device_create device_destroy 使用==mknod及通过class_create自动创建设备节点

本文的copyright归yuweixian4230@163.com 所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。 作者:yuwei...

led驱动_自动创建设备节点

上篇文章大概说明了驱动编写的格式, 那么

自动创建设备节点-mdev和udev

我们在刚开始写Linux 设备驱动程序的时候,很多时候都是利用mknod 命令手动创建设备节点,实际上Linux 内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev 目录下创建相...

Linux驱动模块自动创建设备节点

在宋宝华《Linux设备驱动开发详解》中我们能找到如下描述: devfs与udev的另一个显著区别在于:采用devfs,当一个并不存在的/dev节点被打开的时候,devfs能自动加载对应的驱动,而ud...

自动创建设备节点

内核:3.8.0-19-generic 文件的管理使用的是 sysfs.(由udev制作的文件系统) 说明: 当使用利用udev制作的文件系统时,Linux内核为我们提供了一组函数,可以用来在模块...

在驱动模块初始化函数中实现设备节点的自动创建

我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在...

arm驱动程序——自动创建设备节点 (韦东山的视频总结及针对linux-2.6.30)

mdev机制根据/sys/下的系统信息来创建设备节点。 自动创建节点的步骤: 1.入口函数中:     a.创建一个类。     b.在类下面创建一个设备。 2.出口函数中:     a.注销类下的设...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自动创建设备节点时遇到的BUG
举报原因:
原因补充:

(最多只允许输入30个字)