Contribute
Register

Trouble Finding Optimal GA-Z490-UD USB layout

Status
Not open for further replies.
Joined
May 25, 2011
Messages
26
Motherboard
Gigabyte GA-Z490-UD
CPU
i7-10700K
Graphics
RX 6800
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Classic Mac
  1. PowerBook
Mobile Phone
  1. iOS
Trying to find the best USB layout with my new Z490 system has me seriously puzzled. I started out with the last config posted from @Middleman build here. This worked okay, but many of the USB3 ports were not registering with USB3 devices, so I set out to build my own following the New USB guide with Hackintool, inject all and XHCI-unsupported kexts along with UIAC AML. This got me four more USB3 ports, but some were still missing (SS08?). I found SS01 working but SS09 would no longer work and vice versa with build I started with.

IO-shield-GA-Z490-UD.jpeg


Ideally I would like to have both SS01 and SS09 and give up some other SS and HS ports selectively, however it seems I can't consistently see all available ports without either inject all or some of the auxiliary AMLs to go with, and even then some ports are unavailable. Even after I exported the build with most USB3 / SS ports, When I rebooted only 3 of the 5 USB3 ports would work, and some of the HS ports were also missing.

What am I doing wrong? Kext load order? too many ports? should I use something other than Hackintool to assess and edit the ports I need?
 

Attachments

  • CustomBuildAfterInjectAll.png
    CustomBuildAfterInjectAll.png
    118.6 KB · Views: 38
  • InjectAllWithUnsupported.png
    InjectAllWithUnsupported.png
    136.1 KB · Views: 36
  • PremadeGAZ490Build.png
    PremadeGAZ490Build.png
    99.1 KB · Views: 30
  • Screen Shot 2022-10-10 at 12.27.56 AM.png
    Screen Shot 2022-10-10 at 12.27.56 AM.png
    171.1 KB · Views: 30
Trying to find the best USB layout with my new Z490 system has me seriously puzzled. I started out with the last config posted from @Middleman build here. This worked okay, but many of the USB3 ports were not registering with USB3 devices, so I set out to build my own following the New USB guide with Hackintool, inject all and XHCI-unsupported kexts along with UIAC AML. This got me four more USB3 ports, but some were still missing (SS08?). I found SS01 working but SS09 would no longer work and vice versa with build I started with.

View attachment 555913

Ideally I would like to have both SS01 and SS09 and give up some other SS and HS ports selectively, however it seems I can't consistently see all available ports without either inject all or some of the auxiliary AMLs to go with, and even then some ports are unavailable. Even after I exported the build with most USB3 / SS ports, When I rebooted only 3 of the 5 USB3 ports would work, and some of the HS ports were also missing.

What am I doing wrong? Kext load order? too many ports? should I use something other than Hackintool to assess and edit the ports I need?

Hi.

I've taken some time to examine everything you have provided for us ... There are several factors which will be causing what you are seeing.

I've listed them here:

1) I start by assuming that in general you have used the EFI from the build you linked to? I tested using the last/latest version in the first build post - EFI Monterey OC 0.7.8 12.3+.zip.

2) I assume you have exactly the same motherboard as Middleman ?

3) Are you running Monterey?

More detail:

4) You do not need to use an SSDT-UIAC.aml if USBInjectAll is not loading, as in the original.

5) The USBPorts.kext in the EFI you link to is, unfortunately, set for system-definition iMac18,3 but the config.plist is set to iMac20,1 so the kext won't work. Even if it did, the "port-count" variable is incorrect and you would not see any ports above HS06.

6) The version of USBInjectAll.kext in the EFI is version 0.7.5 and does not include system-definition iMac20,1, only iMac18,3 so again, will not work.

7) If you decided to test the included USBMap.kext instead of USBPorts.kext, then the same errors exist, although the system-definition in there is MacPro7,1.

Okay, so what to do?

Using Monterey makes doing a fresh USB port configuration very difficult as the XhciPortLimit quirk (in the config.plist etc.) no-longer works to open-up all ports for testing. That worked only as far as Big Sur 11.2.

