busybox mdev使用 自动创建设备节点
来源:互联网 发布:淘宝折扣券网站 编辑:程序博客网 时间:2024/05/09 11:54
quote]------本文很多关于mdev解释的内容来源于网络,有说的不对的地方,望大家指正。-------
同时,各位也可以在我的blog里面找到,http://blog.chinaunix.net/space.php?uid=20752341&do=blog&id=3081976
同时,各位也可以在我的blog里面找到,http://blog.chinaunix.net/space.php?uid=20752341&do=blog&id=3081976
写Linux 设备驱动程序的时候,很多时候都是利用mknod 命令手动创建设备节点,mdev可以用来在模块加载-- insmod-- 的时候自动在/dev 目录下创建相应设备节点,并在卸载模块-- rmmod --时删除该节点。
内核同时提供了class_create( …) 函数,可以用它来创建一个类,这个类存放于sysfs 下面,一旦创建好了这个类,再调用device_create(…) 函数来在/dev 目录下创建相应的设备节点。这样,加载模块的时候,用户空间中的udev 会自动响应device_create( …) 函数,去/sysfs 下寻找对应的类从而创建设备节点。
举例如下(只是把关键的函数说明下):
附上Makefile 文件:复制代码
复制代码进入目录,make
生成 hello.ko 文件,拷贝到nfs目录,发现insmod 成功,但是没有自动创建 /dev/xyz设备。
复制代码查看busybox里面的 mdev.txt 文件,于是在 /etc/init.d/rcS里面增加如下命令,蓝色部分(个人觉得 mount -t proc proc /proc 这条可以不用):
#!/bin/sh
ifconfig eth0 192.168.1.133
ifconfig lo up
mount -a
mount -t proc proc /proc
mount -t sysfs sysfs /sys
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
然后
reboot,重新insmod 相应的.ko文件复制代码注意上面的蓝色字体部分,自动创建成功。
echo /sbin/mdev >/proc/sys/kernel/hotplug 是当有热插拔事件产生时,内核就会调用位于/sbin目录的mdev。这时mdev通过环境变量中的 ACTION 和DEVPATH,(这两个变量是系统自带的)来确定此次热插拔事件的动作以及影响了/sys中的那个目录。接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为这个设备在/dev 下创建设备节点文件。
驱动里,那2个函数只是在sysfs里建信息;需要hotplug的mdev根据这些信息来创建节点
0 0
- busybox mdev使用 自动创建设备节点
- busybox mdev使用 自动创建设备节点
- 自动创建设备节点-mdev和udev
- mdev/udev 自动创建设备节点
- linux-mdev自动创建设备节点
- mini2440 使用mdev创建设备节点问题
- 使用mdev自动创建多个major相同的设备节点
- 自定义busybox启动时创建的设备节点,mdev -s的另一种用法
- 自定义busybox启动时创建的设备节点,mdev -s的另一种用法
- 使用mdev在/dev/下创建子目录放置设备节点
- 使用mdev在/dev/下创建子目录放置设备节点
- mdev 自动创建设备结点
- mdev 自动创建设备结点
- 使用mdev动态创建设备
- 嵌入式Linux系统中利用mdev自动创建设备文件节点
- 自动创建设备节点
- 自动创建设备节点
- 自动创建设备节点
- Unity3d游戏开发之使用烘焙贴图教程(一)
- 自用vimrc
- 牛刀小试 - 浅析Java的继承与动态绑定
- 浅谈android4.0开发之GridLayout布局
- android:layout_gravity="bottom"
- busybox mdev使用 自动创建设备节点
- iPhone 6 / 6 Plus 出现后,如何一份设计稿支持多个尺寸?-20150118早读课
- 【Qt5开发及实例】15、实现一个简单的文本编辑器4
- .net连接各类数据库的方法
- 关于matlab图像保存的问题
- ORACLE在存储过程中记录日志的处理包
- Linux内核驱动自动创建设备节点文件
- 键盘快捷键
- MFC CString转换为char*