文章目录[隐藏]
效果图
我将0号和2号固定成11和22。
目的:设备每次插入不同usb设备,顺序不一样名称可能都不一样,不稳定,无法通过固定设备名获取信息。并且针对一个usb摄像头含有多个设备名称问题做了解决
1、查看当下摄像头设备名
ll /dev/video*
//如果不是摄像头的USB串口,/dev/video*可以改成/dev/ttyUSB*
运行结果,三个摄像头,六个video设备名
crwxrwxrwx+ 1 root video 81, 0 Dec 31 11:17 /dev/video0
crw-rw----+ 1 root video 81, 1 Dec 31 11:17 /dev/video1
crwxrwxrwx+ 1 root video 81, 2 Dec 31 11:17 /dev/video2
crw-rw----+ 1 root video 81, 3 Dec 31 11:17 /dev/video3
crw-rw-rw-+ 1 root video 81, 4 Dec 31 09:38 /dev/video4
crw-rw-rw-+ 1 root video 81, 5 Dec 31 09:38 /dev/video5
一般设备video0和设备video1是同一台设备,2和3,4和5,但是能读取图片的设备是双数如video0,video2,video4,
2、查看设备id号
lsusb
运行结果:
Bus 004 Device 002: ID 0781:558b SanDisk Corp.
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 007: ID 04f3:0c4b Elan Microelectronics Corp.
Bus 003 Device 005: ID 5986:212b Acer, Inc
Bus 003 Device 022: ID 0a0a:5846
Bus 003 Device 021: ID 0b95:772b ASIX Electronics Corp. AX88772B
Bus 003 Device 020: ID 062a:4c01 Creative Labs
Bus 003 Device 019: ID 093a:4202 Pixart Imaging, Inc.
Bus 003 Device 018: ID 0c46:636a WaveRider Communications, Inc.
Bus 003 Device 017: ID 14cd:8608 Super Top
Bus 003 Device 009: ID 8087:0026 Intel Corp.
里面对应和摄像头id可以通过拔掉和插入usb串口查找出对应的值。如拔掉一个后,少了Bus 003 Device 022: ID 0a0a:5846 ,那拔掉的设备对应参数iidVendor= 0a0a,idProduct=5846
3、根据2步奏拔掉插入usb逐步查找出对应的id号后,建立串口重命名和授权的文本
可以查看当前已有的设备串口文本
cd /etc/udev/rules.d
ll
新建一个不重复的文本,并打开
cd /etc/udev/rules.d
sudo touch filename.rules
sudo gedit filename.rules
4、修改文本内容,改成自己设备的id
KERNEL =="video[0,2,4,6,8]*",ATTRS{idVendor}== "0a0a",ATTRS{idProduct}=="5846",GROUP="video",MODE="0777",SYMLINK+= "camera_black"
KERNEL =="video[0,2,4,6,8]*",ATTRS{idVendor}== "14cd",ATTRS{idProduct}=="8608",GROUP="video",MODE="0777",SYMLINK+= "video200"
上面我加了两个固定设备名
如果不是摄像头USB串口,可以直接改成一下
KERNEL =="ttyUSB[0-9]*",ATTRS{idVendor}== "0a0a",ATTRS{idProduct}=="5846",GROUP="video",MODE="0777",SYMLINK+= "yourname"
yourname为你想改成的名字
-
-其中
KERNEL=="video[0,2,4,6,8]*"是指:dev/video0、dev/video2、dev/video4...设备的名称, 很好避免了使用/dev/video0相同设备但不可以使用的/dev/video1设备名 ATTRS{idVendor}== "14cd",ATTRS{idProduct}=="8608" ,GROUP="video",组名 MODE="0777" 是指:全部授权,可读可写 SYMLINK+= "video100" 是指:将原有设备映射到video100,如将dev/video0映射到dev/video100, 虽然设备同时有了三个名称,但我们可以使用dev/video100对应的设备的设备名一直不会改变。
注:详细全面说明参考https://www.cnblogs.com/fah936861121/p/6496608.html
5、改完后保存,并重新运行该脚本,并拔插串口
sudo udevadm control --reload
service udev restart
最后重新热拔插usb串口就可以重新获取信息
版权声明:本文为CSDN博主「不加辣先生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44023934/article/details/122252740
暂无评论