Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

flagersgit/MacHyperVSupport

Open more actions menu
 
 

Repository files navigation

MacHyperVSupport

Build Status Scan Status

Hyper-V integration services for macOS. Requires a Generation 2 virtual machine on Windows Server 2012 R2 / Windows 8.1 or higher. Windows Server 2016 is currently unsupported.

All Intel macOS versions are supported.

Supported Hyper-V devices and services

  • Heartbeat
  • Guest shutdown (with daemon)
  • Time synchronization (with daemon)
  • Host to guest file copy (with daemon)
  • PCI passthrough (partial support)
  • Synthetic graphics (partial support)
  • Synthetic keyboard
  • Synthetic mouse
  • Synthetic network controller
  • Synthetic SCSI controller

Binaries

  • MacHyperVSupport.kext: Core Hyper-V support kext for macOS 10.4 to 11.0.
  • MacHyperVSupportMonterey.kext: Core Hyper-V support kext for macOS 12.0 and newer.
  • hvfilecopyd: File copy userspace daemon.
  • hvshutdownd: Shutdown userspace daemon.
  • hvtimesyncd: Time synchronization userspace daemon.

OpenCore configuration

ACPI

  • SSDT-HV-VMBUS: Enables correct Startup Disk operation, ensure patches described within are also configured.
  • SSDT-HV-DEV: Required on Windows Server 2019 / Windows 10 and newer, provides proper processor objects and disables incompatible virtual devices under macOS.
  • SSDT-HV-DEV-WS2022: Required on Windows Server 2022 / Windows 11 and newer, disables addiitonal incompatible virtual devices under macOS.
  • SSDT-HV-PLUG: Ensures VMPlatformPlugin loads on Big Sur and above, avoids freezes with the default PlatformPlugin.
  • Ensure all patches described in above SSDTs are present in ACPI->Patch.

Booter quirks

  • AllowRelocationBlock - required for macOS 10.7 and older
  • AvoidRuntimeDefrag - required
  • ForceExitBootServices - required for macOS 10.7 and older
  • ProvideCustomSlide - required
  • RebuildAppleMemoryMap - required for macOS 10.6 and older

Kernel

  • Quirks
    • ProvideCurrentCpuInfo - required for proper TSC/FSB values and CPU topology values.
  • The following additional kernel extensions are required:
  • Block
    • com.apple.driver.AppleEFIRuntime
      • Required for 32-bit versions of macOS (10.4 and 10.5, and 10.6 in 32-bit mode). EFI runtime services and NVRAM are unavailable in those versions due to incompatiblities with the Hyper-V UEFI.
  • Force
    • On older versions of macOS, the following kernel extensions may need to be Force injected. Refer to the OpenCore Configuration manual for details.
    • IONetworkingFamily (com.apple.iokit.IONetworkingFamily)
    • IOSCSIParallelFamily (com.apple.iokit.IOSCSIParallelFamily)
  • Patch
    • Disable _hpet_init
      • Arch = i386
      • Base = _hpet_init
      • Comment = Disables _hpet_init due to no HPET hardware present
      • Count = 1
      • Identifier = kernel
      • MaxKernel = 9.5.99
      • Replace = C3
    • Disable IOHIDDeviceShim::newTransportString()
      • Arch = i386
      • Base = __ZNK15IOHIDDeviceShim18newTransportStringEv
      • Comment = Fix crash in IOHIDDeviceShim::newTransportString() caused by NULL _deviceType
      • Count = 1
      • Identifier = com.apple.iokit.IOHIDFamily
      • MaxKernel = 9.6.99
      • MinKernel = 9.5.0
      • Replace = 31C0C3
    • Disable scaling factor for X/Y mouse movement
      • Arch = i386
      • Base = __ZN16IOHIDEventDriver21handleInterruptReportE12UnsignedWideP18IOMemoryDescriptor15IOHIDReportTypem
      • Comment = Workaround for absence of AbsoluteAxisBoundsRemovalPercentage in 10.4
      • Identifier = com.apple.iokit.IOHIDFamily
      • Find = BA1F85EB51
      • MaxKernel = 8.11.99
      • MinKernel = 8.0.0
      • Replace = BA00000000
  • Emulate
    • DummyPowerManagement and CPU spoofing may be required depending on the host CPU for older versions of macOS.

NVRAM

  • Boot arguments
    • -legacy is required for running 32-bit versions of macOS (10.4 - 10.5, 10.6 if running in 32-bit mode). 64-bit applications and NVRAM support are unavailable in those versions.

UEFI

  • Quirks
    • DisableSecurityPolicy - required on Windows Server 2019 / Windows 10 and newer

Installer image creation

  • Installer images can either be passed in from USB hard disks, or converted from a DMG to a VHDX image using qemu-img:
    • DMGs need to be in a read/write format first.
    • qemu-img convert -f raw -O vhdx Installer.dmg Installer.vhdx

Boot arguments

See the module list for boot arguments for each module.

Credits

About

Hyper-V integration support for macOS

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 94.5%
  • C 4.9%
  • Other 0.6%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.