Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
It might have something to do with the set of ACPI "Fixes" you have in config.plist/ACPI/DSDT/Fixes.
I'd be willing to bet that most of those options are not needed...

I read the Clover Wiki and tried to understand what fixes & patches to use, but I probably misunderstood most of it. The explanations are not that clear. I will remove most of the fixes and see if it works better.
FIX_ACST_4000000 sounds like it should be used if you have an ASUS board. If I understand correctly this also requires NewWay_80000000 and AddDTGP_0001. Or maybe not. :crazy:
 
I read the Clover Wiki and tried to understand what fixes & patches to use, but I probably misunderstood most of it. The explanations are not that clear. I will remove most of the fixes and see if it works better.
FIX_ACST_4000000 sounds like it should be used if you have an ASUS board. If I understand correctly this also requires NewWay_80000000 and AddDTGP_0001. Or maybe not. :crazy:

Remove all "Fixes".
 
Hello, long story short, I updated to Sierra and some usb ports weren’t working as expected (3.1 were ok but neither of the usb 3.0) So I followed these steps:
  • Choosing correct BIOS options
  • Renaming EHCx->EH0x
  • Installed FakePCIID.kext and FakePCIID_XHCIMux.kext
  • Applied the XOSI fix with SSDT-XOSI.dsl (compiled)
  • Installed USBInjectAll.kext (-uia_exclude_xhc)
Mobo: ASUS Z97-A 3.1

I tested them thought each step, but that didn’t fixed, then i removed the -uia_exclude_xhc flag, and tried one by one with - uia_exclude_hs, -uia_exclude_ss, -uia_exclude_ssp) and finally did worked with uia_exclude_hs.

So my question is, this could be a long-term solution? or should a need a specific customized port limit patch, going one by one and testing?
All of my USB 3.0 and 3.1 are working now at he back panel. I have two 3.0 that come from the front panel of the case that are just like 2.0, but i can live with that.

One problem that i do have is that my external Seagate 3tb hard drive doesn’t shut down with my computer, the light is still on and feels that discs still running. Funny is that when i put my computer to sleep, the seagate disc does shut down, but don’t know if it is relate to a problem with the usb.

LONG VERSION

I had a very stable installation of El Capitan, just had the problem of some usb 3.0 not working at he back of my mob, and two usb 3.1 not working at all., but nothing more.

Then I decided to updated it to Sierra with Clover following:

https://www.tonymacx86.com/threads/direct-update-to-macos-sierra-using-clover.201465/

When finished I had problems with the audio not working, after going to sleep the display didn’t work and the usb.

I fixed the audio with (thought I think the sounds is lower now):

https://github.com/toleda/audio_ALC_guides

I fixed the display problem after sleep setting darkwake=0 in Clover

Now, regarding USB, the funny was all USB 3.0 at the back panel were not working as such, but as 2.0. And the USB 3.1 were working, like never did. One usb 3.0 at the front panel was working ok too.

So, i tried to fixed with:
  • Choosing correct BIOS options
  • Renaming EHCx->EH0x
  • Installed FakePCIID.kext and FakePCIID_XHCIMux.kext
  • Applied the XOSI fix with SSDT-XOSI.dsl (compiled)
  • Installed USBInjectAll.kext (-uia_exclude_xhc)
Then i removed the -uia_exclude_xhc flag, and tried one by one with - uia_exclude_hs, -uia_exclude_ss, -uia_exclude_ssp) and finally did worked with uia_exclude_hs.

So my question is, this could be a long-term solution? or should a need a specific customized port limit patch, going one by one and testing?
All of my USB 3.0 and 3.1 are working now at he back panel. I have two 3.0 that come from the front panel of the case that are just like 2.0, but i can live with that.

One problem that i do have is that my external Seagate 3tb hard drive doesn’t shut down with my computer, the light is still on and feels that discs still running. Funny is that when i put my computer to sleep, the seagate disc does shut down, but don’t know if it is relate to a problem with the usb.

