当前位置: 首页 > 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
第一次登陆会提示修改密码
在这里插入图片描述

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

相关文章:

  • 微电网系列之微电网的运行控制
  • Python 中设置布尔值参数为 True 来启用验证
  • Unity3D仿星露谷物语开发67之创建新的NPC
  • 【工具教程】识别PDF中文字内容,批量识别文字并保存到Excel表格中的操作步骤和方法
  • 机器学习流量识别(pytorch+NSL-KDD+多分类建模)
  • 信创 CDC 实战|国产数据库的数据高速通道:OceanBase 实时入仓 StarRocks
  • vue3 el-select @change (val) 多参数传值操作
  • KVM -- 虚拟化技术
  • DDoS防护体系构建——从基础限速到智能调度
  • phpstudy无法启动apache,80端口被占用,完美解决
  • phpstudy无法启动mysql,一启动就关闭,完美解决
  • python+uniapp基于微信小程序的高校二手商品交易系统
  • .NET 4.7中使用NLog记录日志到数据库表
  • 上海人工智能实验室明珠湖会议首开,解答AI前沿疑问,推进科学智能
  • python自助棋牌室管理系统
  • AWS EC2使用SSM会话管理器连接
  • Rust 项目文档生成之旅:cargo doc
  • 伸缩线充电宝推荐丨倍思灵动充45W突破移动界限!
  • GDI绘制
  • 如何轻松地将音乐从 iPhone 传输到 Mac?
  • 合并两个有序链表C++
  • 深入理解XGBoost(何龙 著)学习笔记(五)
  • 网络编程简介与Netty实战:从入门到高性能Echo服务器
  • 6、ZYNQ PL UART串口(一)
  • 【JS-4.1-DOM获取元素操作】深入理解DOM操作:高效获取页面元素的方法与实践
  • WebGL图形学总结(二)
  • Python开发中虚拟环境的意义
  • 零基础入门PCB设计 一实践项目篇 第四章(STM32开发板PCB设计)
  • MAC环境安装Appium+JAVA
  • Supervisor进程管理