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

Posted

技术标签:

【中文标题】qemu-system-aarch64:-accel hvf:无效的加速器 hvf【英文标题】:qemu-system-aarch64: -accel hvf: invalid accelerator hvf 【发布时间】:2021-06-23 09:45:58 【问题描述】:

我已经在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 的新手。 你能给我解决办法吗?

【问题讨论】:

【参考方案1】:

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

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

这篇 Syonyk 的项目博客文章 The Apple M1, ARM/x86 Linux Virtualization, and BOINC 是一个很好的教程,介绍了如何在 M1 Mac 上为 ARM 和 x86 来宾启动和运行 QEMU。

【讨论】:

【参考方案2】:

错误消息“无效加速器 hvf”表示您的 QEMU 二进制文件没有内置“hvf”支持。 (您可以通过运行“qemu-system-aarch64 -accel help”进行检查。)

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

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

【讨论】:

【参考方案3】:

已接受的答案不再有效,因为当您单击该博客文章中的链接时,补丁系列不会显示。我曾尝试过同样的说明。所以我浏览了很多材料来浏览那里的内容。自从我上次尝试使用 Qemu 大约 10 年后,我使用了 Qemu,所以花了一些时间,但看起来有人已经构建了一个应用程序(一个带有 UI 的实际 .app),其中包含 M1 的 qemu 构建,其中包含 hvf 加速器/管理程序支持。

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

在您长期使用之前,请查看UTM App。它是免费和开源的,我已经使用这个应用程序成功运行了我的 Ubuntu (ARM) Mac 上的图像。与 VirtualBox 等相比,缺少一些功能,但到目前为止,这是在 Mac 上运行 Ubuntu 最简单的方法。

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

获取 ACVM 应用

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

下载 Ubuntu 镜像

从 Ubuntu 网站下载 Ubuntu for ARM 映像。您可以从here 下载每日实时映像,也可以从here 获取 ARM 服务器映像并稍后安装 GUI。我建议您获取稳定的映像并稍后安装 GUI,但当前版本对我来说很好。

创建目标磁盘

创建虚拟机所在的目标磁盘。如果您将 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

您应该让 Ubuntu(ARM 架构)VM 在您的 Mac M1 机器上运行。

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

这些步骤应该适用于所有配备 M1 芯片的 macOS 机器(MacBook Air、MacBook Pro、Mac Mini 和即将推出的 iMac)。

【讨论】:

我的m1(11.4)打不开ACVM,只报“你没有权限” 当我尝试通过./qemu-img create -f qcow2 $HOME/UbuntuVM/Ubuntu.qcow2 40G创建图像时,它显示:[1] 57679 killed ./qemu-img create -f qcow2 $HOME/UbuntuVM/Ubuntu.qcow2 40G @MrZ 今天我打开 ACVM 时,我的 Mac 上出现了一个恶意软件弹出窗口。在这一点上,只有 UTM 应用程序对我有用。我不知道苹果在做什么。【参考方案4】:

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

brew install qemu

brew install knazarov/qemu-virgl/qemu-virgl

【讨论】:

【参考方案5】:

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

【讨论】:

是的!感谢您通知!我稍后会修改我的答案。【参考方案6】:

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

使用方法如下:

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

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

qemu-system-aarch64 -h

查看帮助信息。

【讨论】:

以上是关于qemu-system-aarch64:-accel hvf:无效的加速器 hvf的主要内容,如果未能解决你的问题,请参考以下文章

ARM64调试环境

Ubuntu18.04使用qemu搭建ARM64架构虚拟机(方法一)

Cannot initiate the connection to ports.ubuntu.com:80

centos mpeg acc 解码器安装

如何在 libvirt 中使用自定义 Tap?

银河麒麟 ARM架构 Qemu虚拟机