Issues with applying iGPU(Intel HD Graphics 630) to a virtual machine (MacOs 13)

Hi!, I am currently trying to setup a virtual machine with a iGPU passthrough. i have separate Gpu which i wanna keep for the host and pass my CPU’s integrated graphics to my virtual machine.

I can boot to my virtual machine without adding the iGPU to my Vm in Virt Manager with no issues. But when i do add it i can see my iGPU in the boot but it gives me these texts: Imgur: The magic of the Internet .

What have i done/checked:

  • blacklisted i915
  • Kernel parameters
  • It doesn’t share a IOMMU group with any other devices.
  • iGPU is compatible with MacOs 13
  • iGPU uses vfio-pci drivers
System:
  Kernel: 6.10.2-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.1.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=5f7664c7-0382-499b-a6ec-951219fb7fa7 rw rootflags=subvol=@
    i915.enable_gvt=1 i915.enable_guc=0 quiet loglevel=3 intel_iommu=on
    iommu=pt vfio-pci.ids=8086:a2f0,8086:5912 ibt=off
  Desktop: KDE Plasma v: 6.1.3 tk: Qt v: N/A info: frameworks v: 6.4.0
    wm: kwin_x11 tools: avail: gtklock, nwg-lock, swayidle, swaylock vt: 2
    dm: SDDM Distro: Garuda base: Arch Linux
Machine:
  Type: Desktop Mobo: MSI model: B250M MORTAR (MS-7A69) v: 1.0
    serial: <superuser required> uuid: <superuser required>
    UEFI-[Legacy]: American Megatrends v: 2.20 date: 04/06/2017
