KGP-iMacPro Posted March 1, 2018 Author Share Posted March 1, 2018 @Slice released new HWMonitorSMC v2 beta. Zrzut ekranu 2018-02-28 o 14.35.12.png Looks still quite messy though .. please compare with the recently modified iStatMenus distribution.. Are you really using a 8-core CPU? Still there is no link to the HWMonitorSMC beta distribution for testing.. Link to comment Share on other sites More sharing options...
hsu.pengjun Posted March 1, 2018 Share Posted March 1, 2018 Awesome detailed post! I used the included EFI versioned 200218, put my network driver in there (which also works perfectly), and I can boot the system no problem with npci=0x2000 parameter. However, I'm faced with a couple major issues, It lags, as hell. The system feels unstable, but it doesn't crash. So yay there at least. The system input is weird. Mouse & Keyboard input would be ignored or duplicated some time. FakeSMC doesn't load upon restart, only power ons. (Whenever I restart, it just doesn't show up in boot message, E1000e however did) After installing Web Driver, which loaded no problem, I got HiDPI, but cannot login. The login window shows up fine, I can enter the password, but the desktop wouldn't load. The animation would stuck. (Yet the pointer is all right) In short, I'm actually not allowed into desktop, after I install Web Driver. What's worse, disabling it with nv_disable=1 doesn't work either. It will now show an black empty with some occasional gl_ messages. I was able to boot into the system & installer with that flag before. My EFI configuration is standard, so I didn't attach it. I only change, serial & UUID, and added E1000e kext. Link to comment Share on other sites More sharing options...
314TeR Posted March 1, 2018 Share Posted March 1, 2018 @hsu.pengjun You forget about VoodooTSCSync.kext or TSCAdjustReset.kext. 1 Link to comment Share on other sites More sharing options...
KGP-iMacPro Posted March 1, 2018 Author Share Posted March 1, 2018 Awesome detailed post! I used the included EFI versioned 200218, put my network driver in there (which also works perfectly), and I can boot the system no problem with npci=0x2000 parameter. However, I'm faced with a couple major issues, It lags, as hell. The system feels unstable, but it doesn't crash. So yay there at least. The system input is weird. Mouse & Keyboard input would be ignored or duplicated some time. FakeSMC doesn't load upon restart, only power ons. (Whenever I restart, it just doesn't show up in boot message, E1000e however did) After installing Web Driver, which loaded no problem, I got HiDPI, but cannot login. The login window shows up fine, I can enter the password, but the desktop wouldn't load. The animation would stuck. (Yet the pointer is all right) In short, I'm actually not allowed into desktop, after I install Web Driver. What's worse, disabling it with nv_disable=1 doesn't work either. It will now show an black empty with some occasional gl_ messages. I was able to boot into the system & installer with that flag before. My EFI configuration is standard, so I didn't attach it. I only change, serial & UUID, and added E1000e kext. What is your actual macOS build? Which web driver are you using? What are your BIOS settings? Are you overcooking your CPU and RAM? etc... Please learn to bug report.. Try to patch and use web driver xxx.106, as outlined in Section E.2) Link to comment Share on other sites More sharing options...
hsu.pengjun Posted March 1, 2018 Share Posted March 1, 2018 @hsu.pengjun You forget about VoodooTSCSync.kext or TSCAdjustReset.kext. You are right, I read somewhere that Gaming 9 has unlocked 0x2E register or whatever (forgot that name). I thought it will not be needed. Thanks What is your actual macOS build? Which web driver are you using? What are your BIOS settings? Are you overcooking your CPU and RAM? etc... Please learn to bug report.. Try to patch and use web driver xxx.106, as outlined in Section E.2) Thanks for the post & reply. I thought the issue has nothing to do with NV Web Driver & macOS version, so I didn't bother include them, since the desktop loads fine. But you're right, that would've made the report better Adding the missing two kexts solved the problem! Link to comment Share on other sites More sharing options...
KGP-iMacPro Posted March 1, 2018 Author Share Posted March 1, 2018 I thought the issue has nothing to do with NV Web Driver & macOS version, so I didn't bother include them, since the desktop loads fine. But you're right, that would've made the report better Adding the missing two kexts solved the problem! Adding the missing TWO kexts solved the problem? Note that you should implement EITHER VoodooTSCSync.kext OR TSCAdjustReset.kext, NOT BOTH. BTW: Web Driver xxx.159 might lag with your GPU. The patched xxx.106 Web Driver can solve this issue, if necessary.. Link to comment Share on other sites More sharing options...
Matthew82 Posted March 1, 2018 Share Posted March 1, 2018 Some additional information about Thunderbolt HotSwap. If someone still have problem with no working hot swap on TB device and have problem with sleep when TB is connected, the solution is on ssdt. Method based on the TheRacerMaster's work and discover by @maleorderbride. I made changes for Asus TB compatibility. SSDT-TB.aml.zip 2 Link to comment Share on other sites More sharing options...
KGP-iMacPro Posted March 1, 2018 Author Share Posted March 1, 2018 Some additional information about Thunderbolt HotSwap. If someone still have problem with no working hot swap on TB device and have problem with sleep when TB is connected, the solution is on ssdt. Method based on the TheRacerMaster's work and discover by @maleorderbride. I made changes for Asus TB compatibility. SSDT-TB.aml.zip Fantastic, man Can I officially implement your hot swap TB PCI device implementation in my guide? Link to comment Share on other sites More sharing options...
Matthew82 Posted March 1, 2018 Share Posted March 1, 2018 A don't see any problem. But I thing before you do something official you should make lot of test on different users main boars. Here is original tree http://www.insanelymac.com/forum/topic/323540-thunderbolt-drivers/?do=findComment&comment=2599679 Link to comment Share on other sites More sharing options...
KGP-iMacPro Posted March 1, 2018 Author Share Posted March 1, 2018 A don't see any problem. But I thing before you do something official you should make lot of test on different users main boars. First at all, I will try to implement it myself Link to comment Share on other sites More sharing options...
hsu.pengjun Posted March 1, 2018 Share Posted March 1, 2018 Adding the missing TWO kexts solved the problem? Note that you should implement EITHER VoodooTSCSync.kext OR TSCAdjustReset.kext, NOT BOTH. BTW: Web Driver xxx.159 might lag with your GPU. The patched xxx.106 Web Driver can solve this issue, if necessary.. I did not know that. Thanks! One of them removed. I'm getting some random freeze before without TSCSync and with both, now it seems perfect. I'm using 17D2047 & xxx.157. Link to comment Share on other sites More sharing options...
apfelnico Posted March 1, 2018 Share Posted March 1, 2018 Today we want to dedicate ourselves to the DSDT of the X299 system. Why should we edit the DSDT? There are at least four good reasons for this. 1. CPU 2. SMBus 3. PEGP 4. RP02/Ethernet Is it not enough to use the ACPI patches from Clover and additional SSDT's? This is basically a good idea and should be maintained. I think it makes sense to make only the few changes in the DSDT, which are difficult or impossible to realize in other ways. The problem with the DSDT is that when something elementary is changed in the BIOS, the DSDT changes on our complex X299 system. Likewise with a BIOS update. That's why we should not invest much effort into a perfect DSDT. But these little changes will make our system better and it can be repeated quickly. 1. What's wrong with the CPU? If we look at our system with IORegistryExplorer, then we see (example i9-7900X) a weird distribution of CPU cores. These are not linear in a row. If I use Piker-Alpha's script (ssdtPRGen.sh), then it assumes a linear count and the resulting SSDT does not match the actual distribution of the cores. This can be fixed easily and looks more beautiful in IORegistryExplorer. We open the extracted DSDT (in the Clover boot menu press F4, now the original DSDT is in EFI/CLOVER/ACPI/origin) with MaciASL and we take a closer look at the device (SCK0). Here we delete the unused CPxx's, which we can clearly identify by means of IORegistryExplorer. With this we adapt the generic DSDT to our specific processor. If we click on "Compile" now, we get some error messages. Absolutely clear, some of the "Notify (\ _SB.SCK0.CPxx, 0x83)" HLVT method now go to nowhere. We simply delete these now redundant lines. 2. There is a Device SMBS in PC00. Unfortunately, in the same region (PC00) there is a device SBUS, which points exactly to the same position "Name (_ADR, 0x001F0004)". We can fix that very easily. Press "comand + f" (Find) and enter "SBUS". There are five entries. We look at the first entry and change "Device" to "Scope" and delete the line "Name (_ADR, 0x001F0004) // _ADR: Address". Now we search (comand + f) for "SMBS". We change the name of the device SMBS to SBUS. 3. There are so-called PEGPs for the PCIe slots BR1A, BR2A, BR3A and BR3D. We would like to use these instead of the SL01, SL05, SL09 and SL0C. A PEGP has already integrated Power Resources for Wake. The problem is that, for example, a graphics card integrates with the first device (SL01) instead of the more appropriate PEGP. The solution is quite simple, we delete the devices SL01, SL05, SL09 and SL0C from the corresponding BR1A, BR2A, BR3A and BR3D. This will get our graphics and Thunderbolt cards into the correct slots. Subsequent renaming in, for example, "GFX0" can be done via an SSDT, if necessary. 4. It looks similar with the Intel I211VA Ethernet. It docks on the device "D0A4", but could be attached to the much more suitable "PXSX". The latter (which houses every RPxx) also uses Power Resources for Wake. Again, just remove the device D0A4 completely. Now put this DSDT in EFI/CLOVER/ACPI/patched and restart. Of course it is necessary to correct the new paths to the devices in the SSDT's accordingly. 2 Link to comment Share on other sites More sharing options...
Matthew82 Posted March 1, 2018 Share Posted March 1, 2018 Good discover, but did those changes will have any impact for stability of hackintosh? Do you notice some better behavior? I noticed some strange USB devices behavior after wake from sleep. So I add to Thunderbolt ssdt MethodUPRW. Now after 10 times testing sleep and wake everything working OK. This method must be connected with patch in clover ACPI section: <dict> <key>Comment</key> <string>change MethodGPRW</string> <key>Disabled</key> <false/> <key>Find</key> <data> R1BSVwI= </data> <key>Replace</key> <data> WFBSVwI= </data> </dict> I also apply to ssdt usb3.1 as media devices. For correct working hot swap and sleep must be enabled 4G decoding in bios. SSDT-1.aml.zip Link to comment Share on other sites More sharing options...
apfelnico Posted March 1, 2018 Share Posted March 1, 2018 Your code: Device (XHC3) { Name (_ADR, Zero) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x6D, Zero }) } Should not it possibly mean: Device (XHC3) { Name (_ADR, Zero) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x6D, 0x00)) } } Link to comment Share on other sites More sharing options...
Matthew82 Posted March 1, 2018 Share Posted March 1, 2018 Your code: Device (XHC3) { Name (_ADR, Zero) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x6D, Zero }) } Should not it possibly mean: Device (XHC3) { Name (_ADR, Zero) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x6D, 0x00)) } } Yes! You're right. Will correct this. Thanks for info. Link to comment Share on other sites More sharing options...
apfelnico Posted March 1, 2018 Share Posted March 1, 2018 Then, of course, do not use a Clover ACPI patch, otherwise it would also be changed in your SSDT GPRW in UPRW. Change it directly in the DSDT via search and replace Link to comment Share on other sites More sharing options...
Matthew82 Posted March 1, 2018 Share Posted March 1, 2018 Then, of course, do not use a Clover ACPI patch, otherwise it would also be changed in your SSDT GPRW in UPRW. Change it directly in the DSDT via search and replace Well. I have problem with dsdt. Clover won't load it. Today I was trying to check your solution for dsdt but I was not able to load it. Link to comment Share on other sites More sharing options...
apfelnico Posted March 1, 2018 Share Posted March 1, 2018 Your DSDT is called DSDT.aml and in Clover in the ACPI section is the DSDT also named? And the DSDT is in EFI/CLOVER/ACPI/patched? Link to comment Share on other sites More sharing options...
Matthew82 Posted March 1, 2018 Share Posted March 1, 2018 Of course I put dsdt to ACPI/Patched. But I forgot ad name to ACPI in clover. Thanks! I will try load one more time later. Link to comment Share on other sites More sharing options...
Matthew82 Posted March 1, 2018 Share Posted March 1, 2018 Your DSDT is called DSDT.aml and in Clover in the ACPI section is the DSDT also named? And the DSDT is in EFI/CLOVER/ACPI/patched? OK. I was abel to boot with dsdt, but it give lots acpi errors and boot to black screen. I updated previous post with deleted _prw method. Link to comment Share on other sites More sharing options...
KGP-iMacPro Posted March 2, 2018 Author Share Posted March 2, 2018 Second Supplemental Update for 10.13.3 - new build 17D2104 No Nvidia Web Driver released yet for 10.13.3 SA (17D2104). Please use patched Web Driver until official release. Enjoy and have fun, Link to comment Share on other sites More sharing options...
maleorderbride Posted March 2, 2018 Share Posted March 2, 2018 Fantastic, man Can I officially implement your hot swap TB PCI device implementation in my guide? Yes, you can integrate the hotplug information into your guide. 1 Link to comment Share on other sites More sharing options...
Loloflat6 Posted March 2, 2018 Share Posted March 2, 2018 Just for fun and perhaps off topic I managed with success a fresh install of 10.13.3 (17D2047) with iMac Pro system definition on my Haswell R i5-4460 build : this guide may be useful to the whole hackintosh community ! Many thank's ! 1 Link to comment Share on other sites More sharing options...
KGP-iMacPro Posted March 3, 2018 Author Share Posted March 3, 2018 @Matthew82, @apfelnico, I just implemented the TB-SSDT of @Matthew82 for my TBEX 3 in PCIe Slot-4. Note that there are a few necessary deviations from the TB-SSDT of @Matthew82 in my case. Please revise... Would it be possible to improve the DSB1 AHCI Controller Implementation, which still looks quite messy in both IOREG and Section 'PCI' of Apple's System report? TB Definition Block: External (_SB_.PC01.BR1A, DeviceObj) // (from opcode) External (_SB_.PC01.BR1A.PEGP, DeviceObj) // (from opcode) External (_SB_.PC01.BR1A.SL01, DeviceObj) // (from opcode) External (_SB_.PC01.BR1A.UPSB, DeviceObj) // (from opcode) External (PEGP, DeviceObj) // (from opcode) External (SL01, DeviceObj) // (from opcode) External (UPSB, DeviceObj) // (from opcode) TB PCI Device Implementation: Scope (\_SB.PC01.BR1A) { Scope (SL01) { Name (_STA, Zero) // _STA: Status } Scope (PEGP) { Name (_STA, Zero) // _STA: Status } Device (UPSB) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LNot (Arg2)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "PCI-Thunderbolt", One }) } Name (_RMV, One) // _RMV: Removal Status Device (DSB0) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LNot (Arg2)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "PCIHotplugCapable", One }) } Device (NHI0) { Name (_ADR, Zero) // _ADR: Address Name (_STR, Unicode ("Thunderbolt")) // _STR: Description String Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x0D) { "built-in", Buffer (One) { 0x00 }, "device_type", Buffer (0x19) { "Thunderbolt 3 Controller" }, "AAPL,slot-name", Buffer (0x07) { "Slot-4" }, "model", Buffer (0x30) { "ThunderboltEX 3 Intel DSL6540 Thunderbolt 3 NHI" }, "name", Buffer (0x37) { "ThunderboltEX 3 Intel DSL6540 Thunderbolt 3 Controller" }, "power-save", One, Buffer (One) { 0x00 } }) } } } Device (DSB1) { Name (_ADR, 0x00010000) // _ADR: Address } Device (DSB2) { Name (_ADR, 0x00020000) // _ADR: Address Device (XHC5) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x10) { "built-in", Buffer (One) { 0x00 }, "AAPL,slot-name", Buffer (0x07) { "Slot-4" }, "model", Buffer (0x41) { "ThunderboltEX 3 Texas Instruments TPS65982 USB 3.1 Type-A/Type-C" }, "name", Buffer (0x31) { "ThunderboltEX 3 Texas Instruments XHC Controller" }, "device_type", Buffer (0x13) { "USB 3.1 Controller" }, "USBBusNumber", Zero, "UsbCompanionControllerPresent", One, "AAPL,XHCI-clock-id", One }) } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (SSP1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "UsbCPortNumber", One }) } } Device (SSP2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "UsbCPortNumber", 0x02 }) } } Device (HS01) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) } Device (HS02) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) } } } } Device (DSB3) { Name (_ADR, 0x00030000) // _ADR: Address } Device (DSB4) { Name (_ADR, 0x00040000) // _ADR: Address } } } Update: TB Hotplug still not working in my case. After ejecting my TB LaCie 4TB Rugged and reconnecting, the HDD gets properly initialised. However it does not show up in Apple's file manager or in Apple's Disk utility, as the AHC controller DSB1 implementation seems suddenly missing in both IOREG and Section "PCI". Looks like that we are still missing a proper DSB1 AHC Controller PCI device implementation within the SSDT... Link to comment Share on other sites More sharing options...
Matthew82 Posted March 3, 2018 Share Posted March 3, 2018 I thing for you best solution will be start from zero and create TB ssdt from pattern in this post http://www.insanelymac.com/forum/topic/323540-thunderbolt-drivers/?p=2599598. In this moment I can only make test with WD Book 8TB connected to DSB2. (I have Focusrite TB 2 device but I still waiting for adapter to TB3. So then I can make more tests) But with this HDD connected hot swap working OK. In ioreg before and after connecting everything look the same. Link to comment Share on other sites More sharing options...
Recommended Posts