Linux创建字符设备自动生成设备节点

Linux创建字符设备自动生成设备节点

ID:40568014

大小:69.50 KB

页数:12页

时间:2019-08-04

Linux创建字符设备自动生成设备节点_第1页
Linux创建字符设备自动生成设备节点_第2页
Linux创建字符设备自动生成设备节点_第3页
Linux创建字符设备自动生成设备节点_第4页
Linux创建字符设备自动生成设备节点_第5页
资源描述:

《Linux创建字符设备自动生成设备节点》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux创建字符设备自动生成设备节点1.创建字符设备生成设备节点2.busybox  LinuxSystemUtilities--->  [*]mdev  [*]Support/etc/mdev.conf  [*]Supportcommandexecutionatdeviceaddition/removal3.kernel  Filesystems--->  Pseudofilesystems--->  [*]sysfsfilesystemsupport  [*]Virtualmemoryfilesystemsupport(formershmfs)  [*]TmpfsPOSIXAccessC

2、ontrolLists4.rootfs  vi./etc/init.d/rcS  mount-ttmpfsmdev/dev  mkdir/dev/pts  mount-tdevptsdevpts/dev/pts  mount-tsysfssysfs/sys  mount-a  echo/sbin/mdev>/proc/sys/kernel/hotplug  mdev-s -----------------------------------------------------------------------设备节点是由谁负责创建呢?我自个写着玩的时候一直都是自个用mknod来手动创建设备文

3、件的。实际中设备文件应由谁创建呢?由驱动程序吗?还是系统自带的一些服务(udev等)会在设备接入时来动态的创建设备文件节点啊?如果是那个的话,一个不识别的设备它们(udev等)又怎么知道要如何创建节点呢?比如说U盘系统怎么会知道是创建成sda,sdb等。 设备节点是由你写的驱动程序里面实现的。structclass*myclass=class_create(THIS_MODULE,“char_dev”);class_device_create(myclass,NULL,MKDEV(major_num,0),NULL,“char_dev”);这二个函数就是创建一个设备,和他的节点号。在你加入设备

4、时udev就会判断,然后建立节点。至于你说的不识别的设备,你得加载驱动啊,加载驱动的时候里面只要有上述的二个函数,通过UDEV就会创建了。--------------------------------------------------------------------------------------------两种方法建立设备节点,一种是自己手动用mknod,另一种是存在udev,它会自动创建相应的设备节点。另外,楼主你写的驱动首先是要进行注册的,要创建一个class和device,class在/dev目录下,device在sysfs目录下,这样,你加载模块是就会根据已创建的devi

5、ce去找sysfs目录下的class。---------------------------------------------------------------------------------------------使用linux-2.6.30.4。文件的管理使用的是sysfs.(由udev制作的文件系统) 涉及两个函数:virtual_disk_class=class_create(THIS_MODULE,"VirtualDisk");device_create(virtual_disk_class,NULL,devno,0,"VirtualDisk"); 使用需添加头文件#incl

6、ude 说明:当使用利用udev制作的文件系统时,Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点。内核中定义了structclass结构体,一个structclass结构体类型变量对应一个类(有待商榷),内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…)函数来在/dev目录下创建相应的设备节点。这样,加载模块的时候,用户空间中的udev会自动响应device_create(…)函数

7、,去/sysfs下寻找对应的类从而创建设备节点。 在linux-2.6.30.4,structclass定义在头文件include/linux/device.h中,structclass{   constchar      *name;   structmodule      *owner;   structclass_attribute      *class_attrs;   structde

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。