Thanks in advance for any advise.
 
Hi,
I'm hoping someone can tell me where I've gone wrong. I have a Bitfenix Phenom with Z170MX-Gaming-5 and have connected to the internal F_USB3.0_2 (lower when mounted in case). At the moment I'm running the AppleUSBXHCIPCI which I understand should be temporary so I've used IO Reg and a USB3 hub to map my ports which gives me these results:

Case Ports:
HS10, SS10 - top case port
HS09, SS09 - bottom case port

back panel ports, looking top down, left is closest to case edge.
HS05, SS05 -top left USB3 port
HS06, SS06 -top right USB3 port
USB 3.1 port - nothing?
HS04, SS04 -right of 3.1 USB3 port
USB type-C port - nothing
HS14 - Yellow bottom left port
HS13 - Yellow bottom right port

In light of this I created the .aml to exclude HS01;HS02;HS11;SS01;SS02 using "uia_exclude=HS01;HS02;HS11;SS01;SS02"

But am wondering if there's a way to get the Type-C port in particular to behave? I bought the Type-C to Thunderbolt 2 adapter hoping to connect it to an external but it doesn't register at all?

I have attached all troubleshooting zip files (EFI, aml, IOReg output), if anyone has the same board & case and it turns out my fixes are correct I hope this makes it a simpler process for someone else :)

My Kextcache output is:
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext AppleHDA.kext
KernelCache ID: 6528A435C0619A16ECE45735A9C1248A
symlink("/System/Library/PrelinkedKernels/prelinkedkernel", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 17 (File exists) <createPrelinkedKernel 2795>

cheers,
J
 

Attachments

  • EFI.zip
    1.4 MB · Views: 95
  • GA-Z170MX-GAMING-5-USB.aml.zip
    928 bytes · Views: 76
  • imac.zip
    692.9 KB · Views: 73
Hello, long story short, I updated to Sierra and some usb ports weren’t working as expected (3.1 were ok but neither of the usb 3.0) So I followed these steps:
  • Choosing correct BIOS options
  • Renaming EHCx->EH0x
  • Installed FakePCIID.kext and FakePCIID_XHCIMux.kext
  • Applied the XOSI fix with SSDT-XOSI.dsl (compiled)
  • Installed USBInjectAll.kext (-uia_exclude_xhc)
Mobo: ASUS Z97-A 3.1

I tested them thought each step, but that didn’t fixed, then i removed the -uia_exclude_xhc flag, and tried one by one with - uia_exclude_hs, -uia_exclude_ss, -uia_exclude_ssp) and finally did worked with uia_exclude_hs.

So my question is, this could be a long-term solution? or should a need a specific customized port limit patch, going one by one and testing?
All of my USB 3.0 and 3.1 are working now at he back panel. I have two 3.0 that come from the front panel of the case that are just like 2.0, but i can live with that.

One problem that i do have is that my external Seagate 3tb hard drive doesn’t shut down with my computer, the light is still on and feels that discs still running. Funny is that when i put my computer to sleep, the seagate disc does shut down, but don’t know if it is relate to a problem with the usb.

LONG VERSION

I had a very stable installation of El Capitan, just had the problem of some usb 3.0 not working at he back of my mob, and two usb 3.1 not working at all., but nothing more.

Then I decided to updated it to Sierra with Clover following:

https://www.tonymacx86.com/threads/direct-update-to-macos-sierra-using-clover.201465/

When finished I had problems with the audio not working, after going to sleep the display didn’t work and the usb.

I fixed the audio with (thought I think the sounds is lower now):

https://github.com/toleda/audio_ALC_guides

I fixed the display problem after sleep setting darkwake=0 in Clover

Now, regarding USB, the funny was all USB 3.0 at the back panel were not working as such, but as 2.0. And the USB 3.1 were working, like never did. One usb 3.0 at the front panel was working ok too.

