透过 QEMU 初步体验龙架构
发布日期:2022-09-17
QEMU、GCC 上游最近正式宣布支持龙架构,它是龙芯中科基于 MIPS 国产自主研发的指令集,也在某程度上受到 RISC-V 启发:
- QEMU 7.1.0+
- GCC 12.1.0+
据说上游 Linux 内核至 5.19 起也初步支持龙架构(源:LoongArch CPU Support Merged For Linux 5.19 - But It Won’t Work For A Booting System Yet - Phoronix),可是很遗憾,这初步支持并不足以在龙架构上启动一个完整的 Linux 系统。
这代表着您即便没有购买龙芯 SoC 也可以透过 QEMU 用户空间模拟器 有限度地体验龙架构,这也正是本文章的焦点。
先决条件
您必须熟悉 Linux 操作。本文章中的说明及命令适用于 Ubuntu 22.04。这并不代表您不能使用别的 Linux 发行版完成该文章所描述的操作,但您极有可能需要因应您的发行版调整您所输入的命令。本文章的作者将不会对您因误操作损坏系统承担任何责任。
为免对您日常使用的系统造成破坏,建议您在新建的 Ubuntu 22.04 虚拟机内进行相关操作。当然,如果您的操作系统不是 Linux(如 Windows、macOS)或您使用的 UOS 系统禁用了开发者模式,这或许是您唯一可行的选项。
事前准备
因为 QEMU、GCC 也是最近才正式支持龙架构,所以您并不能透过 Ubuntu 默认的仓库直接下载安装相应的软件包。因此,我们需要获取并自行编译最新稳定版本 QEMU、GCC 的源代码。
下载 QEMU、GCC 前,我们先建好一些目录:
$ mkdir -p $HOME/opt/qemu $HOME/opt/cross $HOME/src
把工作目录设置为 $HOME/src
:
$ pushd $HOME/src
我们将把 QEMU 安装在 $HOME/opt/qemu
下,GCC 在 $HOME/opt/cross
下,把源代码存放在 $HOME/src
下。当然,您也可以选择别的目录。
QEMU
参考文章:Hosts/Linux - QEMU、GCC Cross-Compiler - OSDev Wiki
截至 2022-09-17,最新的 QEMU 版本是 7.1.0,因此我们以 QEMU 7.1.0 为准。
更新仓库元数据:
$ sudo apt update
下载编译 QEMU 所需的依赖包:
$ sudo apt install -y build-essential \
git \
libglib2.0-dev \
libfdt-dev \
libpixman-1-dev \
zlib1g-dev \
ninja-build
从 QEMU 官方网站下载 7.1.0 版本源代码:
$ wget https://download.qemu.org/qemu-7.1.0.tar.xz
解压缩:
$ tar xvf qemu-7.1.0.tar.xz
创建一个编译用的新目录 build-qemu
:
$ mkdir build-qemu/
进去:
$ pushd build-qemu/
出口环境变量:
$ export PREFIX="$HOME/opt/qemu"
$ export TARGET_LIST="loonga