bisk Posted January 24, 2022 Share Posted January 24, 2022 Hello everybody, Having an interesting issue here. My USB3.0 devices are not being recognized until after the first sleep/wake cycle. USB2.0 devices are seen just fine but not USB3.0 drives until after sleep. I know that all of my USB is mapped properly as only the EH01/EH02/XHC HubPorts that I had selected with USBInjectAll & SSDT-UIAC.aml appeared in the IORegistry under Mojave 10.14.6 with Clover v2.5k-r5033. This combination worked perfectly for over a year. However, once I updated to Catalina 10.15.7 and OpenCore 0.7.7, USBInjectAll stopped working altogether. All possible USB ports, 8 EHC1, 6 EHC2 and like 16 XHC appeared. Way over the port limit. So, I created a USBMap.kext with the USBMap python tool and that seemed to put things back to where they were. But not quite, as all ECH1 and EHC2 ports still show up in the IORegistry, only the XHC ports seem to respond to the USBMap.kext where the ones that I suppressed do not show up. But maybe this is only cosmetics as all of my USB2.0 and USB3.0 will ultimately work but, as stated, USB3.0 works only after the first sleep. Just for a test, I replaced OpenCore with the last version of Clover that does not use OpenCore at all, r5123.1. With Clover instead of OpenCore, USBInjectAll/SSDT-UIAC.aml work perfectly again as with Mojave but only if my Mac model is iMac14,2. Changing the model iMac14,4 makes USBInjectAll/SSDT-UIAC.aml fail again. This is OK as I know that USBMap is the way to go these days. Seeing all the EHC1 and EHC2 ports in IORegistry under OpenCore doesn’t seem to matter as the only 3 USB2.0 devices work fine as well as all 6 USB3.0 ports but only with USB3.0 devices after the first sleep. Is there some sort of USB3.0 initialization setting necessary these days. My system is a Dell XPS2720 which is a Haswell AIO desktop. Thanks in advance for any ideas. Link to comment https://www.insanelymac.com/forum/topic/350528-usb30-devices-not-recognized-until-after-sleep/ Share on other sites More sharing options...
bisk Posted January 27, 2022 Author Share Posted January 27, 2022 OK, I think that I have figured this one out myself (for the most part). I'll put out what I've discovered before I forget lest someone else finds this helpful. I had been running this Dell XPS2720 (A15 bios) forever as iMac14,2 up to MacOS 10.14.6 using Clover with great success. Then I switched to OpenCore 0.7.7, upgraded to Catalina and this one odd, non-fatal USB3.0 issue began. I tried all these combinations of booting with: 1. SMBIOS:iMac14,2 + USBInjectAll/UIAC-SSDT 2. SMBIOS:iMac14,2 + USBMap.kext 3. SMBIOS:iMac14,4 + USBInjectAll/UIAC-SSDT 4. SMBIOS:iMac14,4 + USBMap.kext 5. SMBIOS:iMac15,1 + USBInjectAll/UIAC-SSDT 6. SMBIOS:iMac15,1 + USBMap.kext Results were as follows. 1. Everything works perfectly as it did under Mojave. 2. No USB3 until after the first sleep/wake. All possible USB2 ports appear in IORegistry, appears USB2 mapping fails. USB3 ports do appear properly mapped in IORegistry. External HDMI display functions. 3. No USB3 until after the first sleep/wake. All possible USB2 ports appear in IORegistry, appears USB2 mapping fails. All possible USB3 ports appear in IORegistry, appears USB3 mapping fails. External HDMI display functions. 4. No USB3 until after the first sleep/wake. All possible USB2 ports appear in IORegistry, appears USB2 mapping fails. USB3 ports do appear properly mapped in IORegistry. External HDMI display functions. 5. Only mapped USB ports appear in IORegistry, appears all mapping succeeds. All USB ports work correctly immediately. External HDMI display does not function. 6. No USB3 until after the first sleep/wake. All possible USB2 ports appear in IORegistry, appears USB2 mapping fails. USB3 ports do appear properly mapped in IORegistry. External HDMI display does not function. Conclusions: The USBMap.kext methods (corpnewt/dortania) appear to fail at mapping USB2 ports (EHCx) in all cases for this old Haswell system. However, this method does succeed to map USB3 ports (XHC) perfectly in all cases. The USBInjectAll/UIAC-SSDT (Rehabman) method appears to map all ports properly provided that the USB controller layout of the Mac platform selected is very similar to the PC being hacked. Otherwise, this method fails to map ports for any controller properly. iMac14,2 and iMac15,1 both define USB controllers: EHC1, EHC2 and XHC which is the same as my Dell XPS2720. iMac14,4 only defines: EHC1 and XHC. Choosing a Mac platform that defines a dGPU, e.g. an AMD video controller, results in a non-functional external display for a hackintosh with an iGPU like my Dell XPS2720. This is what killed the external HDMI display for Mac platform iMac15,1. Of course, all of these findings are only necessarily relevant to this particular hackintosh. YMMV ! Now, the bummer for me in upgrading to Big Sur is that Big Sur does not support platform iMac14,2. So iMac14,2 is now out. Going forward with iMac14,4, my dual displays should continue to function but I would expect my USB3.0 defect to persist. iMac15,1 should return full functionality to my USB ports but then I lose my external display. Or so I presumed ... Well, I went ahead changed my platform from iMac14,2 -> iMac14,4, updated to Big Sur and to my surprise, the USB3.0 defect does not persist ! All of my USB ports function both before AND after sleep/wake. I am using the same USBMap.kext and although USB2.0 ports do not appear to be properly mapped in the IORegistry, USB is fully good. And of course, with iMac14,4, dual displays are working fine too. With Big Sur, I now have a fully new problem, that concerns kext injection & replacement but ... that's another story Link to comment https://www.insanelymac.com/forum/topic/350528-usb30-devices-not-recognized-until-after-sleep/#findComment-2775796 Share on other sites More sharing options...
Recommended Posts