Ubuntu系统下USB相机或串口设备端口绑定

1、问题背景:

在ubuntu系统下开发代码时候,会遇到这样的问题:一个项目可能需要若干串口设备或相机连接到主机上,如果仅仅用端口序号识别设备的话,一旦出现断电或者重新插拔设备情况,代码就会出现找不到设备或者找错设备的错误,因为序号分配是随机的。为了解决这个问题,可以将不同设备的属性信息绑定到usb序号上,这样不管usb序号如何变化,只需要通过绑定后的别名去查找设备即可。

2、Usb相机设备绑定

2.1查询USB相机信息:

终端输入:

udevadm info -a /dev/video0

若video0不存在则改为(2或者4或者6等偶数值)或者直接改成video*
输出类似如下信息即可:
在这里插入图片描述
获取需要的相机信息如下:
ID_MODEL_ID=045e,ID_VENDOR=0811,KERNELS=“1-12”

2.2新建规则文件:

在/etc/udev/rules.d文件夹中建立usb_cam.rules文件

sudo  gedit /etc/udev/rules.d/usb_cam.rules

里面写入如下内容:

KERNEL=="video[0,2,4,6,8]*",KERNELS=="1-9", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0811", MODE:="0777", SYMLINK+="usbcam"

注意:将上述参数改为自己从步骤一和步骤二中得到的参数,其中video 0、1 代表同一个设备,因此只取偶数位来处理即可 ,kernels为固定端口查询.
其中usbcam为你自定义的端口名。

2.3激活规则:

sudo udevadm trigger
sudo /etc/init.d/udev restart

2.4验证:

ls -l /dev |grep video

查看是否如下存在箭头指向固定端口,若存在则代表端口绑定成功!接着代码里面就可把原先的video0改成现在的usbcam了。
在这里插入图片描述

3、USB串口设备绑定

Usb串口设备绑定思路跟相机类似,只是类型不一样,下面简单介绍步骤和命令:

3.1查询设备

终端输入:lsusb
获取设备信息如上。

3.2新建规则文件:

cd /etc/udev/rules.d/
sudo gedit usb.rules

内容如下:

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666", SYMLINK+="IMU"

3 .3验证:

查看是否如下存在箭头指向固定端口,若存在则代表端口绑定成功!因为现在没有串口设备了,无法查看。

ls -l /dev | grep  ttyUSB
  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值