解决ubuntu20.04一个usb摄像头两个索引的重映射问题


     以前项目中用的系统为ubuntu16.04最近由于项目需要,系统需要升级到ubuntu20.04,但是升级后面临着插入一个usb摄像头对应着两个索引的问题,由于这两个索引就只有一个能打开摄像头,所以绑定后打开摄像头的时候有可能就定位到不能打开摄像头的索引,就造成了有的时候不能打开摄像头的现象。

查看摄像头索引

ls /dev/video*

绑定摄像头方法:

方法一
  • 将USB摄像头入USB口,通过lsusb查看端口信息。
    例如:

在这里插入图片描述图片中第三行就是USB摄像头的信息

  • 在/etc/udev/rules.d/下,创建.rules 规则配置文件
  • 编写样例如下,其中 ATTRS{idVendor} 填 ID 的前四位,ATTRS{idProduct} 填 ID 的后四位,MODE 是权限设置,SYMLINK+= 是自定义的串口绑定名称。
    注意:这个ID由芯片制造商设置,可以唯一表示该设备
    例如:10-local.rules
    在该文件中写入以下内容完成绑定:
KERNEL=="video*", ATTRS{idVendor}=="1689", ATTRS{idProduct}=="2304", MODE:="0777", SYMLINK+="video_left"
方法二

但是有时候, 很多厂商由于特殊原因,在串口芯片上,写入的设备号的名字 都是一样的。
在这里插入图片描述
图片中第三、四行就是两个USB摄像头的信息,从图片中可以看到两个摄像头的ID是一样的。
所以要用到 另外一个办法,就是通过绑定设备的硬件端口号 ,如下命令

ls /sys/class/video4linux/video* -l

在这里插入图片描述

  • 在/etc/udev/rules.d/下,创建.rules 规则配置文件;如:10-local.rules
  • 编写样例如下,KERNEL==“video*”,KERNELS==“2-4.2:1.0”, MODE:=“0777”, GROUP:=“dialout”, SYMLINK+=“video_up”。

在该文件中写入以下内容完成绑定:

KERNEL=="video*",KERNELS=="2-4.2:1.0", MODE:="0777", GROUP:="dialout", SYMLINK+="video_up"

特殊情况处理:ID相同,一个摄像头两个索引同时出现

  • 两个摄像头,每个摄像头两个索引;每个索引KERNELS相同;
    在这里插入图片描述上图video0和video1代表一个摄像头。

  • 每个摄像头的ID相同;

在以上两种情况下为了区分两个摄像头可以加入ATTR{index}=="0"进行区分;
查看 ATTR{index}等信息的指令如下:

sudo udevadm info --attribute-walk --name=/dev/video0

结果1:
在这里插入图片描述结果2:
在这里插入图片描述结果3:
在这里插入图片描述结果4:

在这里插入图片描述

从以上两图可以知道同一个摄像头的video0和video1或video0和video1两个的ATTR{index}是不一样的,索引可以加上这一项进行区分。

  • 在/etc/udev/rules.d/下,创建.rules 规则配置文件;如:10-local.rules
  • 编写样例如下,KERNEL==“video0”, ATTR{index} == “0”, KERNELS ==“2-4.2:1.0”, MODE:=“0777”, SYMLINK+=“video_right”。

在该文件中写入以下内容完成绑定:

KERNEL=="video0", ATTR{index}=="0", KERNELS=="2-4.2:1.0", MODE:="0777", SYMLINK+="video_right"
KERNEL=="video2", ATTR{index}=="0", KERNELS=="2-4.3:1.0", MODE:="0777", SYMLINK+="video_left"

结果

完成绑定后重启计算机,就完成了USB 口的映射;
结果:
在这里插入图片描述

如有错误欢迎指正,如果如果帮到您了请给个star吧!

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xp_fangfei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值