仓库:https://gitee.com/wangyoujie11/imx6ull-camera“”记得给的star哦“”
“”=正文开始===="
一、配置内核,使其支持UVC(USB Video Class)
在Linux系统中,UVC驱动的支持在Linux Kernel 2.4之后被增加到内核中。
找到自己的linux源码文件:输入
make menuconfig
按照以下目录进行查找:
1.使能USB Video Class(UVC)
(如果这一项没有,搜索USB_VIDEO_CLASS检查依赖)
使每一项全y,然后保存退出,再进去就能看到 USB Video Class (UVC0)了
(比如MEDIA_USR_SUPPORT[=n],那就按/,然后输入MEDIA_USR_SUPPORT,查找他在那里配置的,一路进入配置成*,最终保存即可)
2.使能V4L platform devices
进入路径:Device Drivers → Multimedia support
二、内核中增加摄像头设备信息(PID和VID)
PID和VID如何获取?
方法1:直接查到板子上或者笔记本上(连接到虚拟机),然后 lsusb
查看
方法2:摄像头插在电脑上,打开设备管理器查看【找到摄像头】
3.打开linux内核文件下的drivers/media/usb/uvc/uvc_driver.c
找到结构体uvc_ids(滑到文件最后再往上一点)
输入以下内容【替换自己的PID、VID】
/* 自己添加的摄像头id信息VID是0x12d1,PID是0x4321*/{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE| USB_DEVICE_ID_MATCH_INT_INFO,.idVendor = 0x12d1,.idProduct = 0x4321,.bInterfaceClass = USB_CLASS_VIDEO,.bInterfaceSubClass = 1,.bInterfaceProtocol = 0,.driver_info = UVC_QUIRK_RESTRICT_FRAME_RATE },
三、修改、编译设备树
把下面的注释放开,注释其他LCD节点(本人使用的正点原子4.3寸显示屏)
make dtbs
四、编译替换内核
make zImage
五、网络启动
将编译好的设备树和内核镜像拷贝到网络加载文件夹下面
六、查看USB摄像头挂载
1.进入根文件系统,插入摄像头、出现以下内容说明挂载成功
2.输入ls /dev/video*
参考当前usb挂载的是多少:注意video0是imx6ull原厂自带的,不能使用,这里我们新插入的是video1设备
3.更改程序源码:
运行在电脑端:/dev/video0
运行在ARM端:/dev/video1
七、运行程序
1.电脑端运行测试:
2.板子端运行测试:
参考:
https://www.bilibili.com/video/BV1QN4y1R7H5/?spm_id_from=333.337.search-card.all.click