说明:此处使用的是jetson_nano套件(套件系统是ubuntu18.04)亲测有效。
只能绑定固定型号的摄像头,为video0。
目的:套件上设置了支持摄像头热插拔的功能,但是每次插拔过后,会有很大几率会变成video1,跟编译的服务背离,故使用此方法。
1、查看video设备对应的文件夹位置
root@root:~# ls -l /sys/class/video4linux/
total 0
lrwxrwxrwx 1 root root 0 1月 27 09:24 video0 -> ../../devices/70090000.xusb/usb1/1-3/1-3:1.0/video4linux/video0
2、进入找到的video*对应的文件夹中
root@root:~# cd /sys/devices/70090000.xusb/usb1/1-3/1-3:1.0/video4linux/video0
root@root:/sys/devices/70090000.xusb/usb1/1-3/1-3:1.0/video4linux/video0# cat name
Full HD webcam
3、进入/etc/udev/rules.d/文件夹下,编辑99-nv-l4t-usb-host-config.rules文件
root@root:/etc/udev/rules.d# sudo vim 99-nv-l4t-usb-host-config.rules
4、添加如下规则(根据摄像头名称添加)
SUBSYSTEM=="video*", ATTRS{name} =="Full HD webcam", MODE="0666",SYMLINK+="video0"
或者添加
KERNEL=="video*", ATTRS{name} =="Full HD webcam", MODE="0666",SYMLINK+="video0"
用到的字段:
SUBSYSTEM:系统检测到的usb型号,video*即为匹配所有
ATTRS{name}:摄像头名称
SYMLINK:摄像头名字(改成自己想实现的名称)
5、也可以根据插入的USB ID添加
获取ID
root@root:/etc/udev/rules.d# lsusb
Bus 001 Device 002: ID 1bcf:2284 Sunplus Innovation Technology Inc.
6、进入/etc/udev/rules.d/文件夹下,编辑99-nv-l4t-usb-host-config.rules文件
SUBSYSTEM=="video*",ATTRS{idVendor}=="1bcf", ATTRS{idProduct}=="2284", MODE="0666",SYMLINK+="videoxxx"
7、执行以下命令,使udev规则生效
sudo udevadm trigger
8、此时尝试多次插拔摄像头,摄像头会变成video1,但同时会生成一个video0
root@root:~$ ls /dev/video*
/dev/video0 /dev/video1
本文介绍如何在Jetson Nano上通过udev规则设置特定型号摄像头始终绑定为video0的方法,避免热插拔导致的设备编号变化,确保服务稳定运行。
4946

被折叠的 条评论
为什么被折叠?



