使用netlink捕获USB插拔事件的问题。

fly4free 2018-01-23 10:29:17
网上到处都有如何用 netlink 捕获 USB 设备插拔事件的代码。
但是都没有对事件信息做解释,比如下面这个是我用 netlink 的方式获得的 U盘插入/拔出 时的事件打印的内容:

add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/scsi_host/host45
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/scsi_disk/45:0:0:0
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/scsi_device/45:0:0:0
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/scsi_generic/sg2
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/bsg/45:0:0:0
add@/devices/virtual/bdi/8:16
add@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/block/sdb


remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/bsg/45:0:0:0
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/scsi_generic/sg2
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/scsi_device/45:0:0:0
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/scsi_disk/45:0:0:0
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0/block/sdb
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0/45:0:0:0
remove@/devices/virtual/bdi/8:16
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/target45:0:0
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45/scsi_host/host45
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/host45
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0
remove@/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1


我的问题是:
add 事件中,每个事件的路径都是什么意思呢?
路径的部分都有由 '-', ':', '.' 字符组成的东西,这些东西都是由哪些信息组成的?
每一个增加的东西,都是因为什么怎么增加的?

remove事件中,可能都与 add 事件相对应的地方,知道 add 的意思,remove 就差不多了,唯一想问的就是 remove 的顺序并不是严格的依次对应于 add 的顺序,这是为什么?
...全文
1085 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly4free 2018-01-25
  • 打赏
  • 举报
回复
引用 1 楼 yuelengdihai 的回复:
建议看下netlink命令源码
你好,我机器上没有你说的 netlink 命令,这是属于哪个软件包的命令??源码在哪儿下呢?
cocoabird 2018-01-24
  • 打赏
  • 举报
回复
建议看下netlink命令源码

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