【问题标题】:qemu-system-aarch64: -accel hvf: invalid accelerator hvfqemu-system-aarch64:-accel hvf:无效的加速器 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 的新手。 你能给我解决办法吗?

【问题讨论】:

    标签: qemu apple-m1


    【解决方案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)。

          使用方法如下:

          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
          

          查看帮助信息。

          【讨论】:

            猜你喜欢
            • 2021-09-28
            • 2021-01-17
            • 2021-07-19
            • 2021-06-24
            • 2020-11-01
            • 1970-01-01
            • 1970-01-01
            • 2019-07-29
            • 2021-07-05
            相关资源
            最近更新 更多