Contribute
Register

After 10.14.2 Update USB 3 is Broken

Status
Not open for further replies.
In theory yes, but it depends on which connector on the motherboard you plug your external ports into. Some motherboards have multiple options for this and if you plug yours into a different connector then the chances are that it (the SSDT) wouldn't work. Also, some motherboards have multiple revisions throughout their manufacturing period, so again the settings may be different between revisions.

A repository of them all could easily be made but I suspect that the management of that, with so many different contributors, would be a nightmare and arguments would break out between people who say they work a treat and other that say they don't, just because they downloaded the wrong revision or plugged their external (case) connector into a different one on the board.

YOU could always volunteer to collect and manage them. :):)

I couldn't agree more! A repository would be a nightmare, I can already perceive the long threads of complaints because of compatibility problems ! I finally found a SSDT for my motherboard, which, yes i'm stupid, was already installed in my EFI partition ! I'll upload it here when I have positive feedback from the update...
 
I report a perfectly working update ! SSDT for gigabyte H170N-Wifi was made ages ago by Amulder and still works like a charm, just can find it just down below.
This is what I used when I had this MB worked like a charm. Then I upgraded to the 270 variant and found a proper SSDT and works like a charm too (sleep, USB-C, etc.)
 
Hi all. You might not be aware that there is another method that makes it a little easier to patch your USB ports. Have a look at this post by @headkaze [Release] Intel FB-Patcher v1.6.6 - the USB Port Patching Section.

The name of this app does not do it justice, as it can do not only frame buffer, but also audio and USB patching.

I have used both the SSDT and this method. For non-tech people this is far easier and the added advantage is that it should withstand future updates.
Edit: Both methods should withstand macOS updates, and should only need to be changed if you are using different hardware, e.g you change your motherboard.

Note from what HeadKaze is saying, "macOS 10.14.1+ does not work with the USB port limit patch". So that may be the reason why people are having issues now with 10.14.2.

Also the Audio section works well also, at least for me!

Jim
 
Last edited:
It does seem hard to understand when you are presented with it for the first time. But, if you just follow the steps it is a very simple process. I bet if you had to do it again if wouldn't take you very long.
Well, if you ask me my name I would be more than happy to tell you, but with two options so your job is to choose which one works better for you despite the answer being the same.

Option 1: My uncle John is a father of 3 boys, Martin, Emil and the youngest Han, I remember when I was kid Emil was my brother James's close buddy, once Emil was at our home visiting my brother James he brought his youngest brother Han with him, suddenly after a while I heard Han asking my brother James ''hey where is Robert?'', I heard my brother James telling him ''He is in the next room'', suddenly I saw Han getting in my room to say ''Hi''.

Option 2: My name is Robert.
 
Whoever says "Oh no it's hard" "Oh no I don't have time" "Oh no I have a job" obviously have not even attempted the Rehabman method and already declared defeat. They really should go back to Windows.
 
Maybe because it's NOT simple. Looks like a process for advanced users with plenty of time on their hands. Maybe someone could break it down into a more usable step-by-step guide.
Rehabman's guide is about as good as you'll get. Anyone interested in configuring a Hackintosh optimally is just going to have to accept that it's necessary to learn more than you might want to about the technical aspects of ACPI and macOS. Just read the guide carefully and re-read each section until you've got it. It doesn't require you to be a programmer to get it working.

The repository idea would only ever partially work because just about any motherboard will have enough chipset USB ports to exceed the 15 port per-controller limit and for this reason any system must be customised to a certain extent if you want to stay under the limit.

The thing I've observed about custom SSDTs and other EFI/CLOVER files is that, to a large extent, they set up the hardware emulation and are OS-independent. This means that once a solution or optimisation is found then it usually should be kept as an essential component when doing OS upgrades, fresh installs or even booting from another system's boot drive. Specifically, once you've found a solution for correct USB operation by way of an SSDT then that SSDT should be maintained as a permanent fixture of the EFI/CLOVER environment for THAT PARTICULAR SYSTEM (motherboard). A working USB boot loader with current EFI/CLOVER should always be maintained. If this basic modus operandi is followed then the problem of "the system upgrade broke my USB" is unlikely to happen, at least until Apple makes another major change to the USB subsystem like they did at El Capitan.

I'll try to help by breaking down Rehabman's method as I understand it (@RehabMan if you're reading I welcome any correction to my understanding):

  1. The SSDT that you create is meant to work in conjunction with USBInjectAll.kext
  2. The port numbering and connection type must be found for all chipset USB ports on the system. This is the discovery process and it's not optional.
  3. To facilitate item 2. the 15-port limit must be temporarily removed.
  4. If the port-limit patch is not enacted the USB2 ports usually fill up most of the available 15, with only a couple of USB3 ports making the cut.
  5. The discovery process is not complex. It's just a means of observing where the ports actually are in the ACPI. IORegistryExplorer is the tool for doing this. It's a developer's tool but for this task the usage is straightforward.
  6. The data resulting from 5. is used to build your custom SSDT. You don't need to understand ACPI programming to adapt the template file for this purpose. I can't write an SSDT from scratch but I can certainly modify the template to make a custom file. The tool for doing this is MaciASL.
  7. Once you've got a complete SSDT it will likely contain more than 15 ports. The number of ports needs to be culled to get to 15 or less. There's a couple of ways to do this. You can use -uia-exclude as a boot flag followed by the unused ports or, the way I do it, deleting the unwanted ports from the SSDT.dsl before compiling to SSDT.aml (actually SSDT-UAIC.dsl & SSDT-UAIC.aml in my case).
  8. When all appears to be functioning properly then the port-limit is re-instated by removing the relevant patch.
  9. None of the above is relevant to non-chipset USB ports, either onboard or on expansion cards.
Once this is solid then YOU KEEP THE FILES safe and sound to be used for all installations for that particular system until you change the hardware somehow. One example of such a change might be the installation of a front panel USB module that connects to a previously unused mother board header.
 
The guide looks really intimidating, but on youtube there is a great guide form TechTies Ibrahim.
If you watch the two parter about SSDT's you will see it is not so difficult after-all.

I made one a couple of weeks ago and now with the new update everything still works.
 
No added advantage...
USBInjectAll.kext + custom SSDT withstands updates just fine.

Yes sorry @RehabMan, I didn't mean to imply that your SSDT method doesn't withstand updates. I've used your method and the FB Patcher way, and for some people the later is easier I think because it is more 'visual' and less technical.

At the end of the day there is no excuse to not have your USB ports working by using either method.
 
Status
Not open for further replies.
Back
Top