- Joined
- Jul 19, 2010
- Messages
- 136
- Motherboard
- Intel NUC8i7BEH2
- CPU
- i7-8559U
- Graphics
- Iris Plus 655
- Mac
- Mobile Phone
Apologies for the long post, please bare with me. This is my diary of a totally clean-install of MacOS Mojave 10.14.4 directly. I must have rebooted more than 30-40 times to test, each time, any kext or tweak to get the system as much operational as possible.
The below is addressed to people with enough knowledge on Hackintoshing and steps should be evident. This is not a noob-guide, sorry. For those available to test, please do read through and kindly post your findings, feedback or fixes.
Many thanks to @RehabMan for his on-going work and all others that posted your findings in related NUC threads.
N.B. I have had no sudden-reboots at all, as per previous Mojave tweaking. Also, I did not set a complete SMBIOS in Clover's config.plist file, I leave Clover to it, because for now the goal is to get a stable system.
1.0 Pre-requisites
For this to work, BIOS must be at v56 absolutely. Had huge issues booting with v64 but some people mentioned that BIOS v66 resolved that, however with some SSDT modified, I am not sure. For the steps below, BIOS v56 was used without any SSDT/DSDT tweaking at all. To downgrade, Intel sent me their guide that worked for me (without even the need to remove internal BIOS jumper).
Update 8 May 2019: Intel pulled newer BIOS and considers v51 as the only official release now, v56 is untouched shared here.
1.1. Hardware Setup
- Intel NUC8i7BEH2 as per the label at the bottom;
- Dual 8GB HyperX HX424S14IB2/8 DDR4 RAM modules (total 16GB) per Intel's compatibility chart;
- Kingston SHFS37A120G SATA SSD 120GB for testing;
- Samsung 970 EVO NVMe (1TB) drive;
- HP Wireless Keyboard & Mouse 200 (including USB module, works OOB).
See my reported hardware by "lspci -nn" at command line, with recent pci.ids.gz updated from: http://pci-ids.ucw.cz/
Update 31 May 2019: Samsung released a new firmware that renders 970 EVO Plus NVMe disks usable!
1.2. BIOS Settings
Here are the settings that I used, per screen. Some are optional, of course, but besides the main important ones (such as disabling "VT-d" and disabling "Wake on LAN form S4/S5") I chose to also disable the integrated Wi-Fi, Bluetooth and Card Reader.
N.B. Despite having "Legacy Boot" enabled in my original notes, after successful installation I disabled it, and this had no impact on system stability. Currently running 10.14.5 with "Legacy Boot" still disabled.
2. Installation & USB Booter
2.1. OS Download
Downloaded on an official Mac from AppStore the recently released 10.14.4 installer. Make sure it's the full version, about 6GB. If you had an older Mojave installer, move to Trash, clean Trash and re-install from AppStore.
2.2. USB Installer
There are many good guides going around, I personally battled because the method kindly posted by RehabMan does boot the NUC to Clover's screen as expected, but results to my installation partition/disk not been detected, despite pressing F3 to reveal ALL drives. I ended up using MultiBeast and then updating Clover to official r4895 release.
The USB installer needs minimum 8GB flash disk, leaving about 929KB free space.
2.3. Create Mojave Installer
Using the well-known method in Terminal; make sure the USB flash disk is renamed to the name used in the command, e.g. "install_osx" so that the command below can properly work:
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/install_osx/ --nointeraction --downloadassets
I am not sure what --downloadassets bring more to the whole procedure, but I included them just in case.
2.4. Clover Settings
During installation of official Clover r4895, I selected the following x64 EFI must-have drivers to be included:
DataHubDxe-64.efi = DataHub protocol and mandatory for macOS.
FSInject-64.efi = Driver responsible for Clover kext injection into kernel cache.
SMCHelper-64.efi = Restore SMC keys left in NVRAM by FakeSMC (VirtualSMC.efi incompatible)
VBoxHfs-64.efi = Open source EFI file-system driver for HFS+ file system.
+
ApfsDriverLoader-64.efi = Recognize and boot from APFS volumes needed by Mojave.
AptioMemoryFix-64.efi = Needed for Afps driver; includes NVRAM fixes and better memory management.
EmuVariableUefi-64.efi = Support for NVRAM variables if hardware NVRAM is not supported.
NvmExpressDxe-64.efi = Driver support for NVM Express devices.
No FileVault 2 UEFI drivers installed as I am not using FieVault.
2.5. Kexts Needed
I personally removed all 10.xx folders inside the "kexts" folder and placed in "Other" folder only the basic stuff we actually need: the 2 necessary kexts for LAN and SMC, namely IntelMausiEthernet and FakeSMC (no plugins, plain kext). I used the ones kindly provided by RehabMan in his repo: https://bitbucket.org/RehabMan/
3. Boot & Setup
Powered on the NUC and then, on Clover boot screen, I selected to launch the installer.
- Booted from USB flash drive (set in verbose mode, on purpose);
- Reached the macOS Installer environment just fine;
- Ran "Disk Utility" first;
- Selected the SATA Kingston SSD, erased it, quit Disk Utility;
- Started the setup process;
- The NUC restarted 3-4 times (had to select the "Pre-Install" icon).
In the very last boot, as expected, I created my user account, skipped Apple ID, and eventually reached the Desktop just fine.
Important: People reported that during the last long setup screen, keyboard and mouse get disconnected. This is indeed the case on my setup, too; but the installation does get completed. Just be patient.
4. Main & Supplemental Installation
To verify performance, CPU speed-stepping etc. I installed the Intel Power Gadget application now v3.5.5 from Intel.
Also we need IORegistryExplorer.app (older version 2.1) to confirm (and report) device properties and more.
4.1. Phase I - Install needed kexts
I unzipped again the needed kexts and installed them in /Library/Extensions/ and I made sure that quarantine extended attribute was removed, while changing the ownership to "root:wheel" in Terminal.
Then, I installed official Clover EFI Bootloader r4895 to the actual SSD as target. Same parameters and same x64 EFI drivers as before.
At the end, I copied the base config.plist to overwrite the one that comes with the Clover installer. No AMLs in "ACPI" folder yet.
4.2. Phase II - Recognize the SATA chipset
Upon this clean installation, the SATA chipset was shown as "Generic" so there are 2 methods to set to a chipset name, properly:
- Inject the needed device-id via a simple kext, as the one provided by RehabMan in SATA-unsupported.kext placed in /Library/Extensions/
or
- Use an AML to define the device that is compatible to instead, such as my own SSDT-SATA.aml provided.
I had to look into Mojave's original /System/Library/Extensions/AppleAHCIPort.kext/Contents/Info.plist which contains <string>pci8086,9d03</string> but not 9dd3 per our NUC8, so I set ours as "compatible" to 9d03 instead (for the 100 Series chipset).
Question: @RehabMan I see that in your SATA-unsupported.kext there's a different value compared to AppleAHCIPort.kext own, is there an impact? IOProbeScore is set to 2000 in your kext, a value that's higher than Apple's kext.
Booting is lightning fast, even on my SATA SSD. However, the moment TRIM is enabled, we get that mid-booting pause. I tried both with:
- Command "sudo trimforce enable" in Terminal.app;
- Enable the SSD TRIM patch in the config.plist of Clover.
Unfortunately, this is why there's that pause that I could not identify earlier. If you totally remove TRIM, there's no such boot-pause. But since we do need TRIM, I guess we have to live with that and hope Apple fixes this in 10.14.5 or later; that is kind of disappointing...
Comment: On my original MacBook Air 2014, I also seem to get a mid-boot pause, using a genuine Apple SSD. Perhaps not related.
4.3. Phase III - Get Audio to work
Upon next reboot, I just injected FakePCIIDs.kext and the needed FakePCIID_Intel_HDMI_Audio.kext in /Library/Extensions/ again, hoping to get at least HDMI audio working, but it did not. Again, I used RehabMan's kexts kindly provided. Currently using kext v1.3.15 as found on RehabMan's repository.
This kext is attaching itself to the audio device [8086:9dc8] as FakePCIID_Intel_HDMI_Audio.kext contains references to it.
The moment I added two more kexts, namely Lilu.kext and AppleALC.kext in /Library/Extensions/ with the needed "layout-id" defined in my SSDT-HDEF.AML, I got immediately both HDMI and analog audio (Realtek ALC235 HD Audio Controller) Line In and Microphone. Thus, add the "Release" version of:
- Lilu.kext (at v1.3.5 when guide was created)
- AppleALC.kext (at v1.3.6 when guide was created)
- SSDT-HDEF.aml to declare layout-id as 0x1C (ID=28 in decimal)
4.4. Phase IV - FakeSMC plugins
With the simple inclusion of FakeSMC.kext, I did not get the expected readings in HWSensors.app, obviously. I am still using RehabMan's FakeSMC package (that's the latest found around that I can find) I first added in /Library/Extensions/ the FakeSMC_CPUSensors.kext that enabled CPU temperatures upon reboot.
However, there seems no possible detection of the fan itself, unfortunately. Despite adding FakeSMC_LPCSensors.kext in a next reboot, this did not yield results. I am not sure if it's the contents of the plugin that must be updated for the new NUC8 chipset or the fact that LPCB device may not be recognised by Mojave 10.14.4 or later.
Comment: FakeSMC_ACPISensors.kext doesn't seem to detect thermal devices, either. Actually, in IORegistryExplorer I cannot find properly defined thermal devices such as TZ00 and TZ01 as on my older NUC where I see the FakeSMC_ACPISensors.kext gets attached to, properly. I only get some "TZ0" and "TZ00" as ACPI device in the tree, but that's all. Not sure if we need a simple device rename in Clover or a DSDT fix. Moreover, on my other Haswell NUC I get the fan reading just fine, and that kext attaches itself to LPCB and detects the "Nuvotron NCT677F" chipset.
So for now, I was forced to remove i.e not install both FakeSMC_LPCSensors.kext and FakeSMC_ACPISensors.kext from /Library/Extensions/ to not jeopardize stability.
4.5. Phase V - OS Hack via "XOSI"
Finally, I added the SSDT-XOSI.aml purely for compatibility, not sure if it is needed or if it improves anything. I think I read in some post by RehabMan that it helps USB compatibility, but I cannot find the reference, for now. The purpose of the AML is to return a value as "Windows" rather than "Darwin" to the ACPI of the NUC and manage USB better.
4.6. Still Phase V - Clover tweaks
According to another site, it would be wise to drop these tables, so in Clover config these two changes are now added:
Note: I also added later the "FixRegions" tweak in config.plist for people that say it helped them get the LAN card working on NUC8i7BEH3 models; there was a need-to-have reference in another thread by a user.
4.7. Phase VI - Graphics Injector / Testing values
The native "device-id" per "lspci -nn" of the IGPU is [8086:3ea5] that is natively supported by Mojave 10.14.4 as seen in two /S/L/E/ places:
- AppleIntelCFLGraphicsFramebuffer.kext/Contents/Info.plist
- AppleIntelKBLGraphics.kext/Contents/Info.plist
So with a few reboots, I experimented with some values and checked that GeekBench still shows approx. 55000 score for Iris Plus Graphics 655:
- 0x3EA50000 works fine
- 0x3EA50004 as in MacBookPro15,2 works better (no pink flash when about to enter desktop)
- 0x3EA50009 works fine
However, the moment I switched to a previously-known 'compatible' IGPU device, I get immediately a drop in performance in GeekBench to a score of approx. 33000 !
- 0x3E9B0007 as in Macmini8,1 lowers performance
So this seems the reason that WhateverGreen had the effect I had found earlier; it most likely forces the NUC to go the 0x3E9B device route, thus lowering performance in GeekBench.
I am not using nor have installed WhateverGreen.kext for now. Its absence results to the known "Apple logo boot glitch" to appear when changing boot-screen stages, but that's acceptable for now. I have not found a Clover patch to improve this, as people have been using WhateverGreen all this time (myself included, on my other Hasswell NUC).
Update 8/5/2019: With the new release of WhateverGreen v1.2.8 it seems things are back to normal, so I am now using this kext while keeping the top-notch Geekbench score! Using it is therefore advised.
FIRST RESULTS & QUESTIONS: Comments or answers welcome
1) I have not bothered to test internal Bluetooth. I bought a cheap USB Bluetooth adapter (from a known Asian vendor) that's recognised OOB (Out-Of-the-Box) and perhaps only need to fix Continuity or Handoff later (still need to find out how). The USB dongle is a CSR v4.0 using the Qualcomm chipset CSR8510A10 that's natively supported.
2) I have no USB-C device to test, so I cannot comment. Your input and findings are welcome. I only set in BIOS the "Thunderbolt Security Level" to "Legacy Mode" as others had reported in another thread. Your input is welcome. Perhaps some Thunderbolt cable to DisplayPort can be a good test? Please advise.
3) TRIM seems to cause the mid-boot slowdown on SSDs (but not NVMe strangely enough). Not sure what is happening deep inside, some light and info would be great to have. But we need TRIM.
4) I would definitely like to use FakeSMC plugins for displaying fan speed and thermal zone(s). Please provide your feedback and actions if you manage it to work. I am not sure if editing their Info.plist with proper values for NUC8i7BEH can yield results?
5) I have not installed CodecCommander.kext that's installed in the automated method by RehabMan. I am not sure what it does more and if it's needed. Please advise, as this kext is an old one, per the original work done. More info found at https://bitbucket.org/RehabMan/os-x-eapd-codec-commander
6) I am using Mieze's IntelMausiEthernet driver forked by RehabMan currently at the stable version 2.4.0d1 but Mieze herself posted weeks ago new code on her repository v2.5.0d0 and I am not sure of the improvements it brings. I remember reading that @RehabMan himself had an issue running at 1Gbps and was forced to lower the setting to 100Mbps to keep transfer stability. Not sure if this is still the case.
However, there was a post in another thread stating that if we disable "PCIe ASPM Support" in BIOS "Secondary Power Settings" section, this improves Gigabit stability. Please confirm, as I have no knowledge on how to test Gigabit sustainability and confirm this BIOS setting.
Also, a reminder that someone using NUC8i7BEH3 with seemingly different embedded LAN revision, now needs to enable the Clover setting of "FixRegions" in ACPI section.
7) In this NUC there seems no need to use RehabMan's USBInjectAll.kext (https://bitbucket.org/RehabMan/os-x-usb-inject-all) nor a UIAC AML configuration, although I made one recently. Both results are the same in IORegistryExplorer so I decided to not install USBInjectAll.kext and besides, the USB 3.0 controller [8086:9ded] is natively supported in Mojave, as seen in IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/Info.plist
8) I have not tested sleep and restart etc. No time, please report findings and fixes. I have not modified anything in Terminal with "pmset" yet, as it is usually done with "sudo pmset hibernatemode 0" because I am not sure if it's needed on this platform.
9) My idle temperatures per Intel Power Gadget are around 37°C with GeekBench scores for 64-bit processes being:
- 5805 for Single-Core Score;
- 19602 for Multi-Core Score, respectively;
- whereas the GPU got 55110 as OpenCL Score!
A test done last night on both Safari and Chrome to watch YouTube Live HD broadcasts exhibited no issues with neither audio or video (had issues with Safari earlier, possibly due to WhateverGreen) while temperatures ranged between 44-46°C with only the browser running.
10) Whilst not using a generated SSDT.aml for CPU P/C-Stepping to kick in (only using Clover's PluginType=True) I am a little puzzled by the results/output of AppleIntelInfo.kext for Power Management verification, when loading this kext for about 10 minutes and running GeekBench during that period on purpose. At the end, although it's obvious that CPU is well managed, the IGPU shows empty steps for some time then only 3 steps at another time... Perhaps it's the kext being old, in combination with 10.14.4? On my Haswell NUC, I get IGPU P-States with values all the time... Is this normal?
P.S. I may be older-school and do the AMLs separately for each case/device, but this helps go step-by-step. Obviously a grouped AML can be created later, when all issues are identified/resolved.
5. SUMMARY: Here is the check-list in brief
I chose to consciously use /Library/Extensions/ to install any updated kexts as I don't want to mess with EFI more, once stable, and keep mounting/unmounting it too much. Handling kext updates seems easier in /L/E/ but others may disagree. One thing is for sure, that since last MacOS, we don't need to bother with placing kexts in /S/L/E/ anymore.
You need thus the following:
The below is addressed to people with enough knowledge on Hackintoshing and steps should be evident. This is not a noob-guide, sorry. For those available to test, please do read through and kindly post your findings, feedback or fixes.
Many thanks to @RehabMan for his on-going work and all others that posted your findings in related NUC threads.
N.B. I have had no sudden-reboots at all, as per previous Mojave tweaking. Also, I did not set a complete SMBIOS in Clover's config.plist file, I leave Clover to it, because for now the goal is to get a stable system.
1.0 Pre-requisites
For this to work, BIOS must be at v56 absolutely. Had huge issues booting with v64 but some people mentioned that BIOS v66 resolved that, however with some SSDT modified, I am not sure. For the steps below, BIOS v56 was used without any SSDT/DSDT tweaking at all. To downgrade, Intel sent me their guide that worked for me (without even the need to remove internal BIOS jumper).
Update 8 May 2019: Intel pulled newer BIOS and considers v51 as the only official release now, v56 is untouched shared here.
1.1. Hardware Setup
- Intel NUC8i7BEH2 as per the label at the bottom;
- Dual 8GB HyperX HX424S14IB2/8 DDR4 RAM modules (total 16GB) per Intel's compatibility chart;
- Kingston SHFS37A120G SATA SSD 120GB for testing;
- Samsung 970 EVO NVMe (1TB) drive;
- HP Wireless Keyboard & Mouse 200 (including USB module, works OOB).
See my reported hardware by "lspci -nn" at command line, with recent pci.ids.gz updated from: http://pci-ids.ucw.cz/
Update 31 May 2019: Samsung released a new firmware that renders 970 EVO Plus NVMe disks usable!
1.2. BIOS Settings
Here are the settings that I used, per screen. Some are optional, of course, but besides the main important ones (such as disabling "VT-d" and disabling "Wake on LAN form S4/S5") I chose to also disable the integrated Wi-Fi, Bluetooth and Card Reader.
N.B. Despite having "Legacy Boot" enabled in my original notes, after successful installation I disabled it, and this had no impact on system stability. Currently running 10.14.5 with "Legacy Boot" still disabled.
2. Installation & USB Booter
2.1. OS Download
Downloaded on an official Mac from AppStore the recently released 10.14.4 installer. Make sure it's the full version, about 6GB. If you had an older Mojave installer, move to Trash, clean Trash and re-install from AppStore.
2.2. USB Installer
There are many good guides going around, I personally battled because the method kindly posted by RehabMan does boot the NUC to Clover's screen as expected, but results to my installation partition/disk not been detected, despite pressing F3 to reveal ALL drives. I ended up using MultiBeast and then updating Clover to official r4895 release.
The USB installer needs minimum 8GB flash disk, leaving about 929KB free space.
2.3. Create Mojave Installer
Using the well-known method in Terminal; make sure the USB flash disk is renamed to the name used in the command, e.g. "install_osx" so that the command below can properly work:
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/install_osx/ --nointeraction --downloadassets
I am not sure what --downloadassets bring more to the whole procedure, but I included them just in case.
2.4. Clover Settings
During installation of official Clover r4895, I selected the following x64 EFI must-have drivers to be included:
DataHubDxe-64.efi = DataHub protocol and mandatory for macOS.
FSInject-64.efi = Driver responsible for Clover kext injection into kernel cache.
SMCHelper-64.efi = Restore SMC keys left in NVRAM by FakeSMC (VirtualSMC.efi incompatible)
VBoxHfs-64.efi = Open source EFI file-system driver for HFS+ file system.
+
ApfsDriverLoader-64.efi = Recognize and boot from APFS volumes needed by Mojave.
AptioMemoryFix-64.efi = Needed for Afps driver; includes NVRAM fixes and better memory management.
EmuVariableUefi-64.efi = Support for NVRAM variables if hardware NVRAM is not supported.
NvmExpressDxe-64.efi = Driver support for NVM Express devices.
No FileVault 2 UEFI drivers installed as I am not using FieVault.
2.5. Kexts Needed
I personally removed all 10.xx folders inside the "kexts" folder and placed in "Other" folder only the basic stuff we actually need: the 2 necessary kexts for LAN and SMC, namely IntelMausiEthernet and FakeSMC (no plugins, plain kext). I used the ones kindly provided by RehabMan in his repo: https://bitbucket.org/RehabMan/
3. Boot & Setup
Powered on the NUC and then, on Clover boot screen, I selected to launch the installer.
- Booted from USB flash drive (set in verbose mode, on purpose);
- Reached the macOS Installer environment just fine;
- Ran "Disk Utility" first;
- Selected the SATA Kingston SSD, erased it, quit Disk Utility;
- Started the setup process;
- The NUC restarted 3-4 times (had to select the "Pre-Install" icon).
In the very last boot, as expected, I created my user account, skipped Apple ID, and eventually reached the Desktop just fine.
Important: People reported that during the last long setup screen, keyboard and mouse get disconnected. This is indeed the case on my setup, too; but the installation does get completed. Just be patient.
4. Main & Supplemental Installation
To verify performance, CPU speed-stepping etc. I installed the Intel Power Gadget application now v3.5.5 from Intel.
Also we need IORegistryExplorer.app (older version 2.1) to confirm (and report) device properties and more.
4.1. Phase I - Install needed kexts
I unzipped again the needed kexts and installed them in /Library/Extensions/ and I made sure that quarantine extended attribute was removed, while changing the ownership to "root:wheel" in Terminal.
Then, I installed official Clover EFI Bootloader r4895 to the actual SSD as target. Same parameters and same x64 EFI drivers as before.
At the end, I copied the base config.plist to overwrite the one that comes with the Clover installer. No AMLs in "ACPI" folder yet.
4.2. Phase II - Recognize the SATA chipset
Upon this clean installation, the SATA chipset was shown as "Generic" so there are 2 methods to set to a chipset name, properly:
- Inject the needed device-id via a simple kext, as the one provided by RehabMan in SATA-unsupported.kext placed in /Library/Extensions/
or
- Use an AML to define the device that is compatible to instead, such as my own SSDT-SATA.aml provided.
I had to look into Mojave's original /System/Library/Extensions/AppleAHCIPort.kext/Contents/Info.plist which contains <string>pci8086,9d03</string> but not 9dd3 per our NUC8, so I set ours as "compatible" to 9d03 instead (for the 100 Series chipset).
Question: @RehabMan I see that in your SATA-unsupported.kext there's a different value compared to AppleAHCIPort.kext own, is there an impact? IOProbeScore is set to 2000 in your kext, a value that's higher than Apple's kext.
Booting is lightning fast, even on my SATA SSD. However, the moment TRIM is enabled, we get that mid-booting pause. I tried both with:
- Command "sudo trimforce enable" in Terminal.app;
- Enable the SSD TRIM patch in the config.plist of Clover.
Unfortunately, this is why there's that pause that I could not identify earlier. If you totally remove TRIM, there's no such boot-pause. But since we do need TRIM, I guess we have to live with that and hope Apple fixes this in 10.14.5 or later; that is kind of disappointing...
Comment: On my original MacBook Air 2014, I also seem to get a mid-boot pause, using a genuine Apple SSD. Perhaps not related.
4.3. Phase III - Get Audio to work
Upon next reboot, I just injected FakePCIIDs.kext and the needed FakePCIID_Intel_HDMI_Audio.kext in /Library/Extensions/ again, hoping to get at least HDMI audio working, but it did not. Again, I used RehabMan's kexts kindly provided. Currently using kext v1.3.15 as found on RehabMan's repository.
This kext is attaching itself to the audio device [8086:9dc8] as FakePCIID_Intel_HDMI_Audio.kext contains references to it.
The moment I added two more kexts, namely Lilu.kext and AppleALC.kext in /Library/Extensions/ with the needed "layout-id" defined in my SSDT-HDEF.AML, I got immediately both HDMI and analog audio (Realtek ALC235 HD Audio Controller) Line In and Microphone. Thus, add the "Release" version of:
- Lilu.kext (at v1.3.5 when guide was created)
- AppleALC.kext (at v1.3.6 when guide was created)
- SSDT-HDEF.aml to declare layout-id as 0x1C (ID=28 in decimal)
4.4. Phase IV - FakeSMC plugins
With the simple inclusion of FakeSMC.kext, I did not get the expected readings in HWSensors.app, obviously. I am still using RehabMan's FakeSMC package (that's the latest found around that I can find) I first added in /Library/Extensions/ the FakeSMC_CPUSensors.kext that enabled CPU temperatures upon reboot.
However, there seems no possible detection of the fan itself, unfortunately. Despite adding FakeSMC_LPCSensors.kext in a next reboot, this did not yield results. I am not sure if it's the contents of the plugin that must be updated for the new NUC8 chipset or the fact that LPCB device may not be recognised by Mojave 10.14.4 or later.
Comment: FakeSMC_ACPISensors.kext doesn't seem to detect thermal devices, either. Actually, in IORegistryExplorer I cannot find properly defined thermal devices such as TZ00 and TZ01 as on my older NUC where I see the FakeSMC_ACPISensors.kext gets attached to, properly. I only get some "TZ0" and "TZ00" as ACPI device in the tree, but that's all. Not sure if we need a simple device rename in Clover or a DSDT fix. Moreover, on my other Haswell NUC I get the fan reading just fine, and that kext attaches itself to LPCB and detects the "Nuvotron NCT677F" chipset.
So for now, I was forced to remove i.e not install both FakeSMC_LPCSensors.kext and FakeSMC_ACPISensors.kext from /Library/Extensions/ to not jeopardize stability.
4.5. Phase V - OS Hack via "XOSI"
Finally, I added the SSDT-XOSI.aml purely for compatibility, not sure if it is needed or if it improves anything. I think I read in some post by RehabMan that it helps USB compatibility, but I cannot find the reference, for now. The purpose of the AML is to return a value as "Windows" rather than "Darwin" to the ACPI of the NUC and manage USB better.
4.6. Still Phase V - Clover tweaks
According to another site, it would be wise to drop these tables, so in Clover config these two changes are now added:
Drop Tables - FixHeaders - PluginType
DMAR - this prevents some issues with Vt-d; which is PCI passthrough for VMs, and not very functional (if at all?) on Hackintoshes.
MATS - with High Sierra or up, this table is parsed and can sometimes contain unprintable characters that can lead to a kernel panic.
FixHeaders - this is just a double-up of our MATS table dropping. This checkbox tells Clover to sanitize headers to avoid kernel panics related to unprintable characters.
PluginType - this injects some DSDT data to get X86PlatformPlugin to load - giving us a leg-up on native CPU power management. This setting only works on Haswell and newer CPUs though.
Note: I also added later the "FixRegions" tweak in config.plist for people that say it helped them get the LAN card working on NUC8i7BEH3 models; there was a need-to-have reference in another thread by a user.
4.7. Phase VI - Graphics Injector / Testing values
The native "device-id" per "lspci -nn" of the IGPU is [8086:3ea5] that is natively supported by Mojave 10.14.4 as seen in two /S/L/E/ places:
- AppleIntelCFLGraphicsFramebuffer.kext/Contents/Info.plist
- AppleIntelKBLGraphics.kext/Contents/Info.plist
So with a few reboots, I experimented with some values and checked that GeekBench still shows approx. 55000 score for Iris Plus Graphics 655:
- 0x3EA50000 works fine
- 0x3EA50004 as in MacBookPro15,2 works better (no pink flash when about to enter desktop)
- 0x3EA50009 works fine
However, the moment I switched to a previously-known 'compatible' IGPU device, I get immediately a drop in performance in GeekBench to a score of approx. 33000 !
- 0x3E9B0007 as in Macmini8,1 lowers performance
I am not using nor have installed WhateverGreen.kext for now. Its absence results to the known "Apple logo boot glitch" to appear when changing boot-screen stages, but that's acceptable for now. I have not found a Clover patch to improve this, as people have been using WhateverGreen all this time (myself included, on my other Hasswell NUC).
Update 8/5/2019: With the new release of WhateverGreen v1.2.8 it seems things are back to normal, so I am now using this kext while keeping the top-notch Geekbench score! Using it is therefore advised.
FIRST RESULTS & QUESTIONS: Comments or answers welcome
1) I have not bothered to test internal Bluetooth. I bought a cheap USB Bluetooth adapter (from a known Asian vendor) that's recognised OOB (Out-Of-the-Box) and perhaps only need to fix Continuity or Handoff later (still need to find out how). The USB dongle is a CSR v4.0 using the Qualcomm chipset CSR8510A10 that's natively supported.
2) I have no USB-C device to test, so I cannot comment. Your input and findings are welcome. I only set in BIOS the "Thunderbolt Security Level" to "Legacy Mode" as others had reported in another thread. Your input is welcome. Perhaps some Thunderbolt cable to DisplayPort can be a good test? Please advise.
3) TRIM seems to cause the mid-boot slowdown on SSDs (but not NVMe strangely enough). Not sure what is happening deep inside, some light and info would be great to have. But we need TRIM.
4) I would definitely like to use FakeSMC plugins for displaying fan speed and thermal zone(s). Please provide your feedback and actions if you manage it to work. I am not sure if editing their Info.plist with proper values for NUC8i7BEH can yield results?
5) I have not installed CodecCommander.kext that's installed in the automated method by RehabMan. I am not sure what it does more and if it's needed. Please advise, as this kext is an old one, per the original work done. More info found at https://bitbucket.org/RehabMan/os-x-eapd-codec-commander
6) I am using Mieze's IntelMausiEthernet driver forked by RehabMan currently at the stable version 2.4.0d1 but Mieze herself posted weeks ago new code on her repository v2.5.0d0 and I am not sure of the improvements it brings. I remember reading that @RehabMan himself had an issue running at 1Gbps and was forced to lower the setting to 100Mbps to keep transfer stability. Not sure if this is still the case.
However, there was a post in another thread stating that if we disable "PCIe ASPM Support" in BIOS "Secondary Power Settings" section, this improves Gigabit stability. Please confirm, as I have no knowledge on how to test Gigabit sustainability and confirm this BIOS setting.
Also, a reminder that someone using NUC8i7BEH3 with seemingly different embedded LAN revision, now needs to enable the Clover setting of "FixRegions" in ACPI section.
7) In this NUC there seems no need to use RehabMan's USBInjectAll.kext (https://bitbucket.org/RehabMan/os-x-usb-inject-all) nor a UIAC AML configuration, although I made one recently. Both results are the same in IORegistryExplorer so I decided to not install USBInjectAll.kext and besides, the USB 3.0 controller [8086:9ded] is natively supported in Mojave, as seen in IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/Info.plist
8) I have not tested sleep and restart etc. No time, please report findings and fixes. I have not modified anything in Terminal with "pmset" yet, as it is usually done with "sudo pmset hibernatemode 0" because I am not sure if it's needed on this platform.
9) My idle temperatures per Intel Power Gadget are around 37°C with GeekBench scores for 64-bit processes being:
- 5805 for Single-Core Score;
- 19602 for Multi-Core Score, respectively;
- whereas the GPU got 55110 as OpenCL Score!
A test done last night on both Safari and Chrome to watch YouTube Live HD broadcasts exhibited no issues with neither audio or video (had issues with Safari earlier, possibly due to WhateverGreen) while temperatures ranged between 44-46°C with only the browser running.
10) Whilst not using a generated SSDT.aml for CPU P/C-Stepping to kick in (only using Clover's PluginType=True) I am a little puzzled by the results/output of AppleIntelInfo.kext for Power Management verification, when loading this kext for about 10 minutes and running GeekBench during that period on purpose. At the end, although it's obvious that CPU is well managed, the IGPU shows empty steps for some time then only 3 steps at another time... Perhaps it's the kext being old, in combination with 10.14.4? On my Haswell NUC, I get IGPU P-States with values all the time... Is this normal?
P.S. I may be older-school and do the AMLs separately for each case/device, but this helps go step-by-step. Obviously a grouped AML can be created later, when all issues are identified/resolved.
5. SUMMARY: Here is the check-list in brief
I chose to consciously use /Library/Extensions/ to install any updated kexts as I don't want to mess with EFI more, once stable, and keep mounting/unmounting it too much. Handling kext updates seems easier in /L/E/ but others may disagree. One thing is for sure, that since last MacOS, we don't need to bother with placing kexts in /S/L/E/ anymore.
You need thus the following:
- BIOS v56 in our case; set the BIOS settings advised (see text attachment);
- Latest official stable Clover with 64-bit drivers per above (see text attachment, again);
- Install Mojave 10.14.4 or later (I was able to later update to 10.14.5 just fine);
- Version 4 of config.plist, adding perhaps more model details using Clover Configurator's SMBIOS generator.
- The two necessary files in Clover's kext/other folder: FakeSMC (plain kext) and IntelMausiEthernet in case ever need to load recovery tool from Clover.
- SSDT-HDEF.aml so that audio ID is set; this could be also done inside Clover's config;
- SSDT-LPCB.aml so that a compatible LPC device is vanilla-recognized in IORegistryExplorer (optional)
- SSDT-SATA.aml so that a compatible SATA interface is vanilla-recognized in IORegistryExplorer (optional)
- SSDT-XOSI.aml so that a better USB compatibility is set to the system from ACPI/DSDT of BIOS (still have to test it somehow that it does have a positive impact, I have no real knowledge).
- Official Lilu (Release) (the main kext that allows other two to be used);
- Official WhateverGreen (Release);
- Official AppleALC (Release);
- RehabMan's FakeSMC and plugins (CPU, ACPI, HWMonitor.app) but fans are not recognized;
- RehabMan's IntelMausiEthernet (Release);
- RehabMan's FakePCIID.kext (Release) with needed FakePCIID_Intel_HDMI_Audio.kext for HDMI/Analog audio to be supported.
Attachments
-
Intel NUC8i7BEH BIOS Settings.txt4.3 KB · Views: 1,361
-
lspci-nn.txt2.1 KB · Views: 390
-
config-0-sos-installer.plist4.6 KB · Views: 302
-
config-1-basic-boot.plist4.7 KB · Views: 274
-
config-2-drop-tables.plist4.8 KB · Views: 268
-
config-3-drop-regions-gfx.plist4.8 KB · Views: 259
-
SSDT-HDEF.dsl1.7 KB · Views: 334
-
SSDT-LPCB.dsl1.3 KB · Views: 314
-
SSDT-SATA.dsl1.4 KB · Views: 319
-
config-4-final-smbios.plist6 KB · Views: 386
-
SSDT-XOSI.dsl3.1 KB · Views: 299
-
SSDT-HDEF.aml185 bytes · Views: 332
-
SSDT-SATA.aml159 bytes · Views: 295
-
SSDT-XOSI.aml206 bytes · Views: 301
-
SSDT-LPCB.aml158 bytes · Views: 286
Last edited: