Jump to content

USB ports no longer working reliably after 10.12.6 update


cwestpha
 Share

21 posts in this topic

Recommended Posts

Looks like after the 10.12.6 update something reset in my USB subsystem and now I am no longer able to reliably use almost half of my USB ports. This is across both USB 2.0 and 3.x ports. It looks like the ports re-organized themselves and I am hitting limits again though I am not sure why (granted I have 4 USB hubs attached to my computer in addition to the internal ones). I guess I havent been keeping up on grooming my edits and patches since .3 so it was bound to happen. [i really hope the USB subsystem is better in 10.13]

 

Any assistance would be appreciated. I have attached my ACPI dumps as patched by Clover, the original unpatched dumps, my current config.plist, my patched ssdt.aml, and an IOREG USB dump.

Asrock Z170 Ext 6+ 6700K @ 4.4.zip

Link to comment
Share on other sites

make sure that you are using the latest version of USBInjectAll.kext which is 0.6.2.

 

and this is the latest patch for 100-Series on @Rehabman's GitHub:

Comment: change 15 port limit to 26 in AppleUSBXHCIPCI
Name: AppleUSBXHCIPCI
Find: <83bd8cfe ffff10>
Replace: <83bd8cfe ffff1b>
Link to comment
Share on other sites

Confirmed I am using that version of USBInjectAll.kext and that it is loaded...

 

looks like the hex changed...

 

was

<key>Find</key>

    <data>
    g710////EA==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCIPCI</string>
    <key>Replace</key>
    <data>
    g710////Gw==
    </data>

 

now...

<key>Find</key>
    <data>
    g72M/v//EA==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCIPCI</string>
    <key>Replace</key>
    <data>
    g72M/v//Gw==
    </data>

 

The result is the same though. About half of my USB ports are still not working when something is plugged into them.

Link to comment
Share on other sites

There is a link in my signature "macOS Sierra Guide" you can find a chapter on how to create a custom SSDT-UIAC.aml you might find it useful.

