热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

嵌入式linux系统mdev,嵌入式linux的mdev机制

http:blog.csdn.netskyflying2012articledetails82955472012mdev是busybox自带的一个简化版的udev作用是在系统启动和

http://blog.csdn.net/skyflying2012/article/details/8295547

2012mdev是busybox自带的一个简化版的udev

作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的

使用mdev时不加参数就是用hotplug机制来决定创建什么样的设备文件。而用mdev -s是用sys文件系统提供的信息来创建设备文件的.

mdev -s扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点

配置内核Makefile

make menuconfig

General setup ---->

Configure standard kernel features (for small systems) ---->

[*] load all symbols for debugging/ksymoops

[*] Include all symbols in kallsyms

[*] Support for hot-pluggable devices

[*] Enable support for printk

配置busybox Makefile

make menuconfig

Linux System Utilities ---->

[*] mdev

[*]   Support /etc/mdev.conf

[*]  Support subdirs/symlinks

[*]   Support regular expressions substitutions when renaming device

[*] Support command execution at device addition/removal

[*]   Support loading of firmwares

用法:

1. 执行mdev前要挂载 /sys

以下是代码片段:mount -t tmpfs mdev /dev

mount -t sysfs sysfs /sys

2.命令内核在增删设备时执行/sbin/mdev,使设备节点会被创建和删除

以下是代码片段:echo /sbin/mdev > /proc/sys/kernel/hotplug

3.设置mdev,让它在系统启动时创建所有的设备节点

以下是代码片段:mdev -s

关于热插拔:

需要内核中支持hotplug

编写mdev配置文件:/etc/mdev.conf

该文件的作用是:mdev在找到匹配设备时自动执行自定义命令

格式为:

: []

@ 创建节点后执行的

$ 删除节点前执行的

* 创建后和删除前都运行的

如自动挂载U盘和SD卡脚本:

以下是代码片段:sd[a-z][0-9] 0:0 0660 @/etc/hotplug/usb/udisk_insert

sd[a-z] 0:0 0660 $/etc/hotplug/usb/udisk_remove

mmcblk[0-9]p[0-9] 0:0 0660 @/etc/hotplug/sd/sd_insert

mmcblk[0-9] 0:0 0660 $/etc/hotplug/sd/sd_remove

当检测到类似sda1这样的设备时,执行/etc/hotplug/usb里的脚本,脚本的内容就是挂载和卸载U盘

当检测到类似mmcblk0p1这样的设备时,执行/etc/hotplug/sd里的脚本,脚本的内容就是挂载和卸载SD卡



推荐阅读
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了如何使用MATLAB调用摄像头进行人脸检测和识别。首先需要安装扩展工具,并下载安装OS Generic Video Interface。然后使用MATLAB的机器视觉工具箱中的VJ算法进行人脸检测,可以直接调用CascadeObjectDetector函数进行检测。同时还介绍了如何调用摄像头进行人脸识别,并对每一帧图像进行识别。最后,给出了一些相关的参考资料和实例。 ... [详细]
  • STM32 IO口模拟串口通讯
    转自:http:ziye334.blog.163.comblogstatic224306191201452833850647前阵子,调项目时需要用到低波 ... [详细]
  • 32位ubuntu编译android studio,32位Ubuntu编译Android 4.0.4问题
    问题一:在32位Ubuntu12.04上编译Android4.0.4源码时,出现了关于emulator的错误,关键是其Makefile里的 ... [详细]
  • 编写一个简单的内核驱动模块时报错 “/lib/modules/3.13.032generic/bulid: 没有那个文件或目录。 停止。”...
    编写一个简单的内核驱动模块1staticinthello_init()2{3printk(“hello,Iaminkernelnow\n”);4return0;5}6voidadd ... [详细]
  • 201720181 20155315 《信息安全系统设计基础》实验四 外设驱动程序设计
    实验内容学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.p ... [详细]
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼binsh:1:usrlocalcuda-9.1:PermissiondeniedMakefile:88:recipefortargeto ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
author-avatar
houxue
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有