赞
踩
防止多个USB相机存在时,在不断的热插拔情况下不仅相机序号会改变,同时相机名称也会发生改变,导致无法定位打开特定相机的问题
更改udev规则文件,固定相机名称,每个USB设备在linux系统中均存在唯一的idVendor(相机供应商ID)和唯一的idProduct(相机产品ID)
// 连接USB相机到Ubuntu系统 lsusb //找到与相机相关的行,记录下供应商ID(Vendor ID)和产品ID(Product ID),类似Bus 001 Device 002: ID 0c45:ae11 Microdia LRCP imx291 ,其中0c45为Vendor ID, ae11为Product ID cd /etc/udev/rules.d //定位到规则文件目录下 touch usb_camera.rules //创建udev规则文件 //在usb_camera.rules中写入如下内容,只要更改idVendor和idProduct就行了,SYMLINK为自定义名称 KERNEL=="video*",ATTRS{idVendor}=="0c45",ATTRS{idProduct}=="ae11",MODE:="0777",SYMLINK+="rgb503A1_camera" KERNEL=="video*",ATTRS{idVendor}=="10bb",ATTRS{idProduct}=="2b08",MODE:="0777",SYMLINK+="visual503A1_camera" //重载udev规则 sudo udevadm control --reload-rules sudo udevadm trigger //断开相机,重新插入 ls -l /dev/rgb503A1_camera //如果规则生效则打印/dev/rgb503A1_camera,后续opencv打开相机就可以通过该名称去打开了 ls -l /dev/video* //查看当前设备的挂载情况 sudo chmod 777 /dev/video0 //添加任何用户情况下,可读可写可执行的权限 cheese -d /dev/rgb503A1_camera //使用cheese打开该设备
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。