Contribute
Register

Help for Setting Up USB on GA-Z77M-D3H-MVP Mobo

Status
Not open for further replies.
Joined
Jan 16, 2011
Messages
621
Motherboard
Gigabyte Z390 Designare
CPU
i7-8700K
Graphics
Vega 64
Mac
  1. Mac mini
  2. Mac Pro
Classic Mac
  1. Power Mac
Mobile Phone
  1. iOS
Possibly USB issues. I noticed in your last IOREG posting that your USB ports are not named as appropriately for newer macOS in the ACPI. That can be fixed via Clover/ACPI/DSDT/PATCHES. See my comment to @ksong in post #48 and start a new thread with your IOREG.

Hi @macnb. I've tried to get all of the USB ports working, but for some reason the second rear USB3 port only loads as a USB2 port. I don't have anything attached to the other 2 USB3 ports as I'm waiting for a 20pin header to arrive so I can use these also.

I'm a little confused as to what files I should be loading in my /Library/Extensions (see below for all the files in /Library/Extensions & I only have FakeSMC.kext in my Clover/kexts/Other folder).

Can you help me again? TIA!

I've attached my IOReg & Config.plist files.

Code:
iMac:Extensions jb$ pwd
/Library/Extensions
iMac:Extensions jb$ tree -L 1
.
├── ACPIMonitor.kext
├── ACS6x.kext
├── APExtFramebuffer.kext
├── ATTOCelerityFC8.kext
├── ATTOExpressSASHBA2.kext
├── ATTOExpressSASRAID2.kext
├── AirParrotDriver.kext
├── ArcMSR.kext
├── CalDigitHDProDrv.kext
├── EnergyDriver.kext
├── FakePCIID.kext
├── FakePCIID_XHCIMux.kext
├── FakeSMC.kext
├── HighPointIOP.kext
├── HighPointRR.kext
├── ITEIT87x.kext
├── IntelCPUMonitor.kext
├── LogiMgrDriver.kext
├── PromiseSTEX.kext
├── RadeonMonitor.kext
├── SoftRAID.kext
├── SteamInput.kext
├── TruStudioPCUSBAudioPlugin.kext
├── USBInjectAll.kext
└── mark.kext
 

Attachments

  • jb007_config.19.12.17.plist.zip
    2.9 KB · Views: 68
  • jb007_ioreg_19.12.17.zip
    941.1 KB · Views: 84
I notice you used usbinjectall & fakepc ii,try remove fakeocii,just only usbinjectall
 
Hi @macnb. I've tried to get all of the USB ports working, but for some reason the second rear USB3 port only loads as a USB2 port. I don't have anything attached to the other 2 USB3 ports as I'm waiting for a 20pin header to arrive so I can use these also.

I'm a little confused as to what files I should be loading in my /Library/Extensions (see below for all the files in /Library/Extensions & I only have FakeSMC.kext in my Clover/kexts/Other folder).

Can you help me again? TIA!

I've attached my IOReg & Config.plist files.

Code:
iMac:Extensions jb$ pwd
/Library/Extensions
iMac:Extensions jb$ tree -L 1
.
├── ACPIMonitor.kext
├── ACS6x.kext
├── APExtFramebuffer.kext
├── ATTOCelerityFC8.kext
├── ATTOExpressSASHBA2.kext
├── ATTOExpressSASRAID2.kext
├── AirParrotDriver.kext
├── ArcMSR.kext
├── CalDigitHDProDrv.kext
├── EnergyDriver.kext
├── FakePCIID.kext
├── FakePCIID_XHCIMux.kext
├── FakeSMC.kext
├── HighPointIOP.kext
├── HighPointRR.kext
├── ITEIT87x.kext
├── IntelCPUMonitor.kext
├── LogiMgrDriver.kext
├── PromiseSTEX.kext
├── RadeonMonitor.kext
├── SoftRAID.kext
├── SteamInput.kext
├── TruStudioPCUSBAudioPlugin.kext
├── USBInjectAll.kext
└── mark.kext

