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

QEMU学习之路(10)— RISCV64 virt 使用Ubuntu启动

QEMU学习之路(10)— RISCV64 virt 使用Ubuntu启动

一、前言

QEMU版本:7.0.0
参考:https://canonical-ubuntu-boards.readthedocs-hosted.com/en/latest/how-to/qemu-riscv/
安装依赖:

sudo apt update
sudo apt install opensbi qemu-system-misc u-boot-qemu

二、Ubuntu启动

1、下载镜像
从ubuntu官网下载预安装镜像

wget https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04.2-preinstalled-server-riscv64.img.xz

2、解压镜像

xz ubuntu-24.04.2-preinstalled-server-riscv64.img.xz

3、可选项,可以使用如下命令扩展磁盘大小(文件系统也会自动调整大小):

qemu-img resize -f raw ubuntu-24.04.2-preinstalled-server-riscv64.img +5G

4、使用如下命令启动

qemu-system-riscv64 \-machine virt -nographic -m 2048 -smp 4 \-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \-device virtio-net-device,netdev=eth0 -netdev user,id=eth0 \-device virtio-rng-pci \-drive file=ubuntu-24.04.2-preinstalled-server-riscv64.img,format=raw,if=virtio

三、更新Uboot

ubuntu-24.04.2镜像启动对u-boot版本有求,建议使用U-Boot 2024.01版本
1、获取uboot源码

git clone https://gitee.com/mirrors/u-boot.git -b v2024.01 u-boot_2024.01

2、设置环境变量

export CROSS_COMPILE=riscv64-linux-gnu-

3、配置编译选项

make qemu-riscv64_smode_defconfig

4、编译uboot

make -j $(nproc)

四、使用新uboot启动

使用如下命令启动

/home/william/project/qemu/qemu-7.0.0/build/opt/bin/qemu-system-riscv64                 \-machine virt -nographic -m 2048 -smp 4                                             \-kernel u-boot_2024.01/u-boot                                                       \-device virtio-net-device,netdev=eth0 -netdev user,id=eth0                          \-device virtio-rng-pci                                                              \-drive file=ubuntu-24.04.2-preinstalled-server-riscv64.img,format=raw,if=virtio

使用账户名ubuntu登陆,默认密码是ubuntu
第一次登陆会提示修改密码
在这里插入图片描述

相关文章:

  • c++set和pair的使用
  • 小白的进阶之路系列之十六----人工智能从初步到精通pytorch综合运用的讲解第九部分
  • docker mysql启动后时间慢8小时问题
  • 24. 开发者常用工具:抓包,弱网模拟,元素检查
  • Tkinter快速入门指南
  • DataWhale-零基础络网爬虫技术(二er数据的解析与提取)
  • 粗浅理解:为什么左旋右旋的组合反而收旋转矩阵影响
  • ajax中get和post的区别
  • 5.基于神经网络的时间序列预测
  • Git 命令全景图:从 clone 到 merge 的完整流程解析
  • 【时时三省】(C语言基础)善于利用指针
  • 统计一个区间内的素数并求和
  • 3D Gaussian Splatting算法安装与实测
  • android 渲染流水线中的两个重要阶段:swapBuffers 和 DrawFrames
  • 大模型Text2SQL之在CentOS上使用yum安装与使用MySQL
  • 【Golang学习】1-基于mysql增删改查
  • 工具:Autosar:DBC转ARXML
  • 《Go语言圣经》利用结构体和接口实现更优雅的Go错误处理
  • Linux之线程同步与互斥
  • Plotly图表全面使用指南 -- Displaying Figures in Python
  • 必须做网站等级保护/站长之家综合查询工具
  • 大连在哪儿地图/搜索引擎优化英文简称为
  • 上海企业vi设计/百度优化教程
  • 镇江疫情最新数据/百度移动排名优化软件
  • 开一家做网站的公司/百度搜索关键词排名优化技术
  • 手机网站模板 餐饮/关键词搜索热度查询