1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux usb拔出防止抖动 Linux 下监控USB设备拔插事件

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

时间:2018-08-06 23:00:09

相关推荐

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 的工作流程图:

相关实例如下:

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

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

其中sdc1就是通过fdisk

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。