3.8 使用 QEMU 在 x86 架构 Windows 主机上安装 RISC-V 架构的 FreeBSD

QEMU 是一款通过纯软件进行模拟的开源虚拟机监视器,支持多种处理器体系结构的模拟。

本文环境基于 Windows 11 24H2(宿主机,x86-64 架构)、FreeBSD 14.2-RELEASE(虚拟机,RISC-V 架构)以及 QEMU 20241220。

QEMU

QEMU 下载地址:

QEMU Binaries for Windows (64 bit)arrow-up-right 备份arrow-up-right,请下载列表中最新的安装程序。写作本文时,最新版本为 qemu-w64-setup-20241220.exe。大小为 174M。

下载后在 Windows 上安装 QEMU。

RISC-V FreeBSD 磁盘镜像

RISC-V FreeBSD 磁盘镜像(以 FreeBSD 14.2 RELEASE 为例):

https://download.freebsd.org/releases/VM-IMAGES/14.2-RELEASE/riscv64/Latest/FreeBSD-14.2-RELEASE-riscv-riscv64-zfs.raw.xzarrow-up-right

下载后解压缩备用。

OpenSBI

在 FreeBSD 系统中获取 OpenSBI(RISC-V Open Source Supervisor Binary Interface),其功能类似于启动固件。

安装 OpenSBI

使用 pkg 安装

或者使用 Ports 安装:

提取 fw_jump.elf

提取 fw_jump.elf 到 Windows 下备用。

U-Boot

在 FreeBSD 系统中获取 U-Boot,功能上类似于 GRUB 2。

安装 U-Boot

使用 pkg 安装

或者使用 Ports 安装:

提取 u-boot.bin 文件

提取 u-boot.bin 到 Windows 下备用。

配置 Qemu

在桌面新建一个文本文件 qemu.bat,写入

参数说明:

  • ^ 在 Windows 批处理脚本中用作续行符,可将一条长命令拆成多行书写。

  • smp 为 CPU 数量

  • cpu 指定 CPU 架构

  • m 指定内存大小

  • hostfwd=tcp::8022-:22 将宿主机的 8022 端口转发至虚拟机的 22 端口(SSH)

以上示例中,请将 C:\Users\ykla\Desktop\ 替换为你自己的路径。

运行脚本即可。

Qemu 安装 FreeBSD

输入用户名 root 并回车即可登录,默认没有密码。

由于在 PowerShell 和 CMD 中运行都会产生各种乱码(比如 ee 命令,或按 TAB 键)。

但该镜像默认未配置 SSH 服务与普通用户,因此无法直接通过 SSH 连接。

创建普通用户(如没有)

先创建一个普通用户(注意加入 wheel 组):

配置 sshd 服务

配置 sshd 服务如下:

然后就可以在 Windows 上通过 ssh 连接了(IP 就是 localhost):

即可使用端口 8022(由文件 qemu.bat 指定)通过 SSH 连接到本地主机的 ykla 用户。

故障排除与未竟事宜

无法显示图形界面

待解决

参考文献

最后更新于