当前位置: 首页 > 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.lqws.cn/news/452143.html

相关文章:

  • Linux故障排查与性能优化实战经验
  • AI浪潮下的自媒体革命:智能体崛起与人类价值的重构
  • Qi无线充电:车载充电的便捷与安全之选
  • servlet前后端交互
  • C++设计模式
  • 在VTK中捕捉体绘制图像并实时图像处理
  • uniapp开发小程序,导出文件打开并保存,实现过程downloadFile下载,openDocument打开
  • 【Python】Excel表格操作:ISBN转条形码
  • React Native【实战范例】弹跳动画菜单导航
  • 学习threejs,三维汽车模拟器,场景有树、云、山等
  • Nginx-Ingress-Controller自定义端口实现TCP/UDP转发
  • 大数据系统架构实践(一):Zookeeper集群部署
  • 局域网投屏工具(将任何设备转换为计算机的辅助屏幕)Deskreen
  • LVS负载均衡群集:Nginx+Tomcat负载均衡群集
  • Lora训练
  • 项目管理利器:甘特图的全面解析与应用指南
  • 计算机网络八股第二期
  • net程序-Serilog 集成 SQL Server LocalDB 日志记录指南
  • 有方 N58 LTE Cat.1 模块联合 SD NAND 贴片式 TF 卡 MKDV1GIL-AST,打造 T-BOX 高性能解决方案
  • 如何在WordPress中添加导航菜单?
  • 基于 CNN-LSTM-GRU 架构的超音速导弹轨迹高级预测
  • Redis如何解决缓存击穿,缓存雪崩,缓存穿透
  • 技术革新赋能楼宇自控:物联网云计算推动应用前景深度拓展
  • 饼图:数据可视化的“切蛋糕”艺术
  • 搜索二叉数(c++)
  • 【Leetcode】字符串之二进制求和、字符串相乘
  • PCB板高速飞拍检测系统 助力电子制造自动化领域
  • idea中push拒绝,merge,rebase的区别
  • C++ 单例模式一种实现方式
  • Cesium、ThreeWebGL详解(二)渲染引擎向GPU传数据、性能优化、引擎对比