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的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu18.04使用qemu搭建ARM64架构虚拟机(方法一)