为什么写着一篇文章
在做基于ARM-Linux的垃圾分类垃圾桶的时候,在不小心松动usb摄像头的或者是重新连接的时候,摄像头的编号会改变。有时候etc/udev/video2 ,有时etc/udev/video3这样使得每次运行的时候都需要修改编号。
什么是udev规则
udev规则是Linux系统中的一种机制,用于管理设备的动态设备节点。当设备插入或移除时,udev会根据预定义的规则来创建、删除或修改相应的设备节点。
这些规则通常以文件的形式存储在/etc/udev/rules.d/
目录下,文件名以.rules
结尾。每个规则文件包含一系列规则,每个规则由一行描述一个特定的设备及其对应的操作。
udev规则可以根据设备的属性(如设备类型、厂商ID、产品ID等)来匹配设备,并对其进行相应的操作。这使得系统管理员可以根据需要自定义设备的行为,例如为特定类型的设备设置自定义名称、创建符号链接、执行特定的脚本等。
设置udev
1查看usb ID
lsusb 查看USB 设备的厂商 ID、产品 ID、设备版本号以及其他相关信息。
查看设备信息
udevadm info -a -p /sys/class/video4linux/video0
编写规则
KERNEL=="video*" , ATTRS{idVendor}== "1e45", ATTRS{idProduct}=="8022", ATTR{index}=="0",MODE:="0777", SYMLINK+="came0"
KERNEL=="video*" , ATTRS{idVendor}== "1e45", ATTRS{idProduct}=="8022", ATTR{index}=="1",MODE:="0777", SYMLINK+="came1"
重启后会看到在 /dev 看到came设备
在运行mjpg-streamer的时候需要修改。./start.sh
这样以后运行该脚本的时候,摄像头的设备名就不会报错了。
我们在ip:8080就可以看到摄像头的实时结果了
参考文献
【linux】linux下摄像头设置固定的设备名-udev-CSDN博客