免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3794 | 回复: 8
打印 上一主题 下一主题

加载驱动时,怎么使系统自动创建设备文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-01 11:20 |只看该作者 |倒序浏览
加载一个驱动,又想写脚本文件,怎么才能让它自动生成设备文件(不使用mknod)

论坛徽章:
0
2 [报告]
发表于 2009-09-01 11:21 |只看该作者
加载一个驱动,又不想写脚本文件,怎么才能让它自动生成设备文件(不使用mknod),大家帮帮忙吧

论坛徽章:
0
3 [报告]
发表于 2009-09-01 17:27 |只看该作者

回复 #2 red_eyed_hare 的帖子

用udev

论坛徽章:
0
4 [报告]
发表于 2009-09-01 20:01 |只看该作者
能不能给一点详细的思路,小弟初学者,谢了!

论坛徽章:
0
5 [报告]
发表于 2009-09-03 10:51 |只看该作者
如题,我也想知道。
最近在做的一个项目,驱动是我自己写的,这几天正准备把驱动都编译到嵌入式linux试验箱中
但是我用insmod加载了驱动后
我自己还要用mknod来创建设备文件,按照这样,我便已经内核去了岂不是也要自己创建?


up

up..

论坛徽章:
0
6 [报告]
发表于 2009-09-03 23:14 |只看该作者
原帖由 red_eyed_hare 于 2009-9-1 20:01 发表
能不能给一点详细的思路,小弟初学者,谢了!

1.在内核驱动中用class_create,device_create两个函数,内核启动后就会在sysfs文件系统中建立相应的设备信息,记得把sysfs文件系统挂载到/sys,为下一步做准备
2.去官网下载udev,编译生成udevd,udevstart......等9个工具,只要把udevd,udevstart拷到自己的文件系统,配置好udev,并在系统启动时运行(可以在rcS脚本中加入),这样内核启动后,udev就会根据/sys里信息在/dev下建立设备文件
具体可以去这里看看http://blog.csdn.net/farsight2009/archive/2009/05/31/4228136.aspx

论坛徽章:
0
7 [报告]
发表于 2009-09-10 10:47 |只看该作者
创建,写在init函数里
devfs_mk_cdev(MKDEV(DEVICE_MAJOR,DEVICE_MINOR),S_IFCHR|S_IRUSR|S_IWUSR|S_IRGRP,DEVICE_NAME);
删除,写在exit函数里
devfs_remove(DEVICE_NAME);

DEVICE_NAME的地方写你的设备名
DEVICE_MAJOR,DEVICE_MINOR写你的主设备号和次设备号

[ 本帖最后由 hjw951 于 2009-9-10 10:50 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-09-11 11:02 |只看该作者
随便抓一个内核里的driver, 需要device node的driver, 看看。

论坛徽章:
0
9 [报告]
发表于 2009-09-11 17:04 |只看该作者
原帖由 red_eyed_hare 于 2009-9-1 11:20 发表
加载一个驱动,又想写脚本文件,怎么才能让它自动生成设备文件(不使用mknod)


现在新一点的Linux distribution都支持自动创建device file。在你的driver里调用kernelapi创建block /char device的时候,kernel会帮你在sysfs里创建相应目录,同时会通过netlink广播这一事件。udev监听到这个事件后,会帮你在/dev下创建相应的device node (相应的信息都在sysfs里找到)。

以前有一个叫做kernel里有个devfs的东东,整个/dev目录就mount了devfs这样一个文件系统,当kernel在创建device的时候,会调用devfs的接口在/dev下帮你创建相应的node.2.6的kernel已经没有这个东西了,好像2.4的kernel还有。。。

还有就是用一下mknod也不是什么难事吧。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP