文章目录
ubuntu下固定USB相机设备名称
目的
防止多个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打开该设备