26.6 在昉·星光 2 开发板(RISC-V)上安装 OpenBSD

RISC-V 是一种基于精简指令集(RISC)原则的开源指令集架构,其诞生地与 FreeBSD 相同:加州大学伯克利分校。RISC-V 也使用 BSD 授权协议。有人认为它可能成为未来处理器的主流架构。FreeBSD 是世界上第一款支持 RISC-V 的开源操作系统。

随着开源指令集架构 RISC-V 的发展,OpenBSD 也逐步扩展了对该架构的支持,为嵌入式与开源硬件领域提供了安全可靠的操作系统选择。

本节介绍如何在昉·星光 2 开发板上安装 OpenBSD 系统。

本文基于 StarFive VisionFive 2 与 OpenBSD 7.4。

在开始之前,建议读者先了解 RISC-V 开发板的基本启动流程。相关文档可参考 https://doc.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdfarrow-up-right

StarFive VisionFive 2

关键概念说明

在开始安装前,了解以下关键概念有助于理解安装流程:

  • OpenSBI(Open Source Supervisor Binary Interface):RISC-V 架构的固件实现,提供 SBI 接口与底层运行时支持,为操作系统提供标准化调用环境。

  • 设备树(DTB,Device Tree Blob):描述硬件拓扑与配置的二进制数据结构,由引导程序传递给操作系统用于硬件识别。

  • U-Boot:通用引导加载程序,负责加载操作系统内核、设备树及相关启动参数并启动系统。

RISC-V 的启动方式不同于树莓派。树莓派通常从存储介质中的引导分区加载启动文件,而在许多 RISC-V 开发板上,系统启动依赖预先写入 SPI Flash 等非易失性存储中的固件与引导程序。通常需要将 OpenSBI 和 U-Boot 刷入闪存中,由 OpenSBI 提供底层运行时支持并将控制权交给 U-Boot,再由 U-Boot 加载设备树(DTB)和操作系统内核以完成系统启动。OpenSBI 本身也位于闪存中,并可独立升级。

安装前准备

在开始安装前,需要准备好以下硬件和软件环境。

  • 一块支持 OpenBSD 的 RISC-V 开发板,本文以 StarFive VisionFive 2 为例

  • 一张 SD 卡,至少 8 GB

  • 一根 USB TTL 串口线,本文使用 FT232 芯片(推荐使用 CH340 芯片以获得更好兼容性)

  • 通过串口线与 StarFive VisionFive 2 交互的计算机

  • 一台 tftp 服务器(可以是虚拟机)

OpenBSD 镜像准备

准备工作完成后,需要下载 OpenBSD 镜像文件和相关设备树文件。

从 OpenBSD 官方网站下载镜像文件 miniroot74.img

https://marc.info/?l=openbsd-misc&m=169046816826966&q=p3arrow-up-right 下载 jh7110-starfive-visionfive-2-v1.3b.dtb 并上传到 tftp 服务器。

miniroot74.img 烧录到 SD 卡中。本文使用 BalenaEtcherarrow-up-right 工具进行操作。

启动 VisionFive 2,并在串口输出显示 Hit any key to stop autoboot 时,在电脑的串口软件上按任意键,只有成功中断自动启动(autoboot)才能进入 U-Boot 环境。

串口输出如下:

通过 U-Boot 设置 IP 并加载 DTB 文件

成功进入 U-Boot 后,需要配置网络并加载必要的文件来启动 OpenBSD。

在 U-Boot 环境下执行以下操作:

该镜像从内存启动,可直接覆盖安装。安装过程与标准 OpenBSD 安装相同,关于安装的详细说明请参见其他章节。

如果重启后出现提示 root device:,请重新从 TFTP 服务器下载相关文件。

OpenBSD 7.4 on StarFive VisionFive 2

在 OpenBSD 中启用性能模式

系统安装完成后,用户可以根据需要调整系统性能设置,以获得更好的使用体验。

如果不进行设置,系统默认 hw.cpuspeed 参数为 750(这意味着 CPU 的默认运行频率为 750 MHz)。

临时设置硬件性能策略为高性能模式:

将该设置写入系统配置文件以在开机时生效(如果文件不存在,请自行创建):

验证设置是否生效:

参考教程

课后习题

  1. 在 StarFive VisionFive 2 开发板上安装 OpenBSD 7.4,配置性能模式并测试 CPU 在不同频率下的基准性能,分析 OpenBSD 对 RISC-V 架构的支持现状及其限制。

  2. 查找 OpenBSD 源码中与 JH7110 芯片相关的设备驱动代码,分析其实现方式,并尝试为 VisionFive 2 添加一个新的外设驱动框架。

  3. 修改 VisionFive 2 的启动流程,编写自动化脚本替代手动 TFTP 加载步骤。

最后更新于