The use of USBInjectall.kext is not really meant for permanent use but for testing which USB ports are active.
If you do want to use USBInjectall.kext permanently, then create a companion SSDT that disables non-existence ports.
Alternatively, you modify USBInjectall.kext to be specific to your motherboard like @theracermaster did and called it GA-Z77X_USB.kext (you would call yours GA-Z77M_D3H_USB.kext).

I use FakePCIID.kext & FakePCIID_XHCIMux.kext (together with my board specific GA-Z77X_USB.kext - attached) that enables USB2 devices attached to USB3 ports to be routed internally to the USB2 hubs ports on the motherboard.

In my BIOS, I set XHCI to "auto" then FakePCIID_XHCIMux routes USB2 devices on XHC to EHCI so that they appear on ether EH01 or EH02 in the IOREG.
Also, in the BIOS make sure that you set M.I.T./Advanced Frequency Settings/Advanced CPU Core Features/Internal CPU PLL Overvoltage to Disabled to avoid wake from sleep issues with connected USB devices.

BTW, I rename my XCHI to XH01 in my DSDT (you could do it config.plist via the DSDT/Patches id you do not have a DSDT.aml).

My motherboard chipset has 6 USB2 ports & 10 USB3 ports (2x direct and 8x attached via built-in HUBS)
I believe your motherboard chipset has 10 USB2 and 4 USB3 ports.

You could modify my GA-Z77X_USB.kext injector (there's only one info.plist) to match your motherboard ports.
(in the first instance you can take a cavalier approach and just try it to see check your USB3 ports ;))

I know it is a complex topic but I encourage you read @RehabMan's guide here https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/ step by step which is what I did few years ago. Might be worth posting there instead to get help from the master himself :). In that guide, there's a link to his SSDT guide for USB.
 

Attachments

  • GA-Z77X_USB.kext.zip
    2.7 KB · Views: 109
The use of USBInjectall.kext is not really meant for permanent use but for testing which USB ports are active.
If you do want to use USBInjectall.kext permanently, then create a companion SSDT that disables non-existence ports.
Alternatively, you modify USBInjectall.kext to be specific to your motherboard like @theracermaster did and called it GA-Z77X_USB.kext (you would call yours GA-Z77M_D3H_USB.kext).

I use FakePCIID.kext & FakePCIID_XHCIMux.kext (together with my board specific GA-Z77X_USB.kext - attached) that enables USB2 devices attached to USB3 ports to be routed internally to the USB2 hubs ports on the motherboard.

In my BIOS, I set XHCI to "auto" then FakePCIID_XHCIMux routes USB2 devices on XHC to EHCI so that they appear on ether EH01 or EH02 in the IOREG.
Also, in the BIOS make sure that you set M.I.T./Advanced Frequency Settings/Advanced CPU Core Features/Internal CPU PLL Overvoltage to Disabled to avoid wake from sleep issues with connected USB devices.

BTW, I rename my XCHI to XH01 in my DSDT (you could do it config.plist via the DSDT/Patches id you do not have a DSDT.aml).

My motherboard chipset has 6 USB2 ports & 10 USB3 ports (2x direct and 8x attached via built-in HUBS)
I believe your motherboard chipset has 10 USB2 and 4 USB3 ports.

You could modify my GA-Z77X_USB.kext injector (there's only one info.plist) to match your motherboard ports.
(in the first instance you can take a cavalier approach and just try it to see check your USB3 ports ;))

I know it is a complex topic but I encourage you read @RehabMan's guide here https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/ step by step which is what I did few years ago. Might be worth posting there instead to get help from the master himself :). In that guide, there's a link to his SSDT guide for USB.

Thanks @macnb, I will try your method using FakePCIID.kext & FakePCIID_XHCIMux.kext and modify and rename your GA-Z77X_USB.kext to reflect my hardware.

Yes you are right, I only have 14 ports.

One thing I don't understand, is what happens (or should happen), when I attach a hub to either a USB2/3 port and I exceed the 14 port limit. Does it just not connect the port, or does it drop one connections or more off to bring the port count below the 14 port limit?

