qemu-system-aarch64: -accel hvf: 无效的加速器 hvf

qemu-system-aarch64: -accel hvf: invalid accelerator hvf

我已经在MacBook pro M1上自己编译了QEMU,并下载了ubuntu 20.04.

当我尝试通过以下方式安装 ubuntu 时:

DYLD_LIBRARY_PATH=. \
./qemu-system-aarch64 \
-M virt,highmem=off \
-accel hvf \
-m 4G \
-smp 4 \
-cpu max \
-drive file=ubuntu.img,index=0,media=disk,format=raw \
-serial stdio \
-netdev type=user,id=net0 \
-device virtio-gpu-pci -vga none \
-device nec-usb-xhci \
-device usb-kbd \
-device usb-tablet \
-device intel-hda -device hda-duplex \
-device virtio-net-pci,netdev=net0,romfile="" \
-drive file=ubuntu-20.04.2-live-server-arm64.iso,media=cdrom,if=none,id=cdrom -device usb-storage,drive=cdrom \
-bios QEMU_EFI.fd

我收到一个错误:qemu-system-aarch64: -accel hvf: invalid accelerator hvf

我试过这个:sudo xattr -rd com.apple.quarantine ~/Desktop/buildV6关闭网守,但没用。

我不太明白这个,我是 QEMU 的新手。 你能给我解决方案吗?

不知道你到目前为止遵循了什么过程,我在这里找到了两个可能对你有帮助的资源..

This comment from yu3fms 在关于 M1 上 QEMU 的 GitHub 回购中讨论了使用 ARM 的 brew 和 QEMU 的特定补丁来启用 vhf 加速。

而这个 Syonyk 的项目博客 post,The Apple M1, ARM/x86 Linux Virtualization, and BOINC 是关于如何在 M1 Mac 上为 ARM 和 x86 启动 QEMU 和 运行 的很棒的教程嘉宾

错误消息 'invalid accelerator hvf' 表示您的 QEMU 二进制文件没有内置 'hvf' 支持。 (可以通过运行 "qemu-system-aarch64 -accel help"查看)

所以要么你没有构建正确的 QEMU 版本(它需要是支持 M1 的分支,因为当前的上游 QEMU 只支持 x86 架构的 hvf),要么你缺少一些依赖性这意味着配置禁用支持。您可以通过使用配置“--enable-hvf”参数进行构建来排除“缺少依赖项”的可能性——这将强制配置使用 hvf 支持进行构建,否则会产生错误。

David 链接到的教程可能会有用。

近一年后,QEMU 发布了支持 macOS aarch64 的新版本(版本 6.2.0)。

使用方法如下:

  1. 获取QEMU的源代码
git clone --single-branch --branch v6.2.0 https://github.com/qemu/qemu.git
  1. 编译它
./configure --target-list=aarch64-softmmu --enable-debug --enable-hvf
make -j -1
  1. 安装它
make install
  1. 如何使用
qemu-system-aarch64 <your args>

args 这里是你可以用 qemu 做什么,检查

qemu-system-aarch64 -h

查看帮助消息。

已接受的答案不再有效,因为当您单击该博客 post 中的 link 时,补丁系列不会显示。我曾尝试按照相同的说明进行操作。所以我浏览了很多 material 来浏览外面的内容。自从我上次尝试 Qemu 大约 10 年后,我一直在使用 Qemu,所以它花了一些时间,但看起来有人已经构建了一个应用程序(一个带有 UI 的实际 .app),其中包含 M1 的 qemu 构建,其中包含hvf accelerator/hypervisor 支持。

我已经写了一篇关于它的详细博客posthere(以防说明不清楚或者你想看图片)。

在你进行长期研究之前,请先看看 UTM App 它是免费和开源的,我已经使用这个应用程序来在 Mac 上成功 运行 我的 Ubuntu (ARM) 图像。与 VirtualBox 和其他软件相比,缺少一些功能,但截至目前,这是它可以在 mac.

上达到 运行ning Ubuntu 的最简单方法

现在,长(手动)方法的步骤:

获取 ACVM 应用程序

您可以从 here 下载。您可以尝试编译它或从发布中获取发布版本。

下载 Ubuntu 图片

从 Ubuntu 的网站下载 Ubuntu for ARM 图像。您可以从 here or you can get the ARM server image from here 下载每日实时图像并稍后安装 GUI。我建议你获得稳定的图像并稍后安装 GUI 但当前版本对我来说很好。

创建目标磁盘

创建您的 VM 所在的目标磁盘。如果您将 ACVM 应用移至 /Applications,则 运行 以下命令:

cd /Applications/ACVM.app/Contents/Resources
mkdir $HOME/UbuntuVM
./qemu-img create -f qcow2 $HOME/UbuntuVM/Ubuntu.qcow2 40G

您可以将目标磁盘的大小更改为您想要的大小,但 40 G 应该没问题。

启动 ACVM 应用程序

启动 ACVM 应用程序并将您的 ISO 文件放入 CD 映像区域,将您刚刚创建的 qcow 映像放入主映像部分,然后单击开始。您还可以使用 qemu 命令。

您应该会看到 Ubuntu 正在启动。继续安装!

开始安装Ubuntu

确保您仍在 /Applications/ACVM.app/Contents/Resources 和 运行:

./qemu-system-aarch64 \
  -serial stdio \
  -M virt,highmem=off \
  -accel hvf \
  -cpu cortex-a72 \
  -smp 4,cores=4 \
  -m 4096 \
  -bios "/Applications/ACVM.app/Contents/Resources/QEMU_EFI.fd" \
  -device virtio-gpu-pci \
  -display default,show-cursor=on \
  -device qemu-xhci \
  -device usb-kbd \
  -device usb-tablet \
  -device intel-hda \
  -device hda-duplex \
  -drive file="$HOME/UbuntuVM/Ubuntu.qcow2",if=virtio,cache=writethrough

您应该在 Mac M1 machine 上安装 Ubuntu(ARM 架构)VM 运行ning。

注意:您也可以尝试再次使用 ACVM 应用程序 运行 machine(只需放入主图像,留下 CD图像一个空的,然后按开始)。但是当我这样做的时候,我总是会遇到一些问题,主要是我的屏幕会黑很长时间。

这些步骤应该适用于所有 macOS mac带有 M1 芯片的相机(MacBook Air、MacBook Pro、Mac Mini 和即将推出的 iMacs).

我发现 https://github.com/knazarov/homebrew-qemu-virgl 是最简单的解决方案:

brew install qemu

brew install knazarov/qemu-virgl/qemu-virgl

它看起来像 QEMU 6.2 的功能 is supported