当前位置: 首页 > news >正文

在x86下运行的Ubuntu系统上部署QEMU用于模拟RISC-V硬件环境

1.配置工作环境

sudo apt install gcc bison flex libncurses-dev ninja-build \pkg-config build-essential zlib1g-dev pkg-config libglib2.0-dev \binutils-dev libboost-all-dev autoconf libtool libssl-dev \libpixman-1-dev python-capstone virtualenv software-properties-common \libcap-ng-dev libattr1-devsudo apt install python3.8

2.下载RISC-V交叉编译器

下载地址:

https://toolchains.bootlin.com

建议选择stable版本,arch选择riscv64-lp64d,libc选择常用的glibc。

下载后解压,然后将bin目录加入PATH环境变量中。

3.下载编译QEMU

下载地址:

https://www.qemu.org/download/

建议选择稳定版本,下载后解压,然后make

wget https://download.qemu.org/qemu-8.0.3.tar.xz
tar xjvf qemu-8.0.3.tar.xz
cd qemu-8.0.3
./configure --enable-kvm --enable-virtfs
make

--enable-virtfs 用户虚拟机和宿主机之间共享文件

4.下载编译Linux kernel

Linux内核下载地址:

https://www.kernel.org/

选择稳定的版本,下载完后解压编译

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.125.tar.xz
tar xf linux-5.15.125.tar.xz
cd linux-5.15.125export ARCH=riscv
export CROSS_COMPILE=riscv64-linux-make defconfig
make -j8

编译成功后,在arch/riscv/boot下生成Image:

 5.使用buildroot制作rootfs

buildroot下载地址:

https://buildroot.org/download.html

选择稳定版本,下载后解压,然后进行buildroot配置

wget https://buildroot.org/downloads/buildroot-2023.02.3.tar.gz
tar xzvf buildroot-2023.02.3.tar.gz
cd buildroot-2023.02.3make menuconfig

选择 Target options ---> Target Architecture,然后选择RISCV;

选择 Filesystem images ---> ext2/3/4 root filesystem,勾选上;

最后保存退出,然后编译

make -j8

编译过程会花费比较长时间,编译完成后,生成文件在output/images目录下:

rootfs.ext2是我们需要用到的。

6.运行QEMU

将Image、rootfs.ext2拷贝到当前目录下,然后执行命令:

qemu-system-riscv64 -M virt -smp 4 \
-kernel Image -nographic \
-append "root=/dev/vda console=ttyS0" \
-drive file=rootfs.ext2,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-virtfs local,path=/home/lynxi/bin.liu,mount_tag=host0,security_model=passthrough,id=host0 \
-m size=8g,slots=16,maxmem=16g

 -smp 用于指定模拟的CPU核心数

-virtfs是用来挂载宿主机目录到qemu内部Linux系统,path后面填写的是宿主机目录地址

-m 用于设置内存大小

7.挂载宿主机目录

执行上述命令启动QEMU后,root账号登录Linux系统,然后执行mount命令挂载宿主机目录,用于文件共享

mkdir -p /mnt/sharedmount -t 9p -o trans=virtio,version=9p2000.L host0 /mnt/shared

8.退出QEMU

键盘按 ctrl+a,松开后按 x

参考资料:

手把手教你在QEMU上运行RISC-V Linux - 知乎

Running 64- and 32-bit RISC-V Linux on QEMU — RISC-V - Getting Started Guide

在QEMU虚拟机和宿主机之间传输文件_qemu共享文件夹_远小帅的博客-CSDN博客

http://www.lryc.cn/news/121351.html

相关文章:

  • 网络爬虫选择代理IP的标准
  • RxJava 复刻简版之三,map 多次中转数据
  • 06 Word2Vec模型(第一个专门做词向量的模型,CBOW和Skip-gram)
  • Axure RP9小白安装教程
  • 腾讯云CVM服务器2核2g1m带宽支持多少人访问?
  • 8.12学习笔记
  • 计算机体系中的不同的缓存存储层级说明
  • HCIP 链路聚合技术
  • 网页爬虫中常用代理IP主要有哪几种?
  • Js小数运算精度缺失的解决方法
  • 25 | 葡萄酒质量数据分析
  • 在 Windows 上安装 OpenCV – C++ / Python
  • 前后端交互开发模式yapi使用
  • Ajax同源策略及跨域问题
  • JavaScript:解构赋值【对象】
  • 微服务与Nacos概述-2
  • 解决MySQL与Redis缓存一致性的问题
  • 王道机组难题分析
  • 数学建模(一)前继概念
  • C# 随机法求解线性规划问题 蒙特卡洛
  • nginx文档合集
  • 什么是BFC?它有什么作用?如何创建BFC?
  • svn文章四:版本控制策略 - 穿越时光机:SVN版本控制进阶技巧
  • SpringBoot+Mybatis-Plus实现增删改查超详细步骤
  • Qt应用开发(基础篇)——拆分器窗口 QSplitter QSplitterHandle
  • 屏幕尺寸单位 px、em、rem区别
  • yo!这里是STL::list类简单模拟实现
  • 小程序商城开发制作
  • 并发编程面试题2
  • 关于eclipse导入部署具有增删改查的项目