
OSX-KVM GPU 直通教程5 步把物理顯卡交給 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-KVMiMovie 導出 4K 視頻的進度條爬了四十分鐘渲染隊列掛到凌晨還沒出片——問題不在系統而在虛擬機里那個性能墊底的默認 VGA 控制器。本文給出在 OSX-KVM 中完成 GPU 直通GPU passthrough的完整步驟把一張物理顯卡的控制權整體劃給 macOS 虛擬機讓硬件算力直接服務虛擬機導出 4K 從熬一夜變回泡杯茶的功夫。GPU 直通到底在干什么一句話QEMU 通過 IOMMUIntel 叫 VT-dAMD 叫 AMD-Vi把物理 PCI 設備的控制權從宿主機手里移交給虛擬機由vfio-pci驅動完成隔離與綁定虛擬系統里的顯卡驅動直接操作真實硬件繞開軟件模擬。硬件與系統門檻先排除硬傷項目硬性要求說明CPU / 主板開啟 VT-xAMD-V VT-dAMD-Vi兩者缺一不可IOMMU 負責設備隔離顯卡雙顯卡分工一張核顯/獨顯供宿主機顯示一張直通給虛擬機內核≥ 5.4較新的vfio-pci行為更穩定虛擬化棧KVM QEMUq35 芯片組boot-passthrough.sh 默認即 q35先跑一遍項目自帶的診斷腳本確認虛擬化與 IOMMU 模塊已加載sudo ./run-diagnostics.sh預期在 Loaded Modules 段看到 kvm 相關模塊并且出現下列其中一行amd_iommu 20480 0如果兩行amd_iommu/intel_iommu都沒有先回 BIOS 開啟 IOMMU 再談后面的一切。Step 1查出直通顯卡的 PCI 地址與 IOMMU 分組用lspci記下顯卡的 VGA 控制器與 HDMI 音頻設備兩個地址示例為 AMD RX 580lspci -nnk | grep -i amd01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ef) 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]再運行 scripts/list_iommu_groups.sh確認這兩個地址落在同一個 IOMMU 分組里./scripts/list_iommu_groups.shIOMMU Group 15: 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580] [1002:67df] (rev ff) 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 580] [1002:aaf0] (rev ff)?? 若分組里還混著 SATA 控制器、USB 控制器等其他設備直通會失敗IOMMU 以組為單位移交。此時需要更換插槽位置或參考 notes.md 處理 ACS 問題。記下你的組號本例是 15后面要用。Step 2綁定 VFIO 驅動的三個內核參數編輯/etc/default/grub把下面參數追加到GRUB_CMDLINE_LINUX_DEFAULT以 Intel 平臺為例vfio-pci.ids換成你自己的顯卡 Vendor:Device# Intel 平臺 iommupt intel_iommuon vfio-pci.ids1002:67df,1002:aaf0 kvm.ignore_msrs1 videovesafb:off,efifb:off # AMD 平臺把 intel_iommuon 換成 amd_iommuon其余不變三個關鍵參數的作用iommupt讓 IOMMU 以直通模式工作降低開銷intel_iommuon/amd_iommuon啟用 IOMMUvfio-pci.ids…在開機瞬間就把這兩個設備交給vfio-pci避免amdgpu/nouveau搶先占用。再創建/etc/modprobe.d/vfio.conf照抄 notes.md 中的版本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 update-grub2 sudo update-initramfs -k all -u sudo reboot同時進 BIOS 把 Primary Display 設為核顯IGFX。重啟后驗證驅動確實掛上dmesg | grep vfio lspci -nkk -d 1002:67df01:00.0 0300: 1002:67df (rev ef) Subsystem: 1da2:e366 Kernel driver in use: vfio-pci Kernel modules: amdgpu看到Kernel driver in use: vfio-pci即綁定成功。注意此時宿主機桌面大概率會黑屏/切回核顯這是預期行為。Step 3配置 vfio 設備權限把項目自帶的規則文件裝到 udev 目錄內容就是SUBSYSTEMvfio, OWNERroot, GROUPkvm讓 kvm 組能訪問/dev/vfio/組號sudo cp vfio-kvm.rules /etc/udev/rules.d/vfio-kvm.rules sudo udevadm control --reload sudo udevadm trigger預期ls -l /dev/vfio/15顯示該設備屬組為kvm。Step 4修改啟動腳本接入物理顯卡打開 boot-passthrough.sh確認或調整這幾處腳本注釋里已內置 RX 580 示例替換成你的地址即可ALLOCATED_RAM8192 # MiB給 GPU 留足帶寬 CPU_CORES4 # 核心數 CPU_THREADS8 # 線程數 # 關鍵三行 # -vga none # 關閉 QEMU 內置 VGA # -device vfio-pci,host01:00.0,multifunctionon,x-no-kvm-intxon # -device vfio-pci,host01:00.1multifunctionon表示該 PCI 函數帶多個子功能VGA音頻必須成對直通x-no-kvm-intxon關閉 INTx 中斷路由規避部分主板的復位問題音頻函數01:00.1直通后 HDMI 聲音也能用。腳本注釋中還留了romfilegpu_original_bios.bin的開關個別顯卡需要喂原始 VBIOS 才能點亮先不用管。Step 5啟動虛擬機先做一次無直通的首裝腳本頭部注釋也強調首次安裝 macOS 不要用直通腳本裝完再跑./boot-passthrough.sh腳本以-vnc 0.0.0.0:1輸出畫面用 VNC 客戶端連上后走完 OpenCore 引導。QEMU 終端若出現vfio: error ...之類報錯說明設備仍被宿主機占用回到故障排查。快速驗證確認虛擬機認出了真卡? 最小驗證動作macOS 里打開 關于本機/系統信息 → 顯卡確認顯示的是物理顯卡型號如 Radeon RX 580而不是VGA compatible controller。可選項量化對比渲染耗時用 iMovie 導出同一段 4K 素材記錄直通前后耗時跑分Cinebench / 3DMark 直接對比虛擬顯卡與真卡得分物理直出把顯示器接到直通卡的 HDMI 口虛擬機內切換分辨率物理屏應即時跟隨——這是最硬的證據。故障排查啟動時報 Device is in use by driver設備仍被宿主機驅動占用或 udev 規則未生效。確認 Step 2 的dmesg | grep vfio已顯示vfio-pci重新執行 Step 3 的 udev 重載命令用項目工具顯式綁定整組設備sudo ./scripts/vfio-group.sh 15組號換成 Step 1 記下的數字再sudo ./scripts/vfio-ungroup.sh 15可反向解綁。AMD 卡反復復位、黑屏、no signalboot-passthrough-windows.sh 的注釋直言AMD 卡在 Windows 虛擬機里有AMD reset bugmacOS 側表現是反復復位。優先使用倉庫 notes 中提到的測試通過的卡Sapphire RX 6600 被標注 RECOMMENDED保持x-no-kvm-intxon參數不要刪用廠商工具 dump 出顯卡 VBIOS通過romfile參數喂給 QEMU多數no signal可解。宿主機重啟后直通卡不見了vfio-pci.ids只在啟動瞬間綁定被其他模塊搶走后會失效。確認/etc/modprobe.d/vfio.conf的softdep四行都在重啟后重跑lspci -nkk -d 1002:67df復查驅動仍失效就用sudo ./scripts/vfio-group.sh 組號手動補綁。VNC 里畫面卡但本機顯示器流暢-display none -vnc本身只編碼一路 2D 畫面不代表 GPU 沒工作。以系統信息中的顯卡型號和渲染耗時為準別被 VNC 觀感誤導在意畫面延遲可把 VNC 分辨率調低。至此物理顯卡的算力已完整交給 macOS 虛擬機。可以繼續探索用 scripts/lsgroup.sh 把 USB 控制器也直通進去、直通第二張 GPU 給另一臺虛擬機、按 notes.md 配置 Synergy 共享鍵鼠。遇到問題先翻 README.md 和項目社區的討論串。提示NVIDIA 卡直通 macOS 的驅動兼容性與 AMD 差異較大倉庫測試記錄里只有低端型號如 GT 710可用于 Big Sur 以下版本N 卡用戶請先查 Dortania GPU 買家指南的適配表再動手N 卡配 Windows 虛擬機則效果很好boot-passthrough-windows.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),僅供參考