This topic is now closed to further replies.
Recently Browsing 0 members
No registered users viewing this page.
I have been working to move my Late 2009 Xserve MacOS Server onto Ubuntu 18.04 LTS QEMU/KVM based virtual machine using OVMF and Clover.
After much effort and testing based on the following information from: Kraxel's, Kholia, Gordon Turner and Clover site:
I have now managed to get OVMF/Clover boot and install of MacOS Sierra.
I started with Ubuntu 16.04 initially but this required download and compile of QEMU to get update of machines to: pc-q35-2.9 or better, so I moved to Ubuntu 18.04, which has pc-q35.2.11 available as standard.
So I am now working with standard Ubuntu 18.04 LTS based systems with following packages: kvm/qemu/libvirt/bridge-utils/ovmf/virt-manager
As I want to use PCIe Passthrough for a number of PCIe card currently installed in the server (SmallTree 10GbE & Areca ARC-1883 SAS RAID) I set up my machine with linux kernel boot configuration (/etc/default/grub) of:
GRUB_CMDLINE_LINUX_DEFAULT="iommu=1 intel_iommu=on" (as my machine is intel VT-d based HW virtualisation)
This resulted in creation of a number of iommu groups (see /sys/kernel/iommu_group directory for this and this posting for information: https://forum.level1techs.com/t/ubuntu-17-04-vfio-pcie-passthrough-kernel-update-4-14-rc1/119639 , noting that Ubuntu 18.04 LTS has kernel version: 4.15.0-22-generic so there is no need to do kernel update for iommu to work).
Using bare minimal Clover config.plist:
And following Clover UEFI drivers:
I can boot MacOS, but it is very very slow... it sits on the apple boot logo for over a minutes before finally moving onto the progress bar.
The other problem I have is that no PCI or Network devices appear in the "About This Mac" System Information Report and I cannot get any network connectivity from bridged E1000 network device.
Here is my virtlib.xml dump for the virtual machine:
Can any one advise of whether I need to update the CLOVER config.plist to add extra items in to allow network and PCI Passthrough to work.
The H370 chipset powers 8th generation Intel Core-i CPUs. Even though the name H370 rings comparable to Z370, the H370 is based on newer silicon. This it also requires some new approaches compared to the Z370. An example would be on-die USB 3.1 and WiFi support.
Since this guide is not a "hold-your-hand-every-step" guide, I assume you know:
Clover installation and configuration How to create an install medium for MacOS Access and configure the BIOS Have heard of ACPI patching (I'm a newb at this myself)
Sleep (via DSDT edits and emulated NVRAM) On-board Audio (via CloverALC script) Native power management (without any kext or patch) All USB ports (and only those present are active) iGPU for both acceleration and display dGPU (I'm running an Nvidia GTX 1080)
NIC --> I'm using WiFi only
What doesn't work
Native NVRAM via AptioMemoryFix.efi DMVT Pre-alloc higher than 64MB (but not necessary)
Changes to the guide:
22.5.18: Added SSDT hot-patching to enable sleep, replacing DSDT static patching as an alternative.
23.5.18: Add iMac18,1 as alternative SMBIOS config for those relying on the iGPU for output
This guide heavy inspired by the work of /u/corpnewt of /r/hackintosh and his (sorta) Vanilla guide
1.1 Create the install media for MacOS
Follow this, if you are using a Mac to start off with. If you are totally new to MacOS, then please check the basic guide Creation of an installer media in windows or linux
1.2 Install Clover on the install media
Using the Clover installer, ensure you are installing to the USB medium you are using for the installer.
Chose the following options:
AptioMemoryFix UEFI booting only Install to ESP You have to get your hands on an apfs.efi. A google search can help, or extracting it from the Installer package. Make sure you procure a version matching the MacOS version you are about to install. Place the apfs.efi in drivers64UEFI.
1.2 Adjust the config.plist for the installer
You can use the config.plist attached as a guideline, but take a look at it before and at least adjust the SMBIOS - otherwise it won't boot.
Attention: The attached plist contains audio patches introduced by a post-install step. If you run into problems, you might remove those. It also contains a manual slide value, which should normally not be needed, but works fine for me. It is also tuned for usage with an Nvidia Pascal dGPU as main GPU.
The config you create now should serve you nicely for install and running the system.
Take care of adding the following basics:
SMBIOS: iMac18,3 - You can generate a serial number via Clover Configurator. The creation of a proper SMBIOS is covered in many guides to good extend Note: If you aim at using the iGPU for output, a user reported that iMac18,1 works better - since iMac18,3 produces sever flicker. Look at the graphics section and adjust the injection for Intel to your situation
Kernel and Kext patches
1.3 kexts and friends
Add the supplied SSDT-UAIC.aml to "patched" - it limits the injected USB Ports to the actual number and ports valid for this board.
Required kexts on "Other":
FakeSMC.kext IntelGraphicsFixup.kext Lilu.kext When having an Nvidia card: NvidiaGraphicsFixup.kext IntelMausiEthernet.kext in case you're running Ethernet USBInjectAll.kext with the HCI-300-series-injector.kext --> These two should be installed to /L/E after install
We are leaving sound out at the moment, this is something for post-install. Please note the absence of Shiki, I don't find it necessary. Video material I tried made use of the iGPU without shiki.
1.4 Check BIOS and install
You should be ready for install. But before you reboot, please take a look at your BIOS and set it up accordingly (copied from the aforementioned guide and adapted):
Load Optimized Defaults Disable VT-d setting If your system has Secure Boot Mode, disable it Set OS Type to Windows 8/10 or OtherOS - I have not seen a difference Turn off internal Serial and Parallel port Turn off Network stack for boot Turn off wake-on-lan (for now) Set XHCI Handoff to Enabled Don't enable decode over 4G Depending on your GPU, set priority for boot Set internal GPU to enable Set DMVT pre-alloc to 64MB Set USB legacy to enabled Activate XMP profile 1 f your Ram has it (mine doesn't and I added the timings manually) Set ERP to enable, disable platform power management (I need to do more research if this could be enabled)
I've attached my current BIOS config "hack2". You can place that on a fat32 drive (the EFI partition of your install USB drive might be an idea) and see if it loads. It's made for and with the F2 BIOS.
The install itself should be like other MacOS Hackintosh installs with it several reboots and ensuring to select the correct boot device in Clover.
2.1 Install clover on target
This is a no-brainer, but install a fresh copy of Clover on your target medium.
During install select again AptioMemoryFix but also additionally
EmuVariableUefi-64.efi Install RC scripts on target volume because otherwise NVRAM doesn't seem to work
After the install, copy
config.plist contents of "Other" content of "patched" apfs.efi from drivers64UEFI to your new clover install.
2.1 Edit ACPI for slumber
Choose one option, not both. The hot-patch is experimental, but for the moment it is stable.
2.1.1 Edit DSDT
This is necessary only once on initial install and every time, you edit or upgrade the BIOS. The DSDT.aml attached to this post might work for your system or give you a file to compare to. Don't expect it to work for you, though.
I won't go into the details of DSDT extraction and patching. There are better guides (the linked guide is a rip-off of rehabman's guide from a different forum). Please follow such a guide to extract your ACPI data.
Locate and disassemble the DSDT with the newest iasl binary you can put your hands on, then open it with MacIASL in its newest version you can find (Hint: Here is a good source) You can check if the version is new enough if MacIASL doesn't throw error upon compiling a freshly extracted DSDT.aml or DSDT.dst
Add rehabmans repo (as per linked guide) and apply the following patches:
Rename _DSM to _XDSM Fix _WAK Arg0 v2 USB3 _PRW 0x6D Skylake (instant wake) Find the CNVW device and remove the _PWR function there.
Compile the DSDT and place it in "patched".
2.1.2 Use SSDT hot-patching
Instead of having to re-extract and re-patch the DSDT on every BIOS change or update, Hardware change one can also use ACPI hot-patching.
It's a combination of config.plist patches and an SSDT, which is hot-patched into the ACPI (if I understand the process correctly)
You need to add this SSDT-GPRW.aml to your Clover folder in the designated position at Clover/ACPI/patched You need to add this patch to your config.plist. It goes into the DSDT patch section
Note: This works for me, but the patch removes the _PRW method from all devices in the DSDT. This could have side-effects. So far, I have seen none. At the moment I'm also not applying any other patch, compared with the additional edits I made to the DSDT method before.
2.2 Install kexts to system
As mentioned in the install section, it's better to follow rehabman's instruction and install USBinjectAll.kext to /L/E:
sudo cp -R Release/USBInjectAll.kext /Library/Extensions sudo touch /System/Library/Extensions && sudo kextcache -u / 2.3 Enable onboard Audio
This is where I'm not so happy currently, I'd like it to work without altering AppleHDA. But currently I find no other way.
2.3.1 Install FakePCIID & FakePCIID_Intel_HDMI_Audio
Rehabman tells us to use a kext installer to install it to /S/L/E. Chose the RELEASE folder
2.3.2 Run CloverALC command
Ensure your EFI partition is mounted before running this command
Get the newest version of CloverALC command (audio_cloverALC-xxx.sh) and run it. Our Audio codec is RTL887 and I'm running with layout ID 1
2.4 Optional steps
If you have a dGPU, now it's the time to install its drivers and adjust the config.plist for it.
This is out of scope of this guide. Yet, my supplied config.plist is ready to be used with Nvidia Pascal cards and using the Nvidia web driver.
Move away from static DSDT patching to SSDT hotpatching --> requires my work Native NVRAM --> requires developer work Audio without AppleHDA patching --> requires developer work
4. Thanks to
@MaLd0nfor helping finding the right way with the DSDT
@RehabMan, for being a legend and helping me out patching
@toleda, for audio patches for the 300 series
/u/corpnewt, for his superb vanilla guide
@wmchris for his super XPS 9550 guide and introducing me to hot-patching
all the developers of clover and it's awesomeness
Use this thread to link / talk about of the future Nvidia Web Driver updates for macOS Sierra.
Nvidia Web Driver - 378.02.02.25f08 --> build 16G1314 (thanks to BreBo) New!
Nvidia Web Driver - 378.02.02.25f07 --> build 16G1314 (thanks to haring)
Nvidia Web Driver - 378.05.05.25f06 --> build 16G1212 (thanks to WeBeRiO)
Nvidia Web Driver - 378.05.05.25f04 --> build 16G1114 (thanks to lukazm)
Nvidia Web Driver - 378.05.05.25f03 --> build 16G1036 (thanks to Gradou)
Nvidia Web Driver - 378.05.05.25f01 --> build 16G29 (thanks to Badruzeus)
Nvidia Web Driver - 378.05.05.15f01 --> build 16F73 (see this post)
Nvidia Web Driver - 378.05.05.05f02 --> build 16E195(thanks to crachmaster4999)
Nvidia Web Driver - 378.05.05.05f01 --> build 16E195 (thanks to Moviemakergr) Pascal support!!!
Nvidia Web Driver - 3126.96.36.199f01 --> build 16E195 (thanks to Lanc)
Nvidia Web Driver - 3188.8.131.52f01 --> build 16D32 (thanks to shatterhenner)
Nvidia Web Driver - 3184.108.40.206f02 --> build 16C68 (see this post)
Nvidia Web Driver - 3220.127.116.11f01 --> build 16C67 (see this post)
Nvidia Web Driver - 318.104.22.168b06 --> build 16C60b/16C63a (see this post)
Nvidia Web Driver - 322.214.171.124f03 --> build 16B2657/16B2659 (thanks to Moviemakergr).
Nvidia Web Driver - 3126.96.36.199f01 --> build 16B2555 (thanks to Moviemakergr)
Nvidia Web Driver - 367.15.10.05f01 --> build 16A323 (thanks to phi777)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A323 (same driver since DP4/PB3)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A322 (see this post)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A320 (see this post)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A313a (DP8 & PB7) (see this post)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A304a (DP7 & PB6) (see this post)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A294a (DP6 & PB5) (see this post)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A286a (DP5 & PB4) (see this post)
Nvidia Web Driver - 367.10.10.05b01 --> build 16A270f (DP4 & PB3) (thanks to TheRacerMaster)
Nvidia Web Driver - 367.05.10.05b07 --> build 16A254g (DP3 & PB2) (see this post)
Nvidia Web Driver - 367.05.10.05b07 --> build 16A238m (PB1) (thanks to Faun)
Nvidia Web Driver - 367.05.10.05b07 --> build 16A239j (DP2) (thanks to Faun)
Nvidia Web Driver - 367.05.10.05b03 --> build 16A201w (DP1) (thanks to Xmedik)
VMQemuVGA display adapter driver for OSx86 running as a VirtualBox guest. The binary should work on all OSs from Snow Leopard up to Yosemite 10.10. It allows to set different screen resolutions in VirtualBox from System Preferences. The changes I've made to the fork have been minimal.
GitHub project page Binary and source releases Special thanks:
We are very close to WWDC 18, so the expeculations are very high. Look at this graphics:
One of the big expectations for macOS is be a cross-platform system, to help developers bring their iOS apps to the Mac platform.
View full article