zoukankan      html  css  js  c++  java
  • 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插入和拔出调用的工具,用来挂在卡和卸载卡

      

  • 相关阅读:
    置换笔记
    7.23
    Conveyor Belts
    CF #134 A~D
    Blocks && Fixing the Great wall
    Kakuro
    Deadlock Detection
    关于KeyFile的破解,含注册机源代码
    BMP位图之代码实现
    BMP位图之8位位图(三)
  • 原文地址:https://www.cnblogs.com/tid-think/p/10608798.html
Copyright © 2011-2022 走看看