So, i tried to fixed with:
  • Choosing correct BIOS options
  • Renaming EHCx->EH0x
  • Installed FakePCIID.kext and FakePCIID_XHCIMux.kext
  • Applied the XOSI fix with SSDT-XOSI.dsl (compiled)
  • Installed USBInjectAll.kext (-uia_exclude_xhc)
Then i removed the -uia_exclude_xhc flag, and tried one by one with - uia_exclude_hs, -uia_exclude_ss, -uia_exclude_ssp) and finally did worked with uia_exclude_hs.

So my question is, this could be a long-term solution? or should a need a specific customized port limit patch, going one by one and testing?
All of my USB 3.0 and 3.1 are working now at he back panel. I have two 3.0 that come from the front panel of the case that are just like 2.0, but i can live with that.

One problem that i do have is that my external Seagate 3tb hard drive doesn’t shut down with my computer, the light is still on and feels that discs still running. Funny is that when i put my computer to sleep, the seagate disc does shut down, but don’t know if it is relate to a problem with the usb.

Thanks in advance for any advise.

See linked guide for creating custom SSDT for USBInjectAll.kext.
Keep in mind both posts request "Problem Reporting" files in the case of any reply for help.
 
Hi,
I'm hoping someone can tell me where I've gone wrong. I have a Bitfenix Phenom with Z170MX-Gaming-5 and have connected to the internal F_USB3.0_2 (lower when mounted in case). At the moment I'm running the AppleUSBXHCIPCI which I understand should be temporary so I've used IO Reg and a USB3 hub to map my ports which gives me these results:

Case Ports:
HS10, SS10 - top case port
HS09, SS09 - bottom case port

back panel ports, looking top down, left is closest to case edge.
HS05, SS05 -top left USB3 port
HS06, SS06 -top right USB3 port
USB 3.1 port - nothing?
HS04, SS04 -right of 3.1 USB3 port
USB type-C port - nothing
HS14 - Yellow bottom left port
HS13 - Yellow bottom right port

In light of this I created the .aml to exclude HS01;HS02;HS11;SS01;SS02 using "uia_exclude=HS01;HS02;HS11;SS01;SS02"

But am wondering if there's a way to get the Type-C port in particular to behave? I bought the Type-C to Thunderbolt 2 adapter hoping to connect it to an external but it doesn't register at all?

I have attached all troubleshooting zip files (EFI, aml, IOReg output), if anyone has the same board & case and it turns out my fixes are correct I hope this makes it a simpler process for someone else :)

My Kextcache output is:
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext AppleHDA.kext
KernelCache ID: 6528A435C0619A16ECE45735A9C1248A
symlink("/System/Library/PrelinkedKernels/prelinkedkernel", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 17 (File exists) <createPrelinkedKernel 2795>

cheers,
J

Port limit patch is only for short-term use (port discovery). See guide for custom SSDT for USBInjectAll.kext.
 
Hello RehabMan.

These USB injectors, for USB2 and USB3 in static patch:
Code:
Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                                          
                    })
                }

                Return (Package (0x12)
                {
                    "AAPL,clock-id",
                    Buffer (One)
                    {
                         0x01                                          
                    },

                    "built-in",
                    Buffer (One)
                    {
                         0x00                                          
                    },

                    "subsystem-id",
                    Buffer (0x04)
                    {
                         0x70, 0x72, 0x00, 0x00                        
                    },

                    "subsystem-vendor-id",
                    Buffer (0x04)
                    {
                         0x86, 0x80, 0x00, 0x00                        
                    },

                    "AAPL,current-available",
                    0x0834,
                    "AAPL,current-extra",
                    0x0898,
                    "AAPL,current-extra-in-sleep",
                    0x0640,
                    "AAPL,device-internal",
                    0x02,
                    "AAPL,max-port-current-in-sleep",
                    0x0834
                })
            }
        }

