linux usb拔出防止抖动,Linux 下监控USB设备拔插事件

Linux 下监控USB设备拔插事件

Linux 下监控USB设备拔插事件

原文链接:添加链接描述

使用udev的规则来实现

自2.6 核心开始,就可以使用udev 协助管理系统中各设备名称。例如,磁盘设备排序、网卡设备排序等。udev能动态地在/dev目录里产生自定义的、标识性强的设备文件或设备链接。udev依赖内核中的sysfs的支持。 自2.6 内核开始,引入了sysfs 文件系统。sysfs把连接在系统上的设备和总线组织成一个分级的文件,并提供给用户空间存取使用。udev 运行在用户模式,而非内核中。udev的初始化脚本在系统启动时创建设备节点,并且当插入新设备——加入驱动模块——在sysfs上注册新的数据后,udev会创新新的设备节点。

udev 是一个工作在用户空间的工具,它能根据系统中硬件设备的状态动态的更新设备文件,包括设备文件的创建,删除,权限等。这些文件通常都定义在/dev

目录下,但也可以在配置文件中指定。udev 必须内核中的sysfs和tmpfs支持,sysfs 为udev 提供设备入口和uevent 通道,tmpfs

为udev 设备文件提供存放空间。

注意,udev 是通过对内核产生的设备文件修改,或增加别名的方式来达到自定义设备文件的目的。但是,udev

是用户模式程序,其不会更改内核行为。也就是说,内核仍然会创建sda,sdb等设备文件,而udev可根据设备的唯一信息来区分不同的设备,并产生新的设备文件(或链接)。而在用户的应用中,只要使用新产生的设备文件即可。

udev 的工作流程图:

c244c62d3cb14560d8a290406fc40f40.png

相关实例如下:

在/etc/udev/rules.d文件夹下创建相关规则文件,内容如下:

71c220d9363bd06c70652a846c616c1c.png

当插入设备(ACTION==“add”)在kernel中设备名为sdb4(KERNEL==“sdc1”),且为块设备(SUBSYSTEM==“block”),满足以上三个条件时,对设备文件命名为Myusb(NAME=“Myusb”),并创建软链接Myusb_link(SYMLINK+=“Myusb_link”),同时执行/home/usbadd.sh脚本(RUN+="/home/usbadd.sh")。

94af2bd13034e54853771a35ff1fb8ef.png

其中sdc1就是通过fdisk

-l查看得到的,软链接会在/dev下创建,名字可以自定义(以后无论插入任何u盘都可以以同一名字来访问),usbadd.sh脚本中可以编写你想实现的任何内容,我的内容是将u盘挂载到/mnt/usb目录下:

当设备拔出时,运行/home/usbremove.sh脚本卸载u盘:

518b92b259543554177ab6ad0cf9f118.png

Linux 下监控USB设备拔插事件相关教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值