这篇文章创建于 2023-03-27 日,距今已有 392 天,请注意甄别内容是否已经过时!
出于某些原因,需要用到 RISC-V 的 CPU 进行测试,手头没有,加之钱包紧张,一时只能靠 QEMU 救急。

此时某位友人提出他那边有一块暂时吃灰的 StarFive VisionFive 2(以下简称 VF2),闻之即刻骑车出门创人。往返 15km,咱这个纸糊的身体也出了不少汗。总之,万分感谢。

开发板配置(官网表格):

specs

0. 系统安装 ~ basic installation.

由于某些需求,需要安装 openEuler 23.03 RISC-V preview 镜像。(下载链接

下载镜像后,用 zstd 解压:
zstd -d openEuler-23.03-V1-base-visionfive2-preview.img.zst
然后写入镜像,这点取决于你的操作系统,Windows 下我通常会使用 Rufus,当然用 Win32DiskImager 也行。至于 BalenaEtcher 那个空间占用巨大还是 Electron 写的东西,也行,就是没必要。

Linux 的话,直接 dd 写入即可,be like:
sudo dd if=openEuler-23.03-V1-base-visionfive2-preview.img of=/dev/sdb bs=1M status=progress
写入完成后,将存储卡插到板子上,上电开机。

1. 用 NVMe 硬盘启动 ~ 曲线救国。

由于 VF2 当前版本的 U-Boot 暂不支持从 NVMe 硬盘驱动,插存储卡/eMMC 仍然是必须的。但我们可以将 rootfs 安装到 NVMe 硬盘,存储卡仅存储引导必须的文件,大大提升使用体验,避免存储卡过早暴毙。
Fun fact: 存储卡 / U 盘用的都是 SSD 挑剩下的 NAND,基本上没好的,不要指望着它们寿命很长。
首先 SSH 连接进开发板,用户名 openeuler,密码 openEuler12#$

首先看看存储卡的分区布局:
[openeuler@openeuler-riscv64 ~]$ sudo fdisk -l /dev/mmcblk1
GPT PMBR size mismatch (16777215 != 125370367) will be corrected by write.
Disk /dev/mmcblk1: 59.78 GiB, 64189628416 bytes, 125370368 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B739D020-6A5B-429F-8509-DCA9567D7E11

Device           Start      End  Sectors  Size Type
/dev/mmcblk1p1      34     4129     4096    2M Linux filesystem
/dev/mmcblk1p2    4130    12321     8192    4M Linux filesystem
/dev/mmcblk1p3   12322  1060897  1048576  512M EFI System
/dev/mmcblk1p4 1060898 16777182 15716285  7.5G unknown
看上去共有四个分区,第四个最大的显然就是 rootfs,前三个都是引导所需要的。

那么下一步对 NVMe 硬盘进行重新分区。
  • 使用 cfdiskfdisk 等工具删除硬盘上所有分区。
  • 重新创建一个 Linux 分区。
  • 对新创建的分区进行格式化,sudo mkfs.ext4 /dev/nvme0n1p1
接下来将 rootfs 的内容写入 NVMe 硬盘,并对分区进行扩容。由于 VF2 对存储卡的 IO 速度较慢,耐心等待写入完成。当然,如果有 NVMe 硬盘盒的话,在 PC 上提前写入也是可以的。
sudo dd if=/dev/mmcblk1p4 of=/dev/nvme0n1p1 bs=1M status=progress
sudo resize2fs /dev/nvme0n1p1
然后需要对 extlinux 参数进行修改:
sudo sed -i 's/mmcblk1p4/nvme0n1p1/g' extlinux.conf
至此,所有准备工作已经完成。可以放心 sudo reboot 了。重启后,开发板将会从 NVMe 硬盘加载 rootfs

2. 简单性能测试

时间有限,暂时只测试了 GeekBench 5 Beta 的(测试结果),单核心 81,多核心 279。这个性能,高情商点说,未来可期。

3. 整板功耗

使用维简 C0+ 测得。

待机状态、安装了一块 NVMe 硬盘(Kingspec NE-128 128G,主控 SMI 2263XT,颗粒 Intel B16A *2)的情况下:
待机空载

四个核心满载跑编译的情况下:
满载

满载功率基本上很难超过 7W,还算节能,而且 SoC 温度很低,散热片完全不烫手。

其他内容,以后再来写吧

TBD: USB-TTL 调试、系统测试(oErv 23.03)

以及,我暂且放一张图在这里镇场:

泥头车!

标签: GNU/Linux, SBC, openEuler, RISC-V

添加新评论