CPU:
  Info: model: Intel Core i5-7500 bits: 64 type: MCP arch: Kaby Lake
    gen: core 7 level: v3 note: check built: 2018 process: Intel 14nm family: 6
    model-id: 0x9E (158) stepping: 9 microcode: 0xF8
  Topology: cpus: 1x cores: 4 smt: <unsupported> cache: L1: 256 KiB
    desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB L3: 6 MiB
    desc: 1x6 MiB
  Speed (MHz): avg: 3696 high: 3699 min/max: 800/3800 scaling:
    driver: intel_pstate governor: powersave cores: 1: 3699 2: 3699 3: 3694
    4: 3695 bogomips: 27199
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities: <filter>
Graphics:
  Device-1: Intel HD Graphics 630 vendor: Micro-Star MSI driver: vfio-pci
    v: N/A alternate: i915 arch: Gen-9.5 process: Intel 14nm built: 2016-20
    bus-ID: 00:02.0 chip-ID: 8086:5912 class-ID: 0380
  Device-2: NVIDIA GP106 [GeForce GTX 1060 6GB]
    vendor: ASUSTeK DUAL-GTX1060-O6G driver: nvidia v: 555.58.02
    alternate: nouveau,nvidia_drm non-free: 545.xx+ status: current (as of
    2024-06; EOL~2026-12-xx) arch: Pascal code: GP10x process: TSMC 16nm
    built: 2016-2021 pcie: gen: 3 speed: 8 GT/s lanes: 16 ports: active: none
    off: DP-1,DVI-D-1,HDMI-A-2 empty: DP-2,HDMI-A-1 bus-ID: 01:00.0
    chip-ID: 10de:1c03 class-ID: 0300
  Device-3: AMD Caicos PRO [Radeon HD 7450] vendor: Micro-Star MSI
    driver: N/A alternate: radeon, amdgpu arch: TeraScale-2 code: Evergreen
    process: TSMC 32-40nm built: 2009-15 pcie: gen: 1 speed: 2.5 GT/s lanes: 4
    link-max: lanes: 16 bus-ID: 03:00.0 chip-ID: 1002:677b class-ID: 0300
  Display: x11 server: X.Org v: 21.1.13 with: Xwayland v: 24.1.1
    compositor: kwin_x11 driver: X: loaded: nvidia gpu: nvidia,nvidia-nvswitch
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 6400x1440 s-dpi: 92 s-size: 1767x402mm (69.57x15.83")
    s-diag: 1812mm (71.34")
  Monitor-1: DP-1 mapped: DP-0 note: disabled pos: primary,top-center
    model: Mi Monitor serial: <filter> built: 2021 res: 2560x1440 dpi: 108
    gamma: 1.2 size: 600x330mm (23.62x12.99") diag: 685mm (27") ratio: 16:9
    modes: max: 2560x1440 min: 640x480
  Monitor-2: DVI-D-1 mapped: DVI-D-0 note: disabled pos: top-left
    model: BenQ ZOWIE XL LCD serial: <filter> built: 2017 res: 1920x1080 dpi: 92
    gamma: 1.2 size: 531x298mm (20.91x11.73") diag: 609mm (24") ratio: 16:9
    modes: max: 1920x1080 min: 640x480
  Monitor-3: HDMI-A-2 mapped: HDMI-1 note: disabled pos: bottom-r
    model: Acer K242HL serial: <filter> built: 2014 res: 1920x1080 hz: 60
    dpi: 92 gamma: 1.2 size: 531x299mm (20.91x11.77") diag: 609mm (24")
    ratio: 16:9 modes: max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia
    inactive: wayland,device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 555.58.02
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GTX 1060
    6GB/PCIe/SSE2 memory: 5.86 GiB
  API: Vulkan v: 1.3.279 layers: 16 device: 0 type: discrete-gpu name: NVIDIA
    GeForce GTX 1060 6GB driver: nvidia v: 555.58.02 device-ID: 10de:1c03
    surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe (LLVM 18.1.8 256
    bits) driver: mesa llvmpipe v: 24.1.4-arch1.2 (LLVM 18.1.8)
    device-ID: 10005:0000 surfaces: xcb,xlib
Audio:
  Device-1: Intel 200 Series PCH HD Audio vendor: Micro-Star MSI
    driver: vfio-pci alternate: snd_hda_intel,snd_soc_avs bus-ID: 00:1f.3
    chip-ID: 8086:a2f0 class-ID: 0403
  Device-2: NVIDIA GP106 High Definition Audio
    vendor: ASUSTeK DUAL-GTX1060-O6G driver: snd_hda_intel v: kernel pcie:
    gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:10f1
    class-ID: 0403
  Device-3: AMD Caicos HDMI Audio [Radeon HD 6450 / 7450/8450/8490 OEM R5
    230/235/235X OEM] vendor: Micro-Star MSI driver: snd_hda_intel v: kernel
    pcie: gen: 1 speed: 2.5 GT/s lanes: 4 link-max: lanes: 16 bus-ID: 03:00.1
    chip-ID: 1002:aa98 class-ID: 0403
  Device-4: Kingston HyperX 7.1 Audio
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 2.0 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 1-4:2 chip-ID: 0951:16a4 class-ID: 0300
    serial: <filter>
  API: ALSA v: k6.10.2-zen1-1-zen status: kernel-api with: aoss
    type: oss-emulator tools: N/A
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.2.1 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Ethernet I219-V vendor: Micro-Star MSI driver: e1000e
    v: kernel port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15b8 class-ID: 0200
  IF: enp0s31f6 state: down mac: <filter>
  IF-ID-1: tap-easytether state: unknown speed: 10000 Mbps duplex: full
    mac: <filter>
  IF-ID-2: virbr0 state: down mac: <filter>
  Info: services: iwd, NetworkManager, systemd-timesyncd
Drives:
  Local Storage: total: 2.05 TiB used: 476.6 GiB (22.7%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Kingston model: SNV2S1000G
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: ELFK1N.2 temp: 44.9 C
    scheme: MBR
  ID-2: /dev/sda maj-min: 8:0 vendor: Western Digital
    model: WD10EZEX-60ZF5A0 size: 931.51 GiB block-size: physical: 4096 B
    logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 7200 serial: <filter>
    fw-rev: 0A80 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 850 EVO 250GB
    size: 232.89 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 2B6Q scheme: MBR
Partition:
  ID-1: / raw-size: 931.51 GiB size: 931.51 GiB (100.00%)
    used: 476.6 GiB (51.2%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-2: /home raw-size: 931.51 GiB size: 931.51 GiB (100.00%)
    used: 476.6 GiB (51.2%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /var/log raw-size: 931.51 GiB size: 931.51 GiB (100.00%)
    used: 476.6 GiB (51.2%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-4: /var/tmp raw-size: 931.51 GiB size: 931.51 GiB (100.00%)
    used: 476.6 GiB (51.2%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 15.51 GiB used: 5.94 GiB (38.3%)
    priority: 100 comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 4
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 53.0 C mobo: N/A gpu: nvidia temp: 56 C
  Fan Speeds (rpm): N/A gpu: nvidia fan: 21%
Info:
  Memory: total: 16 GiB available: 15.51 GiB used: 6.46 GiB (41.6%)
  Processes: 358 Power: uptime: 6h 37m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.17 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
    tool: systemctl
  Packages: pm: dpkg pkgs: 0 pm: pacman pkgs: 2291 libs: 612
    tools: octopi,pamac,paru Compilers: clang: 18.1.8 gcc: 14.1.1
    Shell: garuda-inxi default: Zsh v: 5.9 running-in: kitty inxi: 3.3.35
Garuda (2.6.26-1):
  System install date:     2024-01-30
  Last full system update: 2024-08-02
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut(custom) mkinitcpio nvidia-dkms
  Windows dual boot:       <superuser required>
  Failed units:            

Are you running Garuda in a VM or are you using MacOS 13 in a VM?

I am trying to run MacOs 13 in VM

Well, the only time I have ever seen macOS successfully virtualized is using VMware Workstation with Unlocker installed like you see here:

Then you need to install the Mac Hardware Version ID and the Board ID indicators for the OS to just successfully install first. Things like this: List of Mac BoardID, DeviceID, Model Identifiers & Machine Models

The only thing that I can think of off the top of my head is try using QEMU cause it seems to have very in depth hardware pass through settings. But how you set up version and board ID’s so you get the full functionality of MacOS beats me.

There is one solution which could work, this is the only way I know of. There use to be this company called Magma and the business model was to build PCI expansion hardware. Now I think this company is out of business but one of there featured products was a device that could go from Thunderbolt to a PCIx 16 slot. If you can find such hardware from somewhere like Ebay maybe, then in theory you could use that iGPU in the device and pass that through VMware Workstation. From what I know VMware Workstation 15, 16, and 17 all supported Thunderbolt Pass through. This is only possible solution that comes to my mind which might be able to help you. At least from what I can think of anyway.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.