树莓派为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