qemu-system-arm
是 QEMU 的一个组件,用于模拟 ARM 架构的芯片;同理 qemu-system-riscv64,
也是 QEMU 的一个组件,用于模拟 risc-v 架构的芯片,两者用法都差不多;可以下载同一份源码后把他们编译出来,也可以直接使用apt install命令直接安装。以下是一些常用的 qemu-system-arm
命令和选项,它们可以帮助你启动和配置 ARM 虚拟芯片:
-
启动虚拟机:
qemu-system-arm -M <machine-type> -kernel <kernel-image> -dtb <device-tree-blob> -nographic
-
-M <machine-type>
指定模拟的机器类型,例如vexpress-a9
。 -
-kernel <kernel-image>
指定内核映像的路径。 -
-dtb <device-tree-blob>
指定设备树二进制文件的路径。 -
-nographic
表示不使用图形界面,通过串口进行输出。
-
-
分配内存:
-m <memory-size>
-
-m
选项后面跟数字,指定虚拟机的内存大小,单位可以是M
(兆字节)或G
(吉字节)。
-
-
网络配置:
-net nic -net tap,ifname=<interface-name>,script=no,downscript=no
-
-net nic
添加一个虚拟网卡。 -
-net tap
使用 TAP 网络接口,ifname
指定宿主机的网络接口名称。
-
-
附加命令行参数:
-append "<kernel-parameters>"
-
-append
允许你传递额外的内核启动参数,例如根文件系统类型和地址。
-
-
使用串口:
-serial stdio
-
-serial stdio
将 QEMU 的串口输出重定向到标准 I/O,这样你就可以在控制台上看到输出。
-
-
使用磁盘镜像:
-sd <disk-image>
-
-sd
指定一个磁盘镜像文件,用于虚拟机的存储设备。
-
-
查看支持的机器类型:
qemu-system-arm -M help
-
-M help
列出所有支持的机器类型。
-
-
查看支持的 CPU 型号:
qemu-system-arm -cpu help
-
-cpu help
列出所有支持的 CPU 型号。
-
-
无窗口模式运行:
-nographic
-
-nographic
使 QEMU 在无窗口的模式下运行,所有输出都将通过串口进行。
-
使用 NFS 挂载文件系统:
```
-append "root=/dev/nfs nfsroot=<host-ip>:<directory>,vers=3,proto=tcp"
```
* 这个 `-append` 参数用于设置 NFS 挂载,`<host-ip>` 是宿主机的 IP 地址,`<directory>` 是宿主机上用作根文件系统的目录。
这些命令可以根据你的具体需求进行组合和修改。例如,如果你想要通过 NFS 启动一个 linux系统,你的命令可能看起来像这样:
qemu-system-arm -M vexpress-a9 -kernel zImage -dtb vexpress-v2p-ca9.dtb -nographic -net nic -net tap,ifname=tap0,script=no,downscript=no -append "root=/dev/nfs rw nfsroot=192.168.1.1:/path/to/nfs/root,vers=3,proto=tcp,nfsvers=3,nolock init=/linuxrc ip=192.168.1.2 console=ttyAMA0" -sd disk.img
需要根据实际环境和需求调整上述命令中的路径、IP 地址和其他参数。
可以使用help命令查询用法:
1713599344866.png
查询支持模拟哪些cpu:
1713599664992.png
查询支持模拟哪些机器:
1713599734645.png