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

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.xdnf.cn/news/14521.html

相关文章:

  • 【C++】哈希表的实现(开放定址法)
  • 服务器手动安装并编译R环境库包:PROJ→RGDAL
  • C++ 11 智能指针 std::weak_ptr
  • 项目开发中途遇到困难的解决方案
  • RISC-V物联网关,支持鸿蒙,T-Thread实时系统
  • 关于Seata的一个小issue...
  • 【蓝牙】Qt4中向已配对的手机发送PDF文件
  • html和css实现文本打断换行、自动换行
  • linux下如何找到dump文件被生成到哪里了
  • 机构运动分析系统开发(Python实现)
  • Excel学习01
  • 257. 二叉树的所有路径(js)
  • DL00215-基于YOLOv11的太阳能电池红外异常检测含数据集
  • 【工具】Koishi|koishi跨平台聊天机器人开发平台使用方式(开发者方式)
  • 神经网络试题
  • 船舶动力与自动化系统:PROFIBUS转EtherCAT接口技术的创新应用
  • 【分布式】基于Redisson实现对分布式锁的注解式封装
  • 数据要素治理框架下图情学科的核心角色重塑
  • 猜数字小游戏微信流量主小程序开源
  • 【机械视觉】Halcon—【十五、一维码(条形码)和二维码识别】
  • 多模态大语言模型arxiv论文略读(128)
  • 计算机视觉课程总结
  • FPGA基础 -- Verilog 锁存器简介
  • Python 区块链与Web3开发指南
  • 实战指南:用DataHub管理Hive元数据
  • 断言(Assertion)中常用的正则表达式
  • 最大公约数
  • 详细讲解Redis为什么被设计成单线程
  • 前端开发面试题总结-vue2框架篇(四)
  • Controller Area Network (CAN) 通信机制简介