-
出现原因:
内核启动时,usb摄像头识别比mipi摄像头快的话就会占用**/dev/video0**这个设备描述
-
解决办法:
将usb设备分配的设备号迁移至**/dev/video32+,让usb注册的video设备全部改成在32**之后
-
修改过程
路径:
/kernel/drivers/media/usb/uvc/uvc_driver.c
/kernel/drivers/media/usb/uvc/uvcvideo.h
uvc_driver.c:2119
- ret = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
+ ret = video_register_device(vdev, VFL_TYPE_VIDEO, UVC_VIDEO_NODE_NR);
uvcvideo.h
+ /* Reserve /dev/video0-31 for on-board devices (MIPI rkcif etc.).
+ * USB UVC cameras always register from nr 32 upward, so the MIPI
+ * camera keeps /dev/video0 regardless of probe order. */
+ #define UVC_VIDEO_NODE_NR 32
+
防止重复打印
/kernel/drivers/media/platform/rockchip/cif/capture.c
4455 - v4l2_info(&dev->v4l2_dev, "%s %d, state %d, curr_buf %p, next_buf %p\n",
4455 + v4l2_dbg(3, rkcif_debug, &dev->v4l2_dev,
4456 + "%s %d, state %d, curr_buf %p, next_buf %p\n",