ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

用 OSX-KVM 把物理 GPU 直通进 macOS 虚拟机:从卡顿到满血 4 步落地

2026/9/5 19:58:48 拓冰建站 浏览量
用 OSX-KVM 把物理 GPU 直通进 macOS 虚拟机:从卡顿到满血 4 步落地 用 OSX-KVM 把物理 GPU 直通进 macOS 虚拟机从卡顿到满血 4 步落地【免费下载链接】OSX-KVMRun macOS on QEMU/KVM. With OpenCore Monterey Ventura Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.项目地址: https://gitcode.com/GitHub_Trending/os/OSX-KVM你的 macOS 虚拟机剪 4K 视频掉帧、转场转圈、3D 软件直接卡死——多半是还挂在 QEMU 默认的虚拟 VGA 上。GPU 直通解决的就是这个把物理显卡整个交给虚拟机macOS 直接驱动真卡独显在 QEMU/KVM 里跑 macOS 从此满血。先说结论这事能做成但前提是你的硬件满足下面三个条件差一个都白搭。硬件自检三个必须满足的硬条件条件一主板/CPU 支持 IOMMU。这条是干嘛的确认你的平台有 VT-d 或 AMD-Vi 硬件隔离能力看dmesg里有没有 IOMMU 初始化的记录。dmesg | grep -iE iommu|vt-d|amd-vi通过输出里有AMD-Vi: ... Enabled或DMAR: IOMMU enabled之类字样不通过grep 结果为空。如果你的板子不支持 IOMMU后面所有步骤都省了直接跳到末尾的替代方案。条件二显卡能一分为二。直通后宿主机会失去这块卡所以你需要一块留在宿主机看画面、一块交给虚拟机。双独显最稳iGPU 当宿主机画面 独显直通也行——注意 iGPU 自己也要显式绑给 vfio-pci见下节。只有一块卡又没核显的直通后宿主机直接黑屏谨慎操作。条件三Linux 内核 ≥ 5.4。这条是干嘛的新版内核的 VFIO/IOMMU 代码修了大量老 bug看哪个数字uname -r通过输出以 5.4 或更高开头不通过低于 5.4 先升级发行版或内核不要硬上。摸清设备一条命令列出所有 IOMMU 分组项目自带 scripts/list_iommu_groups.sh跑一次列出全部 PCI 设备及分组归属./scripts/list_iommu_groups.sh输出长这样以 AMD RX 580 为例IOMMU Group 15: 01:00.0 VGA compatible controller [0300]: AMD/ATI Ellesmere [Radeon RX 470/480/570/580/590] [1002:67df] (rev ef) 01:00.1 Audio device [0403]: AMD/ATI Ellesmere HDMI Audio [1002:aaf0]你要记下的两个地址**带 VGA 的01:00.0显卡本体**和它旁边的01:00.1HDMI 音频后面配置要用。划重点同一个 IOMMU Group 里的所有设备必须一起给虚拟机。如果 Group 15 里除了显卡还混着板载 USB 控制器之类这块卡直通起来会很麻烦——尽量挑组内只有自己的槽位。把显卡从系统手里抢过来VFIO 绑定为什么要抢Linux 默认加载自己的显卡驱动占着设备虚拟机拿不到所以要先换成 vfio-pci 驱动即 vfio 透传驱动下文简称 vfio。分两个子动作① 设置设备规则。把 vfio 设备的所有权交给 kvm 组sudo cp vfio-kvm.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger注意这里vfio-kvm.rules是仓库内的示例文件只读不要改它拷一份到系统目录再用。② 加内核参数。编辑/etc/default/grub的GRUB_CMDLINE_LINUXintel_iommuon iommupt vfio-pci.ids1002:67df,1002:aaf0参数作用是否需重启intel_iommuon/amd_iommuon开启 IOMMUIntel / AMD 二选一是iommupt其余设备走 passthrough 模式避免性能损耗是vfio-pci.ids...开机即把指定卡绑给 vfio地址从上面抄是改完执行sudo update-grubDebian/Ubuntu或sudo grub2-mkconfig -o /boot/grub2/grub.cfgFedora/Arch并重启。不同主板 / BIOS 写法略有差异如果遇到参数加了却没生效大概率是vfio-pci.ids里的 vendor:device 抄错了要用十六进制原始 ID用lspci -nn对照重抄一遍即可。让虚拟机真正看到显卡改 4 行启动脚本打开 boot-passthrough.sh真正和直通相关的就这几行其余参数保持原样-vga none -device vfio-pci,host01:00.0,multifunctionon,x-no-kvm-intxon -device vfio-pci,host01:00.1 # 显卡 ROM 有问题时再加 # -device vfio-pci,host01:00.0,multifunctionon,romfilegpu_original_bios.bin参数作用不写会怎样-vga none关掉 QEMU 默认虚拟显卡虚拟卡抢显示直通卡不输出vfio-pci,host01:00.0把显卡本体交给虚拟机直通不生效回到虚拟 VGAmultifunctionon声明这是多功能 PCI 设备同设备的.1音频口加载失败x-no-kvm-intxon绕开 KVM 的 INTx 中断处理部分卡初始化异常、随机掉卡地址换成你自己机器上记下的01:00.0/01:00.1。遇到启动卡在 logo / 屏幕全黑再加romfile那一行ROM 文件从卡里 dump 出来平时不用管它。资源分配单独说两档给到最低ALLOCATED_RAM3072、CPU_CORES2、CPU_THREADS4脚本默认值装系统和轻度使用够推荐ALLOCATED_RAM8192、CPU_CORES4、CPU_THREADS8跑剪辑 / 3D 时 GPU 喂不饱 CPU 会反过来卡注意脚本注释里明确建议——macOS 首次安装不要用直通脚本先用普通方式装完系统再切到这个脚本启动。踩坑区这些报错你大概率会撞上AMD 重置循环现象QEMU 报vfio: Cannot reset device或Device reset failed虚拟机反复重启。大概率原因AMD 卡有众所周知的 AMD reset bugboot-passthrough-windows.sh 里的注释原话GPU passthrough is terrible with AMD cardsGPU 状态机无法被 KVM 干净复位。解法按顺序试grub 加pcie_acs_overridedownstream缓解 ACS 分组问题内核打 vendor-reset 补丁给 AMD GPU 强制复位路径确认x-no-kvm-intxon已加上Device is in use by driver现象启动报vfio 0000:01:00.0: Device is in use by driver amdgpu。大概率原因你漏了vfio-pci.ids或只重启没重新绑定。解法——项目自带脚本可即时切换驱动不用每次等重启sudo ./scripts/vfio-ungroup.sh 01:00.0 # 从 vfio 解绑交回系统 sudo ./scripts/vfio-group.sh 01:00.0 # 重新绑给 vfio跑完lspci -k -s 01:00.0确认 driver 一栏是vfio-pci才算数。AMD 和 NVIDIA 的坑不一样AMDRX 580 等NVIDIA10/16 系macOS 驱动原生 AMD 驱动最省心走 NVIDIA 驱动部分特性受限典型坑重置循环上节需要 vBIOSROM 缺失/被改动的卡要配romfile项目脚本态度主脚本默认就配 AMD 卡Windows 直通场景注明 NVIDIA 兼容性更好如果你的卡是 NVIDIAmacOS 侧还能跑但先检查卡是否带可读取的 ROMlspci -v -s 01:00.0看有没有 VBIOS 段没有就优先换卡或找 dump。跑起来之后怎么确认真的通了系统报告看型号最直观启动后 苹果菜单 → 关于本机 → 系统报告 → 图形/显示显示的是你的物理显卡型号如 Radeon RX 580而不是 VGA Compatible Controller就算通了。接物理显示器最直接HDMI 线插直通卡屏幕应直接出画面分辨率由物理显示器决定而非 VNC 窗口。跑分对比最硬核Cinebench 渲染或 iMovie 导出同一素材虚拟 VGA 与直通后 GPU 渲染耗时通常能拉开一个数量级差距一目了然。收尾不是终点是起点多设备批量管理scripts/vfio-group.sh / scripts/vfio-ungroup.sh 已封装好配合多张卡可自动化。想完整外设体验把 USB 控制器也直通进去方法同显卡改 host 地址即可。原理细节想深挖QEMU 官方文档docs/vfio-support.rstQEMU 源码树内把 VFIO 设备透传机制讲得很透。一句话提醒不同硬件组合可能需要微调参数卡住了先看项目 README 再翻社区 issue别硬刚。【免费下载链接】OSX-KVMRun macOS on QEMU/KVM. With OpenCore Monterey Ventura Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.项目地址: https://gitcode.com/GitHub_Trending/os/OSX-KVM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考