mdev截获不到热插拔

2019-03-26 12:20发布

产品里采用mdev动态在mnt目录下创建/mdev/sdaX,/mnt/mmcblk0p0
创建与删除与否均通过热插拔U盘或sd卡。

大多数情况工作得很好,偶尔发现设备拔出后依旧看到目录的存在。
即使输入mount也能看到挂载点,但dev下已经没有设备了。

复现方法,只要在使用设备时拔出存储器,mdev就无法得到通知,也就没卸载挂载点。

复现代码
fopen /mdev/sda1
fprint xxxx
sleep 10  延时10秒,此时拔出存储器
fclose


还没有尝试udev,不知道是否有同样问题 毕竟两个机制略有不同,一个是uevent_helper,一个是netlink 此帖出自Linux与安卓论坛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
lzwml
1楼-- · 2019-03-26 16:59
修正一下,mdev实际上是截获到存储器拔出事件,只是在umount时

umount: can't umount /mnt/sda1: Device or resource busy

设备正忙,所以失败,现在要做的是在设备busy时,采用什么机制再次umount

一周热门 更多>