使用 QEMU 搭建 RISC-v 开发环境
RISC-V 是近年来新兴起的一种开源的精简指令集处理器架构,QEMU 则是一款开源的计算机模拟器,可以帮助我们快速的搭建一个 RISC-V 的开发环境。
安装 QEMU
参考 Archlinux Wiki,我们需要安装 qemu-emulators-full
和 qemu-base
软件包。
1 | sudo pacman -S qemu-base qemu-emulators-full |
安装 RISC-V
获取 RISC-V 镜像
Debian 团队和 Ubuntu 团队都提供了对应系统的 RISC-V 镜像,笔者这里采用了 Debian 的镜像。
1 | mkdir debian-rv64 && cd debian-rv64 |
获取 OpenSBI 和 U-Boot 二进制文件
OpenSBI 用于将 RISC-V 平台在 M-Mode 和 S-Mode 中切换,对于 RISC-V 系统的具体的启动模式和流程本文不再赘述,读者可参考 An Introduction to RISC-V Boot flow: Overview, Blob vs Blobfree standards 这篇文章。OpenSBI 已经包含在了 qemu-emulators-full
软件包中,位于 /usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.bin
。
U-Boot 则是一款开源的启动引导器(Bootloader),可用于多种系统架构的引导,AUR 中已经提供了相关的二进制包 u-boot-qemu-bin
,安装完成后,可以在 /usr/share/u-boot-qemu-bin/qemu-riscv64_smode
中找到 uboot.elf
,将该文件拷贝到当前目录中。
1 | sudo cp /usr/share/u-boot-qemu-bin/qemu-riscv64_smode/uboot.elf . |
创建备份镜像
笔者建议给当前的系统创建一个 Overlay 镜像以便于在系统出错时快速恢复初始状态。
1 | qemu-img create -o backing_file=image.qcow2,backing_fmt=qcow2 -f qcow2 overlay.qcow2 |
启动虚拟机
可以通过下列命令启动虚拟机,建议保存为 .sh
文件。
1 | qemu-system-riscv64 \ |
这里我们给虚拟机分配了 8G 内存,并转发了 22 端口到宿主机的 62222 端口以便于 SSH 访问。这个系统镜像可以使用 root/root 或者 debian/debian 登录。
至此,RISC-V 的开发环境便搭建完成了。
安装 neofetch
apt 安装即可
1 | apt update |