如何在Linux下使用USB驱动注册大容量存储设备的用户空间回调函数?
当连接上U盘时,我在控制台上收到了以下消息。
USB1-1:采用ehci_hcd和address 2的新型高速usb设备
usb 1-1:产品: DataTraveler G2
usb 1-1:制造商: Kingston
USB1-1: SerialNumber: 0019E06B07F7A961877C02A9
usb 1-1:从1个选项中选择配置#1
scsi0 : USB海量存储设备的SCSI仿真
scsi 0:0:0:0:直接访问金斯敦DataTraveler G2 1.00 PQ: 0 ANSI: 2
SCSI设备sda: 7818240个512字节的hdwr扇区(4003MB)
sda:写保护已关闭
sda:假设驱动器缓存:写入直通
SCSI设备sda: 7818240个512字节的hdwr扇区(4003MB)
sda:写保护已关闭
sda:假设驱动器缓存:通过sda:sda1写入
sd 0:0:0:0:连接的scsi可移动磁盘sda
sd 0:0:0:0:连接的scsi通用sg0类型0
发布于 2011-08-26 15:49:39
您可以创建一个udev规则,在插入命令时执行该命令。基本上,您创建了一个文件,其中包含一组用于匹配的规则以及要运行的程序/脚本的路径。它看起来像这样:
KERNEL=="sd?1", ATTRS{serial}=="0019E06B07F7A961877C02A9", RUN+="/path/to/script arg1 arg2 ... argN"这将在创建名为argN的设备节点时运行/path/to/script,参数为arg1到argN,其中?是任意字符,序列号在数据中给定。如果您需要更好地控制何时触发规则,您可以从udevinfo程序获取大量信息,以将其合并到规则中。例如,如果您希望它对所有Kingston驱动器都进行触发。然后,您需要找到vendorID,也许还需要一些这些驱动器特有的更多信息。
https://stackoverflow.com/questions/7201412
复制相似问题