树莓派为USB设备绑定固定的设备名

1. 查看可用设备

  • 将一个设备插入USB接口,查看设备名。

可以用以下命令查看:

# v4l2-ctl --list-devices

也可以去dev下直接查看多了哪个设备

我的是多了一个/dev/video25,后边会以此为例

2. 根据设备信息拼接配置文件

2.1 udevadm info

  • 查看usb接口的信息

以 video25设备为例查看接口设备的信息

# udevadm info /dev/video25
P: /devices/platform/ffe00000.usb/usb1/1-1/1-1.2/1-1.2:1.0/video4linux/video25
N: video25
S: v4l/by-id/usb-ICT-tek_ICT_CAMERA_GS_B10_200901010001-video-index0
S: v4l/by-path/platform-ffe00000.usb-usb-0:1.2:1.0-video-index0
E: DEVLINKS=/dev/v4l/by-id/usb-ICT-tek_ICT_CAMERA_GS_B10_200901010001-video-index0 /dev/v4l/by-path/platform-ffe00000.usb-usb-0:1.2:1.0-video-index0
E: DEVNAME=/dev/video25
E: DEVPATH=/devices/platform/ffe00000.usb/usb1/1-1/1-1.2/1-1.2:1.0/video4linux/video25
E: ID_BUS=usb
E: ID_MODEL=ICT_CAMERA_GS_B10
E: ID_MODEL_ENC=ICT\x20CAMERA\x20GS\x20B10
E: ID_MODEL_ID=0567
E: ID_PATH=platform-ffe00000.usb-usb-0:1.2:1.0
E: ID_PATH_TAG=platform-ffe00000_usb-usb-0_1_2_1_0
E: ID_REVISION=0001
E: ID_SERIAL=ICT-tek_ICT_CAMERA_GS_B10_200901010001
E: ID_SERIAL_SHORT=200901010001
E: ID_TYPE=video
E: ID_USB_DRIVER=uvcvideo
E: ID_USB_INTERFACES=:0e0100:0e0200:
E: ID_USB_INTERFACE_NUM=00
E: ID_V4L_CAPABILITIES=:capture:
E: ID_V4L_PRODUCT=ICT CAMERA GS B10: ICT CAMERA G
E: ID_V4L_VERSION=2
E: ID_VENDOR=ICT-tek
E: ID_VENDOR_ENC=ICT-tek
E: ID_VENDOR_ID=0bda
E: MAJOR=81
E: MINOR=31
E: SUBSYSTEM=video4linux
E: USEC_INITIALIZED=2038367
  • 选择一个USB接口信息的唯一值,用于区分该接口。经过比较,我选择的是ID_PATH=platform-ffe00000.usb-usb-0:1.2:1.0

  • 取到SUBSYSTEM=="video4linux"

  • 将上边两个值拼成配置文件的一条信息

SUBSYSTEM=="video4linux", ENV{ID_PATH}=="platform-ffe00000.usb-usb-0:1.2:1.0", SYMLINK+="liuBeiTest01"

SYMLINK+=是在/dev下添加一个软连接指向该设备,后边值写自定义设备的名即可

2.2 --attribute-walk

如果udevadm info命令输出的信息找不到两个设备的区别,则可用下边的命令查看信息

# udevadm info --attribute-walk --name=/dev/video25

挑可以区分的值拼入配置信息。

比如本次我们的摄像头接入后,显示两个设备。udevadm info的信息中没有可以区分的唯一信息。
我们对比了两个设备的udevadm info --attribute-walk --name=/dev/video25信息,发现可以用index信息区分,所以将该信息拼入配置信息。

3. 给USB接口设备绑定设备名

  • 将上边拼出的配置文件内容,写入/etc/udev/rules.d/98-com.rules文件中
SUBSYSTEM=="video4linux", ENV{ID_PATH}=="platform-ffe00000.usb-usb-0:1.2:1.0", SYMLINK+="liuBeiTest01"
  • 重启服务器
reboot

4. 测试

向USB插入设备,系统内多了一个 /dev/liuBeiTest01 的软连接指向接入该端口的设备

如果此时接入该usb的设备显示是/dev/video25则软连接指向/dev/video25;如果是/dev/video26则指向/dev/video26


在这里插入图片描述

posted on 2022-09-22 21:18  运维开发玄德公  阅读(97)  评论(0编辑  收藏  举报  来源

导航