这篇文章是上游 RISC-V系列的一部分:
上游 RISC-V 经验:使用上游发行版运行 RISC-V 硬件VisionFive 2RISC-V 基准测试:VisionFive 2 与世界VisionFive 2:硬件BananaPi BPI-F3BananaPi BPI-F3:硬件和软件概述BananaPi BPI-F3: 引导上游 DebianBananaPi BPI-F3 硬件我最近收到了来自 RISC-V International 的几块 BananaPi BPI-F3 开发板,感谢他们的支持。经过一些软件实验后,这些开发板将提供给cfarm.net的所有用户。
该硬件之所以有趣,有两个原因:
它是第一个广泛使用的具有RISC-V 矢量扩展(RVV 1.0)的硬件它配备 8 个 CPU 核心和高达 16 GB 的 RAM,是 VisionFive 2 的两倍它具有完整的存储连接(NVMe、内部 eMMC、SD 卡),甚至还有一个 mini-PCIe 插槽,可用于连接 Wi-Fi 卡等与 VisionFive 2 相比,这是一个完全不同的 SoC:它使用SpacemiT K1 SoC,配备 1.60 GHz 的 SpacemiT X60 内核功耗和性能初始功率测量和性能基准看起来相当不错。总体而言,它与上一篇文章中测量的 VisionFive 2非常相似:
单线程性能与 VisionFive 2 大致相同(但 BPI-F3 的核心数量是其两倍)功耗也与 VisionFive 2 类似:空闲时约为 5 到 8 W,满载时约为 13 到 15 W。这些功率数字是在 230 V AC 侧测量的,这意味着它们非常依赖于电源适配器:请谨慎对待它们。CPU 频率调节功能有效,有 5 个步骤:614 MHz、819 MHz、1000 MHz、1.23 GHz、1.60 GHz。与 1.60 GHz 相比,614 MHz 空闲可节省约 1 W 的功率。同样,这与 VisionFive 2 非常相似。这些测量是在 Bianbu Linux 2.0rc6 上完成的,其供应商内核基于 Linux 6.6。
编辑 2024-10-03:实际上,CPU 频率调整对供应商内核有不良的副作用。当使用动态 cpupower 调节器(例如powersave或 )时,内核线程开始在一个核心上以 100% CPU 的速度旋转:这是意料之外的。当使用或 的schedutil固定频率时,一切都运行良好。performancepowersave
操作系统支持与往常一样,供应商提供的操作系统显然不能令人满意。他们提供了一个奇怪的“Bianbu Linux”发行版,这似乎是 Ubuntu 的高度定制版本。在尝试它时,我设法破坏了他们的 openssl 版本。他们还提供了 OpenWrt、Fedora、Armbian 的修改版本……
总的来说,我对他们的软件没有信心,所以我想在主板上运行标准的 Debian 操作系统。下一篇文章将重点介绍如何在主板上安装上游 Debian。
值得注意的是,第三方发行版开始支持该主板:Armbian (官方支持)、Gentoo(非官方)、 Irradium(之前从未听说过)。它们都使用供应商的 u-boot 和 Linux 内核,原因非常好(或者说非常糟糕),见下文。
Linux 内核支持不幸的是,我们距离 Linux 内核的上游支持还很远。
该供应商维护一个定制的 Linux 内核,有两个基本内核版本:基于 linux 6.1 的 bianbu 1.0和基于 linux 6.6 的 bianbu 2.0。这些内核本身基于SINOVOIP的内核,对 DTS 和 cpufreq 代码进行了细微更改。
所有源代码都可用,这很好,但它们并非基于上游内核 git 树,因此很难弄清楚它们做了哪些更改。我对 bianbu 2.0 内核进行了一些实验,代码似乎质量很差。例如,许多驱动程序在作为模块构建时完全无法构建,因此很可能从未以这种方式测试过它们。
在上游方面,社区已经发布了一些初始补丁,独立于供应商。截至目前,上游内核中尚未合并任何代码。希望在这方面能取得进展。
为 cfarm95 重建内核有人报告在供应商内核的cfarm95上使用矢量指令和信号时出现问题 。事实证明这是一个内核错误,最近已在上游修复,但供应商内核未包含此修复。
因此,我们现在正在基于供应商源代码 + 各种补丁为 cfarm95 构建自己的内核。构建过程在此处进行: https: //framagit.org/compile-farm/riscv64-kernel-build-bananapi-f3