在QEMU User模式下测试龙芯新世界软件

轻量级龙芯新世界测试环境

Posted by wszqkzqk on June 18, 2023
本文字数:776

前言

本文主要讨论使用 QEMU User 模式下测试龙芯新世界软件的方法

笔者之前写过一篇使用QEMU配置龙芯新世界环境,那篇文章主要介绍了如何在完整的 QEMU 虚拟机中运行龙芯新世界的环境,但是这种方法的缺点是只能利用宿主机的 4 个核心,因此性能较低;而且,完整模拟的方法环境较重,不够简洁。

本文在此提供一种更加轻量、更能利用宿主机性能的方法。

环境配置

本方法的轻量级测试环境主要依赖于 QEMU User 模式,依靠 systemd-nspawnarch-chroot 的方法,结合 QEMU 提供的 binfmt,可以在 x86_64 主机上运行龙芯新世界的环境。

以 Arch Linux 为例,首先需要安装 QEMU User 的相关文件:

sudo pacman -S qemu-user-static-binfmt qemu-user-static-binfmt

下载有关的 rootfs,推荐到北京大学开源镜像站下载。

下载完成后,解压到一个目录,例如 ~/loongarch,然后执行:

sudo systemd-nspawn -aD ~/loongarch --machine archloong64 -U

这样就可以进入一个龙芯新世界环境的容器了。

存在问题

systemd-nspawn 下使用 sudo 会出现一些问题,例如 sudo pacman -S 会出现 sudo: effective uid is not 0, is sudo installed setuid root? 的错误,这是因为 systemd-nspawn 会将 sudo 的权限降低,因此在需要 root 权限时,应当直接登录 root 用户。

如果需要使用 sudo,可以使用 arch-chroot 的方法,首先需要安装 arch-install-scripts

sudo pacman -S arch-install-scripts

然后执行:

sudo arch-chroot ~/loongarch