qemu相关脚本

安装和常用命令

bash 复制代码
# 安装
sudo apt install qemu-system-arm qemu-utils
#  帮助信息
qemu-system-arm --help
# 支持的机器
qemu-system-arm -machine help
# 支持的cpu
qemu-system-arm -cpu help
# 指定内存启动
qemu-system-arm -M virt -m 512M -kernel nuttx -nographic
# 开启gdb调试
# -s = 监听 1234 端口
# -S = 启动时暂停,等 GDB 连接
qemu-system-arm -M virt -kernel nuttx -nographic -s -S

退出

bash 复制代码
Ctrl+A X
quit
# 强制杀死所有 QEMU 进程(卡死时用)
pkill qemu-system-arm

三个常用机器

bash 复制代码
# 通用虚拟 ARM 板,跑 NuttX / Linux / RTOS 最快最方便
-M virt
# 跑 STM32 裸机 / 单片机程序
-M stm32vldiscovery
# 跑 Zynq Cortex-A9 Linux / 裸机 / FreeRTOS
-M xilinx-zynq-a9

qemu-utils工具(非必须)

工具 作用
qemu-img 最核心:磁盘镜像创建/转换/压缩
qemu-nbd 把镜像挂载成块设备
qemu-io 直接对镜像做 IO 测试
qemu-storage-daemon 存储后端服务(高级)

gdb 调试

安装

bash 复制代码
sudo apt update
sudo apt install  gdb-multiarch

启动板子

bash 复制代码
qemu-system-arm \
  -M virt \
  -m 512M \
  -nographic \
  -kernel nuttx \
  -s -S

新建窗口启动gdb

bash 复制代码
gdb-multiarch nuttx
# 输入
set architecture arm
target remote localhost:1234
continue
# 打断点
b hello_main.c:12
# 断点信息
info break
#清楚断点
clear hello_main.c:12
# 局部变量列表
info locals
# 全局变量列表
info variables
## 变量过滤
info variables run
# 看变量
p run
# 看线程
info threads

例子

运行 nuttx

是 ARMv7/ARMv8 通用虚拟平台

bash 复制代码
# 启动
qemu-system-arm \
  -M virt \
  -m 512M \
  -nographic \
  -kernel nuttx
# 调试
qemu-system-arm \
  -M virt \
  -m 512M \
  -nographic \
  -kernel nuttx \
  -s -S

运行zynq linux

bash 复制代码
qemu-system-arm -M xilinx-zynq-a9 -m 1024M   -kernel zImage   -dtb system.dtb   -initrd rootfs.cpio.gz   -serial mon:stdio -display none

运行zynq 裸机

bash 复制代码
# 运行
qemu-system-arm \
  -M xilinx-zynq-a9 \
  -m 512M \
  -kernel zynq_helloworld.elf \
  -nographic \
  -serial mon:stdio
# 调试
qemu-system-arm \
  -M xilinx-zynq-a9 \
  -m 512M \
  -kernel zynq_helloworld.elf \
  -nographic \
  -serial mon:stdio \
  -s -S

petalinux-boot --qemu

等效于下面命令,无法跑裸机

bash 复制代码
qemu-system-arm -M xilinx-zynq-a9 \
  -kernel images/linux/zImage \
  -dtb images/linux/system.dtb \
  -initrd images/linux/rootfs.cpio.gz \
  -serial mon:stdio -display none
相关推荐
AI职业加油站1 小时前
模数共振行动解读|大模型应用工程师证书,匹配行业 RAG/Agent 落地人才需求
人工智能·学习·算法·职场和发展·职场发展
SZleoWang1 小时前
费曼学习法的4个步骤:选概念、教别人、找缺口、再简化
学习
lengxuenong2 小时前
树状数组 · 信息学学习手册2-离散化与逆序对
c++·学习·算法
minglie12 小时前
订阅莫名变少的奇怪现象
学习
zhangrelay3 小时前
手机长周期测评十周年终结版本-2026
笔记·学习·智能手机
boy快快长大3 小时前
【Jenkins】入门学习
运维·学习·jenkins
m4Rk_4 小时前
【论文阅读】Agent记忆机制(106):COUNTERMEM——用可执行世界模型验证“如果当时换个动作”的反事实记忆
论文阅读·人工智能·学习·开源·github
测试运维日常笔记4 小时前
SQL 快速学习笔记:1~2 小时掌握面试重点
笔记·sql·学习
fanged4 小时前
Audio学习4(DSP)(TODO)
学习
lengxuenong5 小时前
树状数组 · 信息学学习手册3-优化LIS
c++·学习·算法