Linux下监听usb插拔

1.利用libudev和select模式,启动线程监听usb设备插拔

XN_THREAD_PROC xnUSBUDEVEventsThread(XN_THREAD_PARAM pThreadParam)
{
	struct udev *udev;
	struct udev_device *dev;
   	struct udev_monitor *mon;
	int fd;
	
	/* Create the udev object */
	udev = udev_new();
	if (!udev) {
		printf("Can't create udev\n");
		exit(1);
	}

	/* This section sets up a monitor which will report events when
	   devices attached to the system change.  Events include "add",
	   "remove", "change", "online", and "offline".
	   
	   This section sets up and starts the monitoring. Events are
	   polled for (and delivered) later on.
	   
	   It is important that the monitor be set up before the call to
	   udev_enumerate_scan_devices() so that events (and devices) are
	   not missed.  For example, if enumeration happened first, there
	   would be no event generated for a device which was attached after
	   enumeration but before mon
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统下,可以通过使用udev规则来监听视频头USB事件。udev是Linux内核中的设备管理器,它可以监控硬件设备的动作,并执行相应的操作。 首先,我们需要找到与视频头USB设备相关的udev设备路径。可以使用以下命令来查找: ``` lsusb ``` 该命令会列出所有连接到系统的USB设备信息,找到与视频头USB相关的设备的Vendor ID和Product ID。 然后,创建一个udev规则文件,比如将其命名为`99-my-video.rules`,并编辑它: ``` sudo nano /etc/udev/rules.d/99-my-video.rules ``` 在文件中添加以下内容: ``` ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/path/to/script.sh %k" ACTION=="remove", SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/path/to/script.sh %k" ``` 其中,`xxxx`和`yyyy`分别是所找到的视频头USB设备的Vendor ID和Product ID,`/path/to/script.sh`是你想要执行的脚本的路径,`%k`是udev中的一个变量,表示所匹配到的设备路径。 保存并关闭文件后,重新加载udev规则: ``` sudo udevadm control --reload-rules ``` 最后,创建并编写脚本`/path/to/script.sh`,这个脚本会在视频头USB事件发生时被执行: ```bash #!/bin/bash if [ "$ACTION" == "add" ]; then # 视频头USB入操作 echo "视频头USB入" # 在这里编写你想要执行的操作 elif [ "$ACTION" == "remove" ]; then # 视频头USB出操作 echo "视频头USB出" # 在这里编写你想要执行的操作 fi ``` 保存并关闭脚本文件,并确保该文件具有可执行权限: ``` sudo chmod +x /path/to/script.sh ``` 现在,每当视频头USB入或出时,udev就会监听到相应的事件并执行对应的脚本操作。你可以根据自己的需求在脚本中编写相应的操作,如发送通知、自动挂载等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值