多usb摄像头串口设备名固定和永久授权

效果图

在这里插入图片描述
我将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

2.1若ID相同需通过固定串口添加USB设备

udevadm info -a -n /dev/ttyUSB0 | grep KERNELS   

查看值
在这里插入图片描述

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"

4.1、若ID相同修改文本内容,改成自己设备的id和KERNELS

KERNEL =="video[0,2,4,6,8]*",KERNELS=="3-1:1.0",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
sudo service  udev restart 
最后重新热拔插usb串口就可以重新获取信息
  • 5
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值