Thanks for your guidance! I'll post back hopefully tomorrow.
 
Thanks @macnb, I will try your method using FakePCIID.kext & FakePCIID_XHCIMux.kext and modify and rename your GA-Z77X_USB.kext to reflect my hardware.

Yes you are right, I only have 14 ports.

One thing I don't understand, is what happens (or should happen), when I attach a hub to either a USB2/3 port and I exceed the 14 port limit. Does it just not connect the port, or does it drop one connections or more off to bring the port count below the 14 port limit?

Thanks for your guidance! I'll post back hopefully tomorrow.

I believe that if you exceed the port limit, the exceeded devices simply do not work.
But I think you do not need to worry about port limit as you have 4 USB3 ports. Even if you attach 4 external 4-port hubs, you will will get 16 ports. Which means only one of the ports on the external hub will not work. 15 is a lot of USB3 ports :lol:
 
Last edited:
@macnb I Try Usbjectall+Dsdt and Z77+FakePC, Ioreg shows different,which one is correctly
 

Attachments

  • Usbinject+DSDT.png
    Usbinject+DSDT.png
    229.4 KB · Views: 226
  • z77+FakePC.png
    z77+FakePC.png
    205.4 KB · Views: 193
hi,jb007,Can u post your origin DSDT.aml, I try to modified it for Usb
 
Last edited:
hi,jb007,Can u post your origin DSDT.aml, I try to modified it for Usb

Here it is... I used DCPIManager to extract it whilst in macOS, as I can't re-boot at the moment and use Clovers method to extract it. Hopefully it's OK to do it this way, but if not, let us know and I'll try later the Clover way.

Edit: @ksong, I've uploaded the DSDT.aml 2.zip that contains the DSDT.aml from my Clover/ACPI/Other after doing a 'F4" during boot. It is different in file size to the one I uploaded previously, why I don't know!
 

Attachments

  • DSDT.aml.zip
    14.4 KB · Views: 106
  • DSDT.aml 2.zip
    14.7 KB · Views: 90
Last edited:
Here it is... I used DCPIManager to extract it whilst in macOS, as I can't re-boot at the moment and use Clovers method to extract it. Hopefully it's OK to do it this way, but if not, let us know and I'll try later the Clover way.

Edit: @ksong, I've uploaded the DSDT.aml 2.zip that contains the DSDT.aml from my Clover/ACPI/Other after doing a 'F4" during boot. It is different in file size to the one I uploaded previously, why I don't know!

Here is the modified dsdt & config I named dsdt1 and config1 ,I Suggest u keep Existing,choose new in clover to test.
BTW u can use dsdt+usbjectall for usb3.0
Modifies the content Include renamed pegp->gfx0,ehcx->eh0x,xhc1->xhc,GFX0._ADR to Zero, ADD Usb3.0,fixed mchc、lpc、smbus....

I hope it is useful
 

Attachments

  • config1.plist
    9.3 KB · Views: 265
  • DSDT1.aml
    40.7 KB · Views: 147
@macnb I Try Usbjectall+Dsdt and Z77+FakePC, Ioreg shows different,which one is correctly
They are both correct.
Look at my comments to @jb007 about FakePCIID_XHCIMux.kext. The purpose of this kext is to direct any USB2 devices attached to USB3 to the EHx controller therefore reducing the number of ports attached to XHC controller. This helps avoid the 15 port limit in the OS. Without FakePCIID_XHCIMux.kext, you see HS01, etc as part of the XHC controller...these are for the USB2 devices just in case you plug them into the USB3 ports.

As I said earlier, read the guide by @RehabMan very carefully as it gives a warning about not using USBInjectAll.kext & patching Port limit for long term use. That's why I use the Z77-USB kext (GA-Z77X-UP5 version of Usbinjectall.kext) together with FakePCIID_XHCIMux.kext. In fact I have now removed the port limit patch from my config.plist as I know that I will not exceed 15 port limit on my XHC.
 
Status
Not open for further replies.
Back
Top