USB设备名称固定

ARM板子上USB设备名称固定
一、查看USB通道与设备节点的之间的关系
cd /sys/class//
此时我的arm板子上接了两个USB摄像头 , 一个是200万的 , 一个是500万的 。可是通过cd /dev/下ls查看 , 发现每个摄像头对应两个文件描述符 。那是因为可能你的USB摄像头支持多种显示格式 , 他就会对应多个文件描述符 。
现在我要采集摄像头的视频 , 可是每次开机重启USB摄像头对应的描述符都会改变 , 因此我们需要固定一下设备描述符 。
二、修改rules规则固定设备号
udev是Linux(.6内核之后)默认的设备管理工具 。udev 以守护进程的形式运行 , 通过侦听内核发出来的来管理 /dev目录下的设备文件 。
规则文件是 udev 里最重要的部分 , 默认是存放在 /etc/udev/rules.d/下 。所有的规则文件必须以“.rules”为后缀名 。
规则文件里的规则有一系列的键/值对组成 , 键/值对之间用逗号(,)分割 。每一个键或者是用户匹配键 , 或者是一个赋值键 。匹配键确定规则是否被应用 , 而赋 值键表示分配某值给该键 。这些值将影响udev创建的设备文件 。赋值键可以处理一个多值列表 。

USB设备名称固定

文章插图
udev 规则的匹配键
: 事件 () 的行为 , 例如:add( 添加设备 )、( 删除设备 ) 。
: 内核设备名称 , 例如:sda, cdrom 。
:设备的路径 。
: 设备的子系统名称 , 例如:sda 的子系统为 block 。
BUS: 设备在里的总线名称 , 例如:usb 。
: 设备在里的设备驱动名称 , 例如:ide-cdrom 。
ID: 设备在里的识别号 。
SYSFS{}: 设备的路径下 , 设备的属性文件“”里的内容 。
NAME:在 /dev下产生的设备文件名 。
USB设备名称固定

文章插图
:为 /dev/下的设备文件产生符号链接 。
所以我们先在/etc/udev/rules.d创建任意*.rules文件 , 根据udev规则的键值对应规则编写文件 。具体可以通过
info --query=all --name=/dev/video* ---walk
来查看udev数据库中的设备信息
然后根据上述描述编写.rules文件:
==“add”,==“1-1.5:1.0”,==“usb”,ATTR{name}“USB ”,ATTR{index}“0”,MODE:=“0777”,+=“”
三、保存退出 , 重启设备生效
【USB设备名称固定】cd /dev 用ll命令查看 , 这样每次重启后不管设备文件描述符怎么变化 , 你都可以用自己映射的描述符进行操作