Stratovirt 的 RISC-V 虚拟化支持(一):环境配置

admin 2024年12月23日10:59:41评论26 views字数 2345阅读7分49秒阅读模式

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 虚拟化支持(一):环境配置

原文始发于微信公众号(泰晓科技):Stratovirt 的 RISC-V 虚拟化支持(一):环境配置

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月23日10:59:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Stratovirt 的 RISC-V 虚拟化支持(一):环境配置https://cn-sec.com/archives/3540813.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息