源贴:https://mp.weixin.qq.com/s/6hy8b4Mk1XKdE-KPbpFKlQ
VisionFive 2是全球首款集成3D GPU的高性能量产RISC-V 单板计算机 。与上一代相比,VisionFive 2全面升级,在处理器工作频率、多媒体处理能力、可扩展性等方面都有显着提升。优越的性能和合理的价格使VisionFive 2成为有史以来性价比最高的RISC-V开发板。
1.简单开箱和Debian新手指南
感谢电子发烧友平台组织本次试用活动,感谢赛昉科技提供的VisionFive2开发板。
本文首先放两张开箱图,然后分别介绍Debian系统系统安装和调整、软件源更新、常用软件安装,添加用户以及SSH登录。其中,系统安装和调整部分,包括串口登录、查看硬件和系统信息、扩展分区和文件系统、联网查看IP地址、设置时区和时间。软件源更新部分,包括apt update报错ESPKEYSIG的解决、更换国内软件源、找到最快的软件源。常用软件包安装部分,包括温度监控、图形化性能监控、常用开发工具 软件的安装。添加用户和SSH登录部分,包括添加用户、添加sudo权限、允许root用户通过SSH登录。
一、简单开箱
1.1 包装和外观
包装盒外观挺好看:
打开包装盒,里面看起来也很精致:
1.2 硬件简介
开发板核心元器件:
- CPU:惊鸿7110 RISC-V 四核64位RV64GC,2 MB二级缓存,最高频率1.5 GHz
- GPU:Imagination IMG BXE-4-32 MC1,最高频率 600MHz
- RAM:4GB,另外还有2GB和8GB版本
- 存储:16MB SPI Flash,用于存储固件;另外还有Micro SD卡槽和eMMC插座;
2.使用nginx、ffmpeg和VLC搭建简单视频直播系统
本文将介绍——如何在VisonFive2开发板上使用nginx和http-flv模块实现视频流转发、如何使用ffmpeg推流,以及如何在PC上使用VLC播放器查看视频流的画面。本文首先介绍如何通过源码编译并安装nginx和http-flv模块,然后介绍如何使用ffmpeg推流,最后介绍如何在PC上使用VLC播放器查看视频流中的画面。在本文介绍的实验中,nginx及http-flv模块作为视频流服务器,ffmpeg作为视频流推送端,VLC作为视频流播放端,三者形成了一个简单的视频直播系统。
一、准备工作
1.1 硬件准备
开始本文的实验之前,需要准备的硬件有:
- VisionFive2开发板
- USB摄像头
- 路由器
- PC
- 网线
1.2 软件准备
PC上准备好VLC播放器,用于播放视频流,可以从VLC官网下载:官方下载:VLC media player,最棒的开源播放器 - VideoLAN
另外,需要在VisionFive2开发板上准备一些软件:
- 编译工具链,安装命令:sudo apt install build-essential g++ git make
- ffmpeg命令行工具,安装命令:sudo apt install ffmpeg
- nginx依赖openssl库,安装命令:sudo apt install libssl-dev
开放板上的其他软件,可以用命令行安装。
…
结果演示:
3.在 VisionFive2 上安装ROS2 humble(1)
ROS(Robot Operating System)是一种用于编写机器人软件的灵活框架。它是一个工具(tools)、库(libraries)和约定(conventions)的集合,旨在简化在各种机器人平台上创建复杂而健壮的机器人行为的任务。
ROS2 humble 是最新的 LTS 版本,官方发布在 Ubuntu 22.04 上,目前 openEuler ROS sig 已经将 ROS2 humble 带到 openEuler 22.03 LTS 上,并进一步尝试了对于 RISC-V 架构的支持,目前在 RISC-V 可以安装的包有 900+ 个,详细列表请查看附件中的 packages.list.
现在在 openEuler RISC-V 2203 上已经可以使用 dnf 来安装 ros 相关软件包。
一、系统准备
目前 openEuler RISC-V 仅在 2203 版本提供了 ROS2 humble 的支持,可以参考以下文章在 VisonFive2 上安装 openEuler RISC-V 2203:
- 在 VisionFive2上安装 openEuler RISC-V 2203 操作系统
- 在 VisionFive2 上如何更快的向 nvme 硬盘安装操作系统
- 从 nvme 磁盘启动 VisionFive2 并对磁盘分区扩容
二、安装
修改软件源,复制 ROS.repo (见附件))到 /etc/yum.repos.d/ROS.repo,或者 执行以下命令:
bash -c 'cat << EOF > /etc/yum.repos.d/ROS.repo
[openEulerROS-humble]
name=openEulerROS-humble
baseurl=http://123.60.74.95:3389/home:/Z572:/ros/openEuler_22.03_22.03/
enabled=1
gpgcheck=0
EOF'
(左右移动查看全部内容)
手动安装尚未推送到源里的依赖:
dnf install -y \
http://123.60.74.95:3389/openEuler:/22.03:/Epol/22.03/riscv64/glog-0.3.5-1.oe2203.riscv64.rpm \
http://123.60.74.95:3389/openEuler:/22.03:/Epol/22.03/riscv64/glog-devel-0.3.5-1.oe2203.riscv64.rpm \
http://123.60.74.95:3389/openEuler:/22.03/22.03/riscv64/suitesparse-5.10.1-2.oe2203.riscv64.rpm \
http://123.60.74.95:3389/openEuler:/22.03/22.03/riscv64/suitesparse-devel-5.10.1-2.oe2203.riscv64.rpm
(左右移动查看全部内容)
在 VisionFive2 上体验 ROS2 humble(2)
4.利用VF2部署一个网络摄像头
本来今天想下载编译openWRT,后来发现tf卡空间分配问题,明天再调整吧,看了看桌上的USB摄像头,今天晚上就你出场了。
一开始我是犹豫的,因为RISC-V的生态,不一定能部署的上相关软件,但是JH7110,加上Imagination的GPU,再加上Debian OS,想不出会有什么不兼容的场景,最大风险可能来自CPU,有的话应该都能解决掉,那就上吧。
软件环境、源码下载、编译和安装、服务启动(本部分小编略写,请点击阅读全文查看)
网络摄像头测试
(一)在线视频查看
(二)取一张图,取一张图的URL为`IP:8080?action=snapshot,直接给自己照相:
一些体会
全程下来无错误,整个软件安装非常顺利,本以为会出现的各种小问题一个都没。
JH7110 CPU功能强大,之前在H616上也编译过mjpg-streamer,耗时跟VF2完全不同,在VF2上简直飞一般编译安装。
GPU(Imagination BXE-4-32 GPU)还没有测试,按理来说Imagination的应该兼容性和性能不会有什么大问题,下次有时间可以测试下。
5.基于昉·星光2的openWRT
烧写、配置和测试
自从上一篇玩多媒体的文章后,一直想在VF2的Imagination BXE-4-32 GPU上搞点小事情来,在最新的Debian OS上编译好openCV后,正兴致勃勃的计划搞点猫猫狗狗识别demo,连haarcascade数据都准备好了,突然听到前方探路说图像不能显示,再三确认后答复依旧,遂放弃这一打算。这几天正打算去社区官网下个源码,基于visionFive的BSP编个IMG来试试是否可行,毕竟VF2的BSP貌似还没有,如此周密的计划,想到这里,我不由得笑了~
刚好收到了Chloe小姐姐的mail,小姐姐在信中介绍了RV社区和openWRT社区的情报,说有大佬已经发布了openWRT的固件,哪涅?既然大佬有img,先上手操练起来。
一、固件烧写
RV社区IMG下载地址(适用visionfive2-v1.3B的openwrt固件—集成了10余种我日常使用的插件。- 昉·星光 2(中文论坛) - RVspace Forum)。
将IMG从weiyun上下载下来,利用U盘烧写工具,我比较喜欢和习惯Rufus,将openwrt-visionfive2-generic-visionfive2-ext4-sdcard.img烧进TF卡,然后上电启动。
U-Boot SPL 2021.10 (Feb 28 2023 - 21:44:53 +0800)
DDR version: dc2e84f0.
Trying to boot from SPI
OpenSBI v1.2
____ _____ ____ _____
/ __ \\ / ____| _ \\_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \\ / _ \\ '_ \\ \\___ \\| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\\____/| .__/ \\___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : StarFive VisionFive V2
Platform Features : medeleg
Platform HART Count : 5
Platform IPI Device : aclint-mswi
Platform Timer Device : aclint-mtimer @ 4000000Hz
Platform Console Device : uart8250
Platform HSM Device : jh7110-hsm
Platform PMU Device : ---
Platform Reboot Device : pm-reset
Platform Shutdown Device : pm-reset
Firmware Base : 0x40000000
Firmware Size : 292 KB
Runtime SBI Version : 1.0
Domain0 Name : root
Domain0 Boot HART : 1
Domain0 HARTs : 0*,1*,2*,3*,4*
Domain0 Region00 : 0x0000000002000000-0x000000000200ffff (I)
Domain0 Region01 : 0x0000000040000000-0x000000004007ffff ()
Domain0 Region02 : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address : 0x0000000040200000
Domain0 Next Arg1 : 0x0000000042200000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Boot HART ID : 1
Boot HART Domain : root
Boot HART Priv Version : v1.11
Boot HART Base ISA : rv64imafdcbx
Boot HART ISA Extensions : none
Boot HART PMP Count : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count : 2
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2021.10 (Feb 28 2023 - 21:44:53 +0800), Build: jenkins-VF2_515_Branch_SDK_Release-31
CPU: rv64imacu
Model: StarFive VisionFive V2
DRAM: 4 GiB
MMC: sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
StarFive EEPROM format v2
(左右移动查看全部内容)
看看系统信息:
root@OpenWrt:/# uname -a
Linux OpenWrt 6.1.35 #0 SMP Fri Jun 30 12:46:49 2023 riscv64 GNU/Linux
root@OpenWrt:/#
(左右移动查看全部内容)
二、网络配置
主要思路是先把VF2网络配通,其他小功能可以直接在openWRT的网页管理侧去配置。