mdev 响应热插拔事件

热插拔事件是从内核空间发送到用户空间的通知,一般这时候系统配置出现了变化,比如插入/移除耳机,插入/移除SD卡或者USB存储设备等。

热插拔事件默认会调用/sbin/hotplug来加载驱动程序,创建设备节点等。

如果执行该动作的不是/sbin/hotplug,比如,很多都用mdev来做热插拔的处理,此时我们需要修改系统调用

方法如下:

echo /sbin/mdev >  /proc/sys/kernel/hotplug

目的就是替换掉默认的/sbin/hotplug

同时我们还要配置/etc/mdev.conf, 改文件是给mdev使用的配置文件,目的是告诉mdev 热插拔时间产生的时候调用对应的工具来处理

比如如下:

sd[a-z][0-9]    0:0 666                 @/etc/mdev/udisk_insert
sd[a-z]         0:0 666                 $/etc/mdev/udisk_remove
mmcblk[0-9]     0:0 666                 */etc/mdev/hotplug.sh

外设插入或者移除的时候mdev会创建或者删除对应的设备节点,然后根据设备节点名称匹配工具来善后,比如上面的

@ 表示设备添加的时候调用 @后面的工具来处理, 

$  表示设备移除的时候调用 $ 后面的工具来处理, 

*  表示有设备的插拔事件(添加或者移除)发生时都调用该工具处理。

所以从脚本中我们可以看到如果有sda0~sda9 或sdz0~sdz9设备插入时调用/etc/mdev/udisk_insert处理

这应该是磁盘分区节点创建成功后会产生的事件,识别到磁盘分区后我们应该去挂载分区,这样上层用户才能使用该分区 udisk_insert应该就是用来挂载分区的

同理udisk_remove则是识别到磁盘移除后调用的工具

如果设备节点是mmcblk0~mmcblk9则调用/hotplug.sh工具

hotplu.sh如下

#!/bin/sh

case $ACTION in
remove)
        /etc/mdev/sdcard_remove
        exit0
esac

/etc/mdev/sdcard_insert

这是一个sdcard插入和拔出调用的工具,用来挂在卡和卸载卡

  

 

转载于:https://www.cnblogs.com/tid-think/p/10608798.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值