Corrector: TinyCorrect v0.2-rc2 - [spaces]
Author: Sunts [email protected]
Date: 2024/08/30
Revisor: Falcon [email protected]
Project: RISC-V Linux 内核剖析
Sponsor: PLCT Lab, ISCAS
本周继续连载 Stratovirt Risc-v 系列文章,记得收藏分享+关注,合集:https://tinylab.org/riscv-linux
零门槛转战 RISC-V + 嵌入式 Linux,跟上泰晓科技的 B 站公开课,备一支 RISC-V 实验箱走起:https://tinylab.org/tiny-riscv-box
Stratovirt 的 RISC-V 支持(一):环境配置
前言
StratoVirt 是一种基于 Linux 内核虚拟化(KVM)的开源轻量级虚拟化技术。Stratovirt 的运行环境必须要有 RISC-V 的 H 扩展以及在其之上运行的 Linux 提供 KVM 支持。本文采用 QEMU + Ubuntu 22.04 的环境。
准备 Ubuntu 镜像
打开终端,执行以下命令,下载镜像。
wget https://cdimage.ubuntu.com/releases/jammy/release/ubuntu-22.04.4-preinstalled-server-riscv64+unmatched.img.xz
解压缩系统镜像文件
xz -d ubuntu-22.04.4-preinstalled-server-riscv64+unmatched.img.xz
编译 QEMU
考虑到直接使用 apt 命令安装的 QEMU 可能不支持 RISC-V 虚拟化扩展。所以直接下载源码编译。
安装编译前所需工具
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 ninja-build
libglib2.0-dev libfdt-dev libpixman-1-dev
# 根据 python 版本调整版本号
sudo apt-get install python3.12-venv
QEMU 的 user 用户模式网络配置需要 libslirp 的支持
下载 libslirp 源码和编译所需工具
git clone https://gitlab.freedesktop.org/slirp/libslirp.git
sudo apt install meson
libslirp 编译,安装
meson build
ninja -C build install
下载 QEMU 源码
git clone https://github.com/qemu/qemu.git
编译 RV64 架构下的 QEMU:qemu-system-riscv64
cd qemu && ./configure --target-list=riscv64-softmmu --enable-slirp && make
用 QEMU 引导 Linux
安装 U-boot 和 Opensbi
sudo apt install u-boot-qemu opensbi
启动 Linux
./qemu/build/qemu-system-riscv64 -machine virt -nographic -m 8192 -smp 6 -bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.bin -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf -device virtio-net-device,netdev=eth0 -netdev user,id=eth0,hostfwd=tcp::6666-:22 -device virtio-rng-pci -drive file=./ubuntu-22.04.4-preinstalled-server-riscv64+unmatched.img,format=raw,if=virtio
登录到 Linux,系统会立即要求更改密码
# 默认用户名和密码
username: ubuntu
password: ubuntu
加载 kvm 模块,并验证
sudo modprobe kvm
ls /dev/
/dev 目录下观察到文件 kvm 即可。
RUST 环境安装
按照官方提供的命令直接安装最新的 RUST 即可。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
看到提示信息:Rust is installed now. Great!
即安装完成。
小结
环境配置过程中的源码下载或 RUST 安装等过程难免要从 github 等外网下载内容,请配置解决。
参考资料
-
QEMU 官方文档
首发地址:https://tinylab.org/stratovirt-riscv-part1
技术服务:https://tinylab.org/ruma.tech
左下角 阅读原文 可访问外链。都看到这里了,就随手在看+分享一下吧
原文始发于微信公众号(泰晓科技):Stratovirt 的 RISC-V 虚拟化支持(一):环境配置
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论