macOS下使用QEMU模拟ARM环境

macOS下可以使用QEMU方便地模拟x86、x64、ARM、PowerPC等环境。

这里模拟的是Raspbian树莓派。

需要说明下虚拟机和模拟器的区别:

  1. 虚拟机是虚拟相同架构的环境,比如x86_64主机虚拟x86_64x86的环境,常见的虚拟机软件有VMware,Parallels,VirtualBox等。
  2. 模拟器是模拟不同的环境,比如x86_64主机模拟arm环境,或反过来,arm主机虚拟x86_64环境。比如苹果最新的M1系列芯片,采用的是ARM 64位架构,芯片本身不支持直接运行x86的程序,在macOS下可以使用Rosetta2转译,而对于操作系统级别的,则可以使用qemu来模拟。

接下来是具体步骤。

安装qemu

首先要有QEMU,我们用brew来安装

brew install qemu

下载 qemu-rpi-kernel

wget https://raw.githubusercontent.com/dhruvvyas90/qemu-rpi-kernel/master/kernel-qemu-4.19.50-buster

下载 versatile-pb.dtb

wget https://raw.githubusercontent.com/dhruvvyas90/qemu-rpi-kernel/master/versatile-pb.dtb

下载树莓派操作系统

wget http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2020-02-14/2020-02-13-raspbian-buster-lite.zip
unzip 2020-02-13-raspbian-buster-lite.zip

运行QEMU模拟器

qemu-system-arm -cpu arm1176 -m 256 \
  -kernel kernel-qemu-4.19.50-buster \
  -M versatilepb \
  -dtb versatile-pb.dtb \
  -no-reboot \
  -nographic \
  -append "dwc_otg.lpm_enable=0 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait" \
  -drive "file=2020-02-13-raspbian-buster-lite.img,index=0,media=disk,format=raw" \
  -net user,hostfwd=tcp::22223-:22 -net nic

正常的话过一会儿就可以登录了,用户名pi,密码raspberry

后续会讲怎么在Apple M1下安装x64或ARM版的Windows,及其它类型的操作系统,如Ubuntu等。

2 thoughts on “macOS下使用QEMU模拟ARM环境”

Leave a Comment

豫ICP备19001387号-1