自动创建设备节点时遇到的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字符设备驱动中自动创建设备节点

本文简述在linux字符设备驱动编程中自动创建设备节点。至于手动创建设备节点的编程...
  • yxtouch
  • yxtouch
  • 2014年10月23日 19:48
  • 954

Linux /dev 自动创建设备节点

udev的支持主要作用是:在驱动初始化的代码里调用class_create(...)为该设备创建一个class,再为每个设备调用device_create(...); 内核中定义的struct cl...
  • dddxxxx
  • dddxxxx
  • 2016年09月08日 09:07
  • 1071

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

Linux下生成驱动设备节点文件的方法有3个:1、手动mknod;2、利用devfs;3、利用udev 在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实...
  • zyboy2000
  • zyboy2000
  • 2016年03月06日 08:28
  • 3246

Linux 字符设备驱动结构(二)—— 自动创建设备节点

上一篇我们介绍到创建设备文件的方法,利用cat /proc/devices查看申请到的设备名,设备号。 第一种是使用mknod手工创建:mknod filename type major minor ...
  • zqixiao_09
  • zqixiao_09
  • 2016年03月10日 20:46
  • 4379

程序员遇到bug怎么面对?

这几天项目在做性能测试,做渗透测试的时候,给我提了两个安全方面的bug,之前写的时候没有考虑这个问题,bug提出来以后找了个有经验的人问了问怎么做,然后就开始动工了,测试没有问题以后将bug指回去,不...
  • u013086062
  • u013086062
  • 2016年11月07日 22:10
  • 880

基于linux自动创建设备节点而引入的疑问

1. 自动创建设备节点时mknod做了哪些事情?mknod会在内部自动创建一个inode,代表设备文件节点的物理磁盘属性,该inode存在于devtmpfs或者tmpfs等ramfs文件系统中,ino...
  • gzzaigcn
  • gzzaigcn
  • 2015年08月18日 17:47
  • 1553

《Linux设备节点创建》手动与自动创建设备节点

一、手动创建 1.驱动模块 test_driver.c #include #include #include #include #include #include ...
  • tankai19880619
  • tankai19880619
  • 2013年10月16日 17:59
  • 9814

anroid USB类设备无法自动生成节点解决

在调试USB设备发现一个比较怪异的现象,为什么没有自动生成设备节点。 这里想到第一个解决办法,mdev 插上usb后使用命令 busybox mdev -s 发现设备节点在应该出现的位置出现了。 那么...
  • zmnqazqaz
  • zmnqazqaz
  • 2015年11月06日 11:40
  • 1058

创建设备节点

在init 文件中,用device_create()函数创建设备结点。 /proc/devices中的主设备号要和/dev/内的主设备好一致。...
  • ruanjianruanjianruan
  • ruanjianruanjianruan
  • 2015年09月15日 20:07
  • 1018

自动创建设备节点

使用linux-2.6.30.4。 文件的管理使用的是 sysfs.(由udev制作的文件系统)   涉及两个函数: virtual_disk_class = class_create(THI...
  • cy_weiyi
  • cy_weiyi
  • 2015年07月28日 16:41
  • 195
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自动创建设备节点时遇到的BUG
举报原因:
原因补充:

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