Line 34: |
Line 34: |
| ===使用编译好的整体镜像更新NanoPi4系统=== | | ===使用编译好的整体镜像更新NanoPi4系统=== |
| | | |
− | * 下载系统镜像文件 | + | *下载系统镜像文件 |
| | | |
| 我们在friendlyelec-20190903版本的SD卡烧写镜像基础上,制作了支持VEYE摄像头模组的镜像。点击[https://pan.baidu.com/s/1sWrcfEOivjuQ7T7P5bVcng#list/path=%2Fveye_mipi%E8%B5%84%E6%96%99%2Fnanopim4image 链接]下载。 | | 我们在friendlyelec-20190903版本的SD卡烧写镜像基础上,制作了支持VEYE摄像头模组的镜像。点击[https://pan.baidu.com/s/1sWrcfEOivjuQ7T7P5bVcng#list/path=%2Fveye_mipi%E8%B5%84%E6%96%99%2Fnanopim4image 链接]下载。 |
| | | |
− | * 烧录镜像文件 | + | *烧录镜像文件 |
| | | |
− | 利用SD Card Formatter软件将micro SD卡格式化(格式化前有必要将需要的文件进行备份),将下载后的压缩文件解压为rk3399-sd-friendlydesktop-bionic-4.4-arm64-20200110.img。 | + | 利用SD Card Formatter软件将micro SD卡格式化(格式化前有必要将需要的文件进行备份),将下载后的压缩文件解压为rk3399-sd-friendlydesktop-bionic-4.4-arm64-20200112.img。 |
| | | |
| 使用win32diskimager软件将解压后的镜像文件写入micro SD卡。 | | 使用win32diskimager软件将解压后的镜像文件写入micro SD卡。 |
Line 51: |
Line 51: |
| ====开发环境准备==== | | ====开发环境准备==== |
| | | |
− | * 安装编译工具链 | + | *安装编译工具链 |
| | | |
| RK3399采用的是标准linaro编译工具链。参考[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4/zh#.E5.A6.82.E4.BD.95.E7.BC.96.E8.AF.91.E7.B3.BB.E7.BB.9F 链接]安装编译工具链。也可以参考Rockchip官方资料安装编译工具链。 | | RK3399采用的是标准linaro编译工具链。参考[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4/zh#.E5.A6.82.E4.BD.95.E7.BC.96.E8.AF.91.E7.B3.BB.E7.BB.9F 链接]安装编译工具链。也可以参考Rockchip官方资料安装编译工具链。 |
| | | |
− | * 下载kernel源码 | + | *下载kernel源码 |
| | | |
| 有三种方案进行kernel源码的获取。 | | 有三种方案进行kernel源码的获取。 |
| | | |
− | # 使用friendlyarm提供的linuxsdk-friendlyelec完整开发包。下载链接:http://download.friendlyarm.com/NanoPiM4<nowiki/>。 | + | #使用friendlyarm提供的linuxsdk-friendlyelec完整开发包。下载链接:http://download.friendlyarm.com/NanoPiM4<nowiki/>。 |
− | # 从friendlyarm的官方github获取。 | + | #从friendlyarm的官方github获取。 |
− | # 从rockchip的官方github获取。 | + | #从rockchip的官方github获取。 |
| | | |
| 我们采用第一种方案。 | | 我们采用第一种方案。 |
Line 69: |
Line 69: |
| <code>.repo/repo/repo sync -l</code> | | <code>.repo/repo/repo sync -l</code> |
| | | |
− | * 下载我们提供的驱动 | + | *下载我们提供的驱动 |
| | | |
| 从我们提供的github地址下载源码,下载链接:https://github.com/veyeimaging/rk3399_veye_dimaging_bsp<nowiki/>。 | | 从我们提供的github地址下载源码,下载链接:https://github.com/veyeimaging/rk3399_veye_dimaging_bsp<nowiki/>。 |
Line 80: |
Line 80: |
| 使用方法如下: | | 使用方法如下: |
| | | |
− | * 下载sd-fuse_rk3399 | + | *下载sd-fuse_rk3399 |
| | | |
| <code>git clone https://github.com/friendlyarm/sd-fuse_rk3399<nowiki/>.git</code> | | <code>git clone https://github.com/friendlyarm/sd-fuse_rk3399<nowiki/>.git</code> |
| | | |
− | * 下载friendlydesktop-arm64-images.tgz | + | *下载friendlydesktop-arm64-images.tgz |
| | | |
| 下载链接:http://download.friendlyarm.com/NanoPiM4<nowiki/>下,images-for-eflasher目录找到对应文件,下载。 | | 下载链接:http://download.friendlyarm.com/NanoPiM4<nowiki/>下,images-for-eflasher目录找到对应文件,下载。 |
Line 90: |
Line 90: |
| <code>tar -xzvf friendlydesktop-arm64-images.tgz -C sd-fuse_rk3399</code> | | <code>tar -xzvf friendlydesktop-arm64-images.tgz -C sd-fuse_rk3399</code> |
| | | |
− | * 替换文件和动态烧写 | + | *替换文件和动态烧写 |
| | | |
| <code>tar -xzvf rk3399_veye_dimaging_bsp/ubuntu/platform/friendlyarm_nanopi4/images/kernel.img.tar.gz -C ./sd-fuse_rk3399/friendlydesktop-arm64/</code> | | <code>tar -xzvf rk3399_veye_dimaging_bsp/ubuntu/platform/friendlyarm_nanopi4/images/kernel.img.tar.gz -C ./sd-fuse_rk3399/friendlydesktop-arm64/</code> |
Line 106: |
Line 106: |
| ====使用源码进行编译==== | | ====使用源码进行编译==== |
| | | |
− | * 将我们的驱动文件放到对应kernel目录下 | + | *将我们的驱动文件放到对应kernel目录下 |
| | | |
| <code>cp rk3399_veye_dimaging_bsp/ubuntu/drivers_source/VEYE-MIPI-327/veye327.c ~/linuxsdk-friendlyelec/kernel/drivers/media/i2c/</code> | | <code>cp rk3399_veye_dimaging_bsp/ubuntu/drivers_source/VEYE-MIPI-327/veye327.c ~/linuxsdk-friendlyelec/kernel/drivers/media/i2c/</code> |
Line 114: |
Line 114: |
| <code>cp rk3399_veye_dimaging_bsp/ubuntu/drivers_source/Kconfig ~/linuxsdk-friendlyelec/kernel/drivers/media/i2c/</code> | | <code>cp rk3399_veye_dimaging_bsp/ubuntu/drivers_source/Kconfig ~/linuxsdk-friendlyelec/kernel/drivers/media/i2c/</code> |
| | | |
− | * 增加编译选项 | + | *增加编译选项 |
| | | |
| cd <code>~/linuxsdk-friendlyelec/kernel</code> | | cd <code>~/linuxsdk-friendlyelec/kernel</code> |
Line 137: |
Line 137: |
| ===应用和测试=== | | ===应用和测试=== |
| | | |
| + | ====系统状态检测==== |
| + | 完成系统安装后,在板端执行以下命令来检测是否正确连接摄像头。 |
| + | |
| + | <code>dmesg | grep veye327</code> |
| + | |
| + | 应当有如下提示: |
| + | |
| + | <code>Detected VEYE06 sensor</code> |
| + | |
| + | ====视频流测试==== |
| + | |
| + | =====使用gstreamer===== |
| + | |
| + | ======使用gst-camera-veye.sh====== |
| + | 由于友善之臂官方提供的gst-camera.sh默认分辨率为720p,VEYE-MIPI-327不支持,我们提供了 修改版本的gst-camera-veye.sh。 |
| + | |
| + | 目录为: |
| + | |
| + | <code>rk3399_veye_dimaging_bsp/ubuntu/platform/friendlyarm_nanopi4/gst-camera-sh/</code> |
| + | |
| + | *视频预览1080p HD |
| + | |
| + | <code>./gst-camera-veye.sh -a preview</code> |
| + | |
| + | *视频录像1080p HD |
| + | |
| + | <code>./gst-camera-veye.sh --action video -output 1.ts</code> |
| + | |
| + | *抓拍图片 |
| + | |
| + | <code>./gst-camera-veye.sh -a photo -o 1.jpg</code> |
| + | |
| + | ======直接使用gst-launch-1.0====== |
| + | |
| + | *视频预览1080p HD |
| + | |
| + | <code>gst-launch-1.0 rkisp device=/dev/video1 io-mode=4 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! rkximagesink</code> |
| + | |
| + | *视频录像1080p HD |
| + | |
| + | <code>gst-launch-1.0 rkisp num-buffers=512 device=/dev/video0 io-mode=1 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! mpph264enc ! queue ! h264parse ! filesink location=/tmp/out.mp4 -e</code> |
| + | |
| + | *抓拍图片 |
| + | |
| + | <code>gst-launch-1.0 rkisp num-buffers=2 device=/dev/video0 io-mode=1 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=10/1 ! jpegenc ! multifilesink location="/tmp/isp-frame%d.jpg" -e</code> |
| + | |
| + | * 抓拍5张YUY2格式图片 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY8_2X8 --stream-mmap=3 --stream-skip=0 --stream-to=/tmp/cif.out --stream-count=5 --stream-poll</code> |
| + | |
| + | ====视频控制软件包的使用==== |
| + | 我们使用DRA(Directly Register Access)模式进行摄像头模组寄存器的配置。并且提供了一个shell脚本帮助使用。 |
| + | |
| + | <code>rk3399_veye_dimaging_bsp/ubuntu/i2c_cmd</code> |
| + | |
| + | *Ubuntu系统执行命令 |
| + | |
| + | <code>i2cdetect [value]</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |1 |
| + | |MIPI-CSI1 |
| + | |- |
| + | |2 |
| + | |MIPI-CSI2 |
| + | |}检测硬件连接是否正常,VEYE327摄像头模组的产品i2c地址为0x3b。 |
| + | |
| + | *确定硬件连接正常后,脚本命令如下,-b指明i2c bus: |
| + | |
| + | <code>veye_mipi_i2c_rk.sh</code> |
| + | |
| + | 视频控制接口软件包选项具体使用操作详见:[[VEYE-MIPI-290/327 i2c/zh|I2C脚本使用说明]]。 |
| ===参考资料=== | | ===参考资料=== |
| + | ====RK3399介绍==== |
| + | RK3399是[http://www.rock-chips.com/ 瑞芯微]出品的一款高性价比的运算平台SoC。在业内拥有广泛的应用。 |
| + | |
| + | RK3399的资料详细,开放度高,备受欢迎。 重点资料列举如下: |
| + | |
| + | [http://opensource.rock-chips.com/wiki_Main_Page wiki] |
| + | |
| + | [https://github.com/rockchip-linux/ github] |
| + | |
| + | [https://github.com/rockchip-linux/docs docs] |
| + | |
| + | 采用RK3399的主板也非常丰富,可供选择。各家软件均为基于瑞芯微资料制作,所以本文的内容也具有一定的普适性,不局限于NanoPi4系列。 |
| + | ====NanoPi M4介绍==== |
| + | NanoPi M4是[https://www.friendlyarm.com/ 友善之臂]出品的基于RK3399的开发板。在爱好者和行业内拥趸极多。其资料开放,易于开发,[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4/zh wiki]详细周到。 |
| + | |
| + | 友善之臂也维护了自己[https://github.com/friendlyarm github]。 |
| + | |
| + | 我们在开发的时候,采用的是友善之臂的[http://download.friendlyarm.com/NanoPiM4 官方定版版本],建议采用google drive云盘下载,速度更快。 |
| + | |
| + | Nanopi的4系列均采用RK3399芯片,本文均可适用。 |
| + | <br /> |