前言
参考【参考 1】网页版 “Running 64- and 32-bit RISC-V Linux on QEMU”Running 64- and 32-bit RISC-V Linux on QEMUrisc-v-getting-started-guide.readthedocs.io【参考 2】"Github 上的 RISC-V GNU Compiler Toolchain 仓库"https://github.com/riscv/riscv-gnu-toolchaingithub.com
RISC-V 基金会为方便大家熟悉 RISC-V 生态,维护了一份入门手册 “RISC-V - Getting Started Guide”,即参考中的 【参考 1】,其中有一章 “Running 64- and 32-bit RISC-V Linux on QEMU” 介绍了如何从源码开始自行构建一个 Linux 系统(包含 32 位和 64 位版本)并将其在 QEMU 上运行。
但不知道是我的原因还是这份参考的原因,我在按照原文描述搭建过程中并没有成功,经过多番尝试和修改后,终于还是成功了,赶紧记录下来并分享给大家,如果您也遇到了类似搭建失败的问题,欢迎参考一下本文。但请注意本文仅供参考,并不保证在您的环境下一定是可以工作的,如果有问题欢迎指出。同时我提供这篇说明并不意味着我对官方原文指导的否定,至少在基本步骤上我还是主要参考了原文的描述。
另外两个备注一下:本文实验针对的是 RISC-V 64 位的版本,32 位的情况同学感兴趣可以自己尝试。
本文主要侧重步骤描述,因此有些操作的 background 图省事陈述的并不够详细,感兴趣的同学请自行研究。
0. 环境准备
本次实验基于 Ubuntu 20.04 LTS
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal
提前需要安装的软件如下:
$ sudo apt install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev \
gawk build-essential bison flex texinfo gperf libtool patchutils bc \
zlib1g-dev libexpat-dev git \
libglib2.0-dev libfdt-dev libpixman-1-dev \
libncurses5-dev libncursesw5-dev
然后建立一个工作目录 riscv64-linux,后面的操作都