k230-linux下,如何强制给usb摄像头固定设备名

Viewed 51

问题描述


板载摄像头固定为 video2,HDMI好像是video1,而 USB 摄像头在开机前插入时会被分配为 video1、video2,在开机后插入会被分配为 video5。我需要 USB 摄像头始终被分配为 video5,以避免程序访问错误的设备,应该如何配置。我现在尝试过
1、开机自启脚本 /etc/rc.local
sleep 2
rm -f /dev/usb_cam
ln -s $(v4l2-ctl --list-devices | grep -A1 TOSHIBA | grep /dev/video | head -n1) /dev/usb_cam

2、自启动服务S99usbcam
#!/bin/sh
sleep 8
for dev in /dev/video*; do
v4l2-ctl -d $dev -D 2>/dev/null | grep -q "usb-"
if [ $? -eq 0 ]; then
ln -sf $dev /dev/usb_cam
break
fi
done

两种方法都不管用,开机后usb摄像头还是被分配为 video1、video2,导致无法显示,如何给usb摄像头固定为video5之后,不影响板载的video0-4

硬件板卡


CANMV-K230-V1.1

软件版本


k230_linux_sdk 自编译镜像0.6 ,编译添加了mdev

2 Answers

你好,脚本里面不要使用v4l2-ctl,可通过读取 /sys/class/video4linux/video*/name 路径获取对应视频设备的名称信息,以此判断当前 /dev/videoX 设备节点是否为 USB 摄像头设备。

这样是可以判断出usb摄像头,但是如果开机前插入,usb设备会占用video0 video1,和HDMI冲突了,导致显示设备不能正常运行。我想要识别到usb设备后,直接分配一个video5之后的编号,尝试了好几种方法,未能成功

请更新到最新版本,测试下最新版本是否有问题。 https://kendryte-download.canaan-creative.com/k230/release/linux_sdk_images/daily_build/