Still missing half of my ports :-(

getting closer though.

<"pci1849,a12f", "pci8086,a12f", "pciclass,0c0330", "XHC">

 

It still isn't detecting two onboard USB 2.0 ports and it still only sees half of the ports on USB 3.0 hubs.

 

HS 1, 2, 5, 7, 14

USR 1

 

appear completely un-used. The internal headers a sensor is on and the Bluetooth USB data lines for Apple Airport card aren't detected.

 Am I correct it is safe to remove USR 2 & the SS devices for Z170 platform?

 

I assume this is just a matter of phantom devices hitting the port limit?

SSDT-UIAC-ALL.dsl.zip

Link to comment
Share on other sites

Still missing half of my ports :-(

getting closer though.

<"pci1849,a12f", "pci8086,a12f", "pciclass,0c0330", "XHC">

 

It still isn't detecting two onboard USB 2.0 ports and it still only sees half of the ports on USB 3.0 hubs.

 

HS 1, 2, 5, 7, 14

USR 1

 

appear completely un-used. The internal headers a sensor is on and the Bluetooth USB data lines for Apple Airport card aren't detected.

 Am I correct it is safe to remove USR 2 & the SS devices for Z170 platform?

 

I assume this is just a matter of phantom devices hitting the port limit?

Did you compile the aml file? or did you use the .dsl file?

If you plugged a device in each USB port and mapped them correctly then you can remove the unused ports because macOS won't use them anyway.

Link to comment
Share on other sites

Did you complete the aml file? or did you use the .dsl file?

I used the .aml file I compiled but attached the .dsl because it includes the commented out sections I removed for reference. That way when I am done freeing up the unused ports, if I find one I accidentally disabled I need to re-enable I can easily see what I killed off and can comment it back in with a quick recompile and save.

Link to comment
Share on other sites

I used the .aml file I compiled but attached the .dsl because it includes the commented out sections I removed for reference. That way when I am done freeing up the unused ports, if I find one I accidentally disabled I need to re-enable I can easily see what I killed off and can comment it back in with a quick recompile and save.

Ok that sound like good plan. But I suggest we do this one step at the time. Remove all the external USB hubs, identify your onboard USB ports and create the SSDT file based on your active ports. If all the ports are working OK then you can move on to step two and add the extra USB ports to the SSDT.

Just one more thing!

 

Did you add the MatchOS entry for the USB port limit patch?

Link to comment
Share on other sites

Did you try changing AppleUSBXHCIPCI to AppleUSBXHCISPT

Is this change mandatory? because my ports are working with the same old patch and there is no mention of the AppleUSBXHCISPT on rehabman's GitHub.

 

Update:

Besides, AFIAK when we use the custom SSDT there is no need for the port limit patch anyway.

Link to comment
Share on other sites

Sorry, I am not expert. This change works on my system. but if you see on system report (USB) you will read host control driver: AppleUSBXHCISPT.

It's ok I'm just curious to know, that's why I asked :)

 

I just replaced the patch and it seems to work as well. Just changed the name and it's working ok.

  • Like 1
Link to comment
Share on other sites

Ok that sound like good plan. But I suggest we do this one step at the time. Remove all the external USB hubs, identify your onboard USB ports and create the SSDT file based on your active ports. If all the ports are working OK then you can move on to step two and add the extra USB ports to the SSDT.

Just one more thing!

 

Did you add the MatchOS entry for the USB port limit patch?

That's actually what I did. Hence my question about SS and USR ports being safe to get rid of (to free up more available ports).

 

I assume it is still true we want to set which XHR ports are 2.0 only since USB 3.x still takes up two port count?

 

I wish there was an easy utility that allowed one to just do an entire high-level overview of your USB ports and how they are setup for easy reference. Like you just open the flood gates using the all ports injector and plug a USB 3.0 mass storage device into each port and it automagically tracks what has real devices off of it and (depending on how it is detected)  handles USB version. Oh well.

 

And no, I don't think I had a MatchOS entry.

 

Did you try changing AppleUSBXHCIPCI to AppleUSBXHCISPT

I have a USB 3.1 bus off of AppleUSBXHCIPCI (ASMedia ASM1142) and my main USB 3.0 (Z170 fed) bus off of AppleUSBXHCISPTI then have two internal USB 2.0 port headers and a 3.0 header. So far only one of the 2.0 headers (two ports) is working. Everything else seems to work/detect fine.

Link to comment
Share on other sites

That's actually what I did. Hence my question about SS and USR ports being safe to get rid of (to free up more available ports).

 

I assume it is still true we want to set which XHR ports are 2.0 only since USB 3.x still takes up two port count?

 

I wish there was an easy utility that allowed one to just do an entire high-level overview of your USB ports and how they are setup for easy reference. Like you just open the flood gates using the all ports injector and plug a USB 3.0 mass storage device into each port and it automagically tracks what has real devices off of it and (depending on how it is detected)  handles USB version. Oh well.

 

And no, I don't think I had a MatchOS entry.

 

I have a USB 3.1 bus off of AppleUSBXHCIPCI (ASMedia ASM1142) and my main USB 3.0 (Z170 fed) bus off of AppleUSBXHCISPTI then have two internal USB 2.0 port headers and a 3.0 header. So far only one of the 2.0 headers (two ports) is working. Everything else seems to work/detect fine.

 

To answer your question I need to see your IOReg. If you can send it to me, I need both IOReg files with and without plugging USB devices in all the USB ports if you can. I need to compare those files to see which ports are used.

 

BUT if the ones you commented out are not showing in the IOReg as busy or used when you plugged a USB device in each and every USB port available then yes it's safe to remove them.

 

How many active USB ports you have including the USB hubs?

Link to comment
Share on other sites

To answer your question I need to see your IOReg. If you can send it to me, I need both IOReg files with and without plugging USB devices in all the USB ports if you can. I need to compare those files to see which ports are used.

 

BUT if the ones you commented out are not showing in the IOReg as busy or used when you plugged a USB device in each and every USB port available then yes it's safe to remove them.

 

How many active USB ports you have including the USB hubs?

I have 27 ports total including hubs (though some devices have internal hubs like the HTC Vive which technically has a hub of its own). All but 4 are USB 3.x. For just the mainboard... there should be the 2 USB 3.1 provided by the ASM1142, plus 8 USB 3.0 and 4 USB 2.0.

 

Will see what I can do for the comparison...

Link to comment
Share on other sites

I have 27 ports total including hubs (though some devices have internal hubs like the HTC Vive which technically has a hub of its own). All but 4 are USB 3.x. For just the mainboard... there should be the 2 USB 3.1 provided by the ASM1142, plus 8 USB 3.0 and 4 USB 2.0.

 

Will see what I can do for the comparison...

Oh my! we need to sacrifice on port. The patch is to change the 15 ports limit to 26.

If you decided to send me the IOReg files it would be great if you could use IOJones instead of IORegistryExplorer. I will check them later because I have to go now. I hope we can find a way to solve your problem.

Link to comment
Share on other sites

 

and this is the latest patch for 100-Series on @Rehabman's GitHub:

Comment: change 15 port limit to 26 in AppleUSBXHCIPCI
Name: AppleUSBXHCIPCI
Find: <83bd8cfe ffff10>
Replace: <83bd8cfe ffff1b>

AFAIK, this is for 10.11.x

 

 

100-series for 10.12 is:

Find: 83BD74FF FFFF10
Replace: 83BD74FF FFFF1B
  • Like 1
Link to comment
Share on other sites

Where do we change this?

This is the name of the patch

 

for up to 10.12.5

<dict><key>Comment</key>
<string>change 15 port limit to 26 in AppleUSBXHCIPCIName: AppleUSBXHCIPCI</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
g72M/v//EA==
</data>
<key>Name</key>
<string>AppleUSBXHCIPCI</string>
<key>Replace</key>
<data>
g72M/v//Gw==
</data>
</dict>

and for 10.12.6

<dict><key>Comment</key>
<string>change 15 port limit to 26 in AppleUSBXHCIPCIName: AppleUSBXHCIPCI</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
g72M/v//EA==
</data>
<key>Name</key>
<string>AppleUSBXHCISPT</string>
<key>Replace</key>
<data>
g72M/v//Gw==
</data>
</dict>
Link to comment
Share on other sites

 Share

×
×
  • Create New...