UVC USB Video Class 是一种为USB视频捕获设备定义的协议标准
通过Petalinux配置Linux内核和设备树、修改内核驱动文件就可以驱动UVC摄像头。
准备工作
1、将USB摄像头插入电脑,查看属性-->详细信息-->硬件Id,获取摄像头的VID和PID
2、 准备内核源文件
准备硬件设备需要的驱动文件,驱动文件一般也放在kernel里
3、进入Ubuntu Linux系统用户家目录,开启终端,创建word目录,在word目录里面添加linux-4.14子目录
命令: mkdir -p ~/work/linux-4.14
4、将准备好的内核文件,复制到Ubuntu Linux系统中,并解压到上一步创建的work/linux-4.14目录里
笔者把内核文件复制到Ubuntu系统/home/fangzeli/linux/kernel目录下,/home/fangzeli是用户根目录,/linux/kernel是自己创建的目录
内核源文件用的是正点原子提供的alientek-linux-4.14.0-xlnx-v2018.3
5、进入/home/fangzeli/linux/kernel目录,并打开终端,将内核文件解压到work/linux-4.14目录里
命令:tar -xzf alientek-linux-4.14.0-xlnx-v2018.3.tar.gz -C ~/work/linux-4.14/
6、修改内核代码中的驱动文件
在目录/home/fangzeli/work/linux-4.14/drivers/media/usb/uvc中找到uvc_driver.c文件,用gedit打开并编辑,添加红框中的内容
7、将U-Boot文件复制到/home/fangzeli/linux/uboot目录下,同时也在第3步中的work目录添加uboot-2018.01子目录
8、将uboot文件解压到 /home/fangzeli/work/uboot-2018.01
命令:tar -xzf alientek-uboot-2018.01-xlnx-v2018.3.tar.gz -C ~/work/uboot-2018.01/
9、创建petalinux工程
9.1创建Vivado硬件平台
在用户家目录下创建一个petalinux目录,在petalinux目录下创建一个hdf子目录;
将你用Vivado开发的工程中的.sdk文件夹复制到hdf子目录
9.2设置Petalinux环境变量
在petalinux目录下打开终端, 输入 source /opt/pkg/petalinux/2018.3/settings.sh
9.3创建Petalinux工程
在petalinux目录下打开终端,创建一个工程,本人创建的工程名为WEDU-ZYNQ
命令:petalinux-create -t project --template zynq -n WEDU-ZYNQ
9.4配置Petalinux工程
进入WEDU-ZYNQ工程目录,将hdf硬件描述文件导入到petalinux建立的WEDU-ZYNQ工程中,petalinux工具会解析hdf文件并弹出配置窗口
选择内核来源
选择U-Boot来源
配置linux内核,选择那些驱动需要使用
编译petalinux工程 petalinux-build
制作BOOT.BIN启动文件并复制到SD卡