Can be replaced by "Arbitrary" in Devices section on Clover?
Code:
<key>Arbitrary</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>Intel EH01 #1</string>
                <key>CustomProperties</key>
                <array>
                    <dict>
                        <key>Key</key>
                        <string>subsystem-id</string>
                        <key>Value</key>
                        <data>
                        cHIAAA==
                        </data>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>subsystem-vendor-id</string>
                        <key>Value</key>
                        <data>
                        hoAAAA==
                        </data>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,current-available</string>
                        <key>Value</key>
                        <integer>2100</integer>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,current-extra</string>
                        <key>Value</key>
                        <integer>2200</integer>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,current-extra-in-sleep</string>
                        <key>Value</key>
                        <integer>1600</integer>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,max-port-current-in-sleep</string>
                        <key>Value</key>
                        <integer>2100</integer>
                    </dict>
                </array>
                <key>PciAddr</key>
                <string>00:1D.00</string>
            </dict>
            <dict>
I want do this for totally use "hotpatch" way.
 
Hello RehabMan.

These USB injectors, for USB2 and USB3 in static patch:
Code:
Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                                        
                    })
                }

                Return (Package (0x12)
                {
                    "AAPL,clock-id",
                    Buffer (One)
                    {
                         0x01                                        
                    },

                    "built-in",
                    Buffer (One)
                    {
                         0x00                                        
                    },

                    "subsystem-id",
                    Buffer (0x04)
                    {
                         0x70, 0x72, 0x00, 0x00                      
                    },

                    "subsystem-vendor-id",
                    Buffer (0x04)
                    {
                         0x86, 0x80, 0x00, 0x00                      
                    },

                    "AAPL,current-available",
                    0x0834,
                    "AAPL,current-extra",
                    0x0898,
                    "AAPL,current-extra-in-sleep",
                    0x0640,
                    "AAPL,device-internal",
                    0x02,
                    "AAPL,max-port-current-in-sleep",
                    0x0834
                })
            }
        }

Can be replaced by "Arbitrary" in Devices section on Clover?
Code:
<key>Arbitrary</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>Intel EH01 #1</string>
                <key>CustomProperties</key>
                <array>
                    <dict>
                        <key>Key</key>
                        <string>subsystem-id</string>
                        <key>Value</key>
                        <data>
                        cHIAAA==
                        </data>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>subsystem-vendor-id</string>
                        <key>Value</key>
                        <data>
                        hoAAAA==
                        </data>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,current-available</string>
                        <key>Value</key>
                        <integer>2100</integer>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,current-extra</string>
                        <key>Value</key>
                        <integer>2200</integer>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,current-extra-in-sleep</string>
                        <key>Value</key>
                        <integer>1600</integer>
                    </dict>
                    <dict>
                        <key>Key</key>
                        <string>AAPL,max-port-current-in-sleep</string>
                        <key>Value</key>
                        <integer>2100</integer>
                    </dict>
                </array>
                <key>PciAddr</key>
                <string>00:1D.00</string>
            </dict>
            <dict>
I want do this for totally use "hotpatch" way.

You can do it with config.plist/Devices/Arbitrary, or with an add-on SSDT.
Refer to SSDT-EH01.dsl, SSDT-EH02.dsl, and SSDT-XHC.dsl in the hotpatch repo.
Also there are Clover options for this in config.plist/Devices/USB.
 
Also there are Clover options for this in config.plist/Devices/USB.
Hmmm, so in simple words the patches: Inject/AddClockID/FixOwnership/HighCurrent in Devices > USB, do the same as inject static patch?
 
Hmmm, so in simple words the patches: Inject/AddClockID/FixOwnership/HighCurrent in Devices > USB, do the same as inject static patch?

I don't know if the values injected are the same. You can verify in ioreg.
The advantage of doing it yourself with SSDT/Arbitrary/etc is that you can change the values if needed, and have total control over which properties are injected. Clover Devices/USB/Inject gives you only limited control.
 
Status
Not open for further replies.
Back
Top