platform型设备在/dev目录下自动创建设备节点的分析【转】

转自:http://blog.csdn.net/rockrockwu/article/details/7357648

系统启动过程中platform设备、驱动注册完毕,为什么在/dev目录下就自动创建好设备节点了?

在/dev目录自动创建设备节点可以通过class_create(),然后再device_create()。但是在跟踪

内核platform注册过程中可以发现,其实这里面并未调用上诉两个函数,那么platform注册后

如何在/dev目录下创建设备文件节点?

 

 

[cpp] view plain copy

 

  1. int device_add(struct device *dev)  
  2. {  
  3.     ... ...  
  4.   
  5.     if (MAJOR(dev->devt)) {  
  6.         error = device_create_file(dev, &devt_attr);  
  7.         if (error)  
  8.             goto ueventattrError;  
  9.   
  10.         error = device_create_sys_dev_entry(dev);  
  11.         if (error)  
  12.             goto devtattrError;  
  13.   
  14.         devtmpfs_create_node(dev);  
  15.     }  
  16.   
  17.         ... ...  
  18. }  

在device_add的过程中可以发现上诉代码,首先判断dev中是否有设备号,有的话就进行文件创建

 

最后通过函数devtmpfs_dreate_node(dev)在/dev函数中创建设备节点。

时间: 2024-12-03 18:01:27

platform型设备在/dev目录下自动创建设备节点的分析【转】的相关文章

linux驱动开发--字符设备:自动创建设备节点

自动创建设备文件 定义在<linux/device.h>中 class结构:该结构体类型变量对应一个设备类,被创建的类存放在/sys目录下面 device结构:该结构体类型变量对应设备,被创建的设备存放于/sys目录下面 在加载驱动模块时,用户空间中的udev会自动响应device_create()函数,在/sys下寻找对应的类,从而为这个设备在/dev目录下创建设备文件 内核版本问题: 在内核2.4版本中使用devfs_register 在内核2.6早起版本中使用class_device_r

class_create(),device_create自动创建设备文件结点【转】

本文参考来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhenwenxian/archive/2010/03/28/5424434.aspx 本文转自:http://www.cnblogs.com/hnrainll/archive/2011/06/24/2088576.html 从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代.相比devfs,udev有很多优势,在此就不罗嗦了,提醒一 点,udev是应用层的东东,不要试图在内

aix /dev目录下hdisk 和 rhdisk的区别(asm必须使用字符设备)

简单的解释:hdisk是块设备,而rhdisk是字符设备. 系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块.最常见的块设备是硬盘,除此以外,还有软盘驱动器.CD-ROM驱动器和闪存等等许多其他块设备.注意,它们都是以安装文件系统的方式使用的--这也是块设备的一般访问方式. 另一种基本的设备类型是字符设备.字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备.如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备:反

ExtJS6的中sencha cmd中自动创建案例项目代码分析

在之前的博文中,我们按照sencha cmd的指点,在自己win7虚拟机上创建了一个案例项目,相当于创建了一个固定格式的文档目录结构,然后里面自动创建了一系列js代码. 这是使用sencha cmd自动创建的文件夹目录结构: 然后我们将整个项目,copy到win7服务器上部署好的apache服务器上: 运行一下,果然可以使用: 让我们来看看,这些自动创建的文件目录和js文件是如何工作的: 整个extjs项目的入口文件是app.js文件 之所以这么说估计ext就这么定义的,看看蒋锋的博客,下图,也

详解Linux系统下的/dev目录

  dev是设备(device)的英文缩写./dev这个目录对所有的用户都十分重要.因为 在这个目录中包含了所有Linux系统中使用的外部设备.但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样.它实际上是一个访问这些外部设备的端口.我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别. Linux沿袭Unix的风格,将所有设备认成是一个文件. 设备文件分为两种:块设备文件(b)和字符设备文件(c),设备文件一般存放在/dev目录下,对常见设

php计算指定目录下文件占用空间的方法

 这篇文章主要介绍了php计算指定目录下文件占用空间的方法,实例分析了php操作目录及文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php计算指定目录下文件占用空间的方法.分享给大家供大家参考.具体分析如下: php中可以通过 RecursiveDirectoryIterator 扩展 DirectoryIterator的getChildren() 方法提供访问子目录中的每一个元素的方法,下面的代码通过遍历访问目录下的所有文件,获取他们暂用的空间. ? 1 2 3

设备文件自动创建 权限

问题描述 设备文件自动创建 权限 使用device_create()自动创建设备文件的时候 生成出来的设备文件 权限只有root用户可以 使用,请问该怎么修改? 请大神赐教,不胜感激!! 解决方案 自动创建设备文件自动创建设备文件自动创建设备文件

文件读写-如何在工程目录下读取.c的源文件

问题描述 如何在工程目录下读取.c的源文件 如何在工程目录下读取.c的源文件 然后分析文件中是否有"/* ""//" 解决方案 #include int main() { FILE *fp,*fp1; char str[99]=""; int i=0; fp=fopen("test.c","r"); //要打开的源文件 fp1=fopen("new.c","w");

流媒体服务器-Darwin Streaming Server如何不登陆web让其自动生成默认目录下媒体的.sdp文件

问题描述 Darwin Streaming Server如何不登陆web让其自动生成默认目录下媒体的.sdp文件 如题想让服务器运行时自动检测默认目录下的媒体并生成.sdp不需要登陆web去设置.要如何做,修改代码的换,相关的代码段在哪里,既然能用web管理媒体并生成.sdp那么也应该可以做到自动生成的,我只要MP4文件就可以,不知怎么弄