USBInjectAll.kext version 0.7.7 should work with a Z490, so for now go that route and disable the other USB kexts.

The supplied SSDT-UIAC.aml also should work with USBInjectAll.kext to give you 14x configured ports. However it does not include HS01 so you would have to edit the SSDT to add it. Doing so should be fine as it will take your port count up to 15x which is in line with macOS limits.

Ensure USBInjectAll.kext is active in config.plist along with the SSDT. Disable the other USB kexts and test boot.

You do not need XHCI-unsupported.kext at all for a Z490.

Remember - important - to create a back-up USB boot stick with a working EFI on it, in case your experiments go awry. That way you will still be able to boot your system using it.

If the above makes no difference or does not work, we will have to explore other methods to create a working USBPorts.kext. The ideal way is to boot Catalina to build the kext.
 
Last edited:
Thanks for the reply @UtterDisbelief. Yes this is a fresh Monterey install; I'd read about the issue with XhciPortLimit not working after a certain point but read other success stories with a fresh Monterey install so I figured I'd give it a go.

I did not realize the system-definitions were off for the supplied USBPorts kexts I was working with. I think that would explain why SS09 was working for iMac18,3 system but not showing for the iMac19,1 that I was using InjectALL with.

I was only using the UIAC with the InjectALL kext to explore the discovered ports with Hackintool; I had USBPorts disabled /uninstalled during those sessions. I only just added XHCI-unsupported last night before another port inspection to see if it would help, but nothing changed.

What I am gleaning is that the system-definition name is somehow revealing/concealing access to different USB port layouts. Is there a way to investigate and enable ports from two different systems in a single USBPorts.kext?

I think I could experiment with generating a new SSDT-UIAC.aml with Hackintool for different system-definition names, 19,1 - 20,1 etc, and then load them with USBInjectAll.kext and see what ports are revealed. I am uncertain about the purpose of using the correct System name outside of it affects SMC functions like temp monitoring, fan control, etc..

Another thing I noticed was Wake from Sleep with USB connected keyboard works, but then the keyboard does not work. USB Mouse still works fine though. Replugging the keyboard brings it back. I haven't find a BIOS setting that controls CPU PLL yet, but now I am wondering if that is a System Name issue as well..

Hmmm.
 
It's possible that you're missing some extra SSDTs to activate those ports. Aside from SSDT-EC-USBX-DESKTOP.aml and SSDT-UIAC you really need to look at enabling SSDT-PLUG and SSDT-SBUS-MCHC.aml - the last one is used to enable the full system bus. Before we forget you also need to make sure XHCI handoff is enabled in BIOS. Another thing you could also try is the USB Toolbox script under Windows and see if it produces a better working USB map, and also the ReleaseUSBOwnership quirk to see if that improves things. Other than that if your ports aren't detected in Hackintools or similar it may also be a PSU power issue if you don't see enough of the ports available. It may also be a good idea to do a BIOS DSDT dump of your system to see what comes up in the output.
 
... you could also try is the USB Toolbox script under Windows and see if it produces a better working USB map,

Sir, wash your mouth out!!! :lol:
 
... Is there a way to investigate and enable ports from two different systems in a single USBPorts.kext?

If you are an ace xml coder then yes (although so far, no one has). Otherwise no.

Because the kext is aiming to patch a particular part of your ACPI then the code we inject has to match the host at that time.

You can though, manually edit an already working definition and change the system-definition within.

No, the system-definition does not, in itself, hide or reveal any USB ports. They physically exist in the Intel support chip - Z490 in your case - and what we are doing is "tricking" macOS to recognise them as native to the host.

:)
 
Thanks for the tips again - I tried all of those things - the best Mac results I got was using USBInjectAll v0.7.8 with no SSDT-UIAC.aml loaded gave me a full list of devices, all stated as USB3 devices. However with exception to the front ports HS11/HS12 no other HS ports would light up. Interestingly, with this inspection the HS and SS port numbers would be the same per port, instead of offset with the other configs.

