
3 步在 OSX-KVM 里做 GPU 直通把物理显卡喂给 macOS【免费下载链接】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收益速览OSX-KVM在 QEMU/KVM 上跑 macOS 的虚拟机方案默认只给你一个虚拟 VGA桌面能点亮但一剪视频、跑 3D 就掉帧。直通之后物理显卡在 macOS 里走自家驱动同样的 4K 导出有社区案例从 40 多分钟压到 12 分钟示例值实际取决于你的卡。读完你能做到定位显卡所在的 IOMMUCPU 内置的 IO 内存隔离开关组及其两个 PCIe 设备把显卡绑进 vfio-pci让宿主驱动放手改 QEMU 启动行让 macOS 认出物理 GPU用系统报告判断直通是否真的生效方案全景一共 3 步数据流是一条直线物理 GPU → vfio-pci 驱动宿主→ QEMU 进程 → macOS 的 GPU 驱动。层组件干什么宿主内核IOMMU vfio-pci把卡从宿主图形驱动手里隔离出来设备绑定scripts/list_iommu_groups.shscripts/vfio-group.sh查组号把整组锁进 vfio-pci虚拟机boot-passthrough.sh用两行 QEMU 参数把卡和它的 HDMI 音频递进去客户机macOS加载真 GPU 驱动直出物理屏幕硬件门槛只有两条主板开启 VT-d/AMD-Vi加两块独立显卡宿主一块、虚拟机一块。后文排错里的画面黑屏问题就出在第二条上。动手配置开 IOMMU把显卡的两个设备声明给内核显卡上有两个 PCIe 设备显示控制器和 HDMI 音频都得直通。下面用脚本示例里的 RX 580ID 为1002:67df和1002:aaf0换成你自己的lspci -nn查。给内核启动行加参数以 Intel 为例AMD 改成amd_iommuonGRUB_CMDLINE_LINUXintel_iommuon iommupt vfio-pci.ids1002:67df,1002:aaf0 kvm.ignore_msrs1为什么这么写iommupt让其余设备保持原性能vfio-pci.ids让卡开机即被收走ignore_msrs1是 macOS 的硬性要求。再建/etc/modprobe.d/vfio.conf保证宿主图形驱动即使加载也排在 vfio-pci 之后抢不走卡options vfio-pci ids1002:67df,1002:aaf0 disable_vga1 softdep radeon pre: vfio-pci softdep amdgpu pre: vfio-pci softdep nouveau pre: vfio-pci softdep drm pre: vfio-pci重启后跑sudo ./run-diagnostics.sh再看dmesg | grep -i iommu出现Default domain type: Passthrough说明 IOMMU 生效提示ignore_msrs不是 Y 时回内核参数补上。把显卡绑进 VFIO 并确认设备已解锁./scripts/list_iommu_groups.sh sudo ./scripts/vfio-group.sh 15 # 15 为上面输出里的 IOMMU 组号示例值 sudo cp vfio-kvm.rules /etc/udev/rules.d/ lspci -vvv -s 01:00.0 | grep Kernel driver in use最后一行应输出vfio-pci。组号必须给准同一 IOMMU 组内的设备只能整组直通组里混着不想要的设备就换插槽或开 ACS。给 QEMU 启动行加上显卡先 clone 仓库、装一遍干净的 macOS——首次安装别用直通脚本注释里写得很明白 ⚠️git clone https://gitcode.com/GitHub_Trending/os/OSX-KVM OSX-KVM装好后打开 boot-passthrough.sh改三行-vga none -device vfio-pci,host01:00.0,multifunctionon,x-no-kvm-intxon -device vfio-pci,host01:00.1 # ...省略内存、核心数按你的机器调为什么这么写-vga none关掉模拟 VGA避免两块显卡抢主显multifunctionon是音频显示多功能设备必须加的。显卡不初始化时可加romfilegpu_original_bios.bin载入原始 VBIOS。最后./boot-passthrough.shVNC 1 号端口看画面。排错速查1. QEMU 报设备忙或根本没找到设备现象启动行报Device or resource busy。 根因GPU 还被宿主的 radeon/amdgpu 驱动占着。 修复解绑再绑回确认组号没写错sudo ./scripts/vfio-ungroup.sh 15 sudo ./scripts/vfio-group.sh 152. 宿主重启后显示器黑屏现象宿主起不来画面显示器无信号。 根因直通掉的那张卡正是宿主的主显。 修复宿主画面切到核显或第二张卡——这也是直通要求两块独显的原因。3. 虚拟机在 GPU 重置时循环重启AMD 卡最常见现象macOS 初始化显卡时虚拟机反复重启。 根因部分 AMD 卡不支持标准 PCI 重置AMD reset bugboot-passthrough-windows.sh 的注释对这点说得直白。 修复启动行保留x-no-kvm-intxon且别让宿主同时拿这张卡做显示。4. 直通后分辨率低或显卡不被识别现象系统报告里显示设备名不对或分辨率停在一个很低的值。 根因显卡型号与 macOS 版本不匹配——README 明确写了新一点的 NVIDIA 卡只支持到 High Sierra。 修复按卡选对 macOS 版本NVIDIA → High Sierra再回系统报告核对。验收 延伸两条判定标准满足即算成功macOS 系统信息 → 图形卡/显示器型号 你买的那张卡如 Radeon RX 580而不是 VGA compatible controller。宿主dmesg | grep vfio能看到vfio-pci ... ownsiomem说明卡确实归了 VFIO。都满足的话直通就成了。延伸方向USB 音频等设备直通看 notes.md 的 USB 章节有能直接抄的配置无显示器的纯 VNC 流程boot-macOS-headless.sh要同时跑多台虚拟机把本文的scripts/vfio-group.sh套路按组复用即可卡跑在自家驱动下之后剩下的都只是参数调优。【免费下载链接】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),仅供参考