@Middleman yes PLUG and MCHC amls were enabled the whole time. BIOS settings were correct including XHCIHandoff.

In the end using USBToolBox in Windows did the trick, but the generated list in Hackintool is sequential with just the port mix I selected, so it doesn't match up with what InjectAll was giving for a mappable port list.

Still USB Keyboard will not re-attach after wake-from-sleep, even if I wake with the keyboard! I need to see if other USB devices are dropped - could it really be a PSU insufficiency ( 650w ) ? None of the CPU PLL settings match what I am finding for fixes elsewhere.

(edited to clarify where I used USBToolBox to generate working USB kext)
 
Last edited:
Thanks for the tips again - I tried all of those things - the best Mac results I got was using USBInjectAll v0.7.8 with no SSDT-UIAC.aml loaded gave me a full list of devices, all stated as USB3 devices. However with exception to the front ports HS11/HS12 no other HS ports would light up. Interestingly, with this inspection the HS and SS port numbers would be the same per port, instead of offset with the other configs.

@Middleman yes PLUG and MCHC amls were enabled the whole time. BIOS settings were correct including XHCIHandoff.

In the end USBToolkit did the trick, but the generated list in Hackintool is sequential with just the port mix I selected, so it doesn't match up with what InjectAll was giving for a mappable port list.

Still USB Keyboard will not re-attach after wake-from-sleep, even if I wake with the keyboard! I need to see if other USB devices are dropped - could it really be a PSU insufficiency ( 650w ) ? None of the CPU PLL settings match what I am finding for fixes elsewhere.

Well, you still haven't told us what motherboard you are using. @Middleman used a Gigabyte Z490 Aorus Extreme. The back-panel you posted a photo of is *not* that motherboard. So the USB set-up is completely different.

My guess is that yours is probably a Gigabyte Z490 UD.

The USB stacks are configured differently on these two motherboards. So the USBPorts.kext - or whatever other method you choose - will need to be different too.

A Gigabyte Z490 is one of the easier motherboards to configure, so if the USB guides are followed correctly, without extra kexts thrown in, then you should have no problem configuring your set-up.
 
@UtterDisbelief the board I am working with has been in the title of this thread since first post. Not sure how you missed it. Yes it's a UD model and that is the shield from the back panel, got the picture from here: Z490 UD (rev. 1.0)

While I've put several custom USB SSDTs together in the past, this one has not been as straightforward for all the reasons that have been discussed here and other threads. As stated at the outset, I went through the 'New USB Setup Guide', several times with different USBInjectAll and UIAC combos. I searched for a specific SSDT AML for this particular board but have not found one. I did this all before first posting.

I really appreciate the assistance.

As stated in my last post, the best luck I've had with OC/Hackintool is using the latest USBInjectAll (0.7.8) that I could find, removing the UIAC AML and scanning the ports with Hackintool this seemed to reveal all the same ports as USBToolKit did in Windows 10, but most of the HS ports would not light up when connected with a USB 2.0 device.

I am guessing several of the features noted in the USBToolKit are what is allowing it to find all the available ports correctly:
  • Ignore port definitions from ACPI to force macOS to enumerate all ports manually
    • Bypasses borked ACPI as seen on some ... 400 series Intel motherboards
  • Override any built-in Apple USB maps attaching based on SMBIOS and controller name
  • Does not require model identifier specified in USB map (if attaching to PCI device)
 
@UtterDisbelief the board I am working with has been in the title of this thread since first post. Not sure how you missed it.

... because you do not reflect this in your Profile which is what people see when reading your latest post. This is something required in the site rules etc.

I was making a point.

As for USBToolBox, if you are configuring from the Windows version, there are more options than in the macOS version, however "guessing" the missing ports is not its strong point, despite appearances.

I only actively recommend Hackintool and its USBPorts.kext.
 
Status
Not open for further replies.
Back
Top