Contribute
Register

OSX El Capitan - USB Issues

Status
Not open for further replies.
Alright, I've renamed EHC1 > EH01 and EHC2 > EH02 and left XHC the same. It still says "port limit reached ... " in kernel log, so I don't think it made too much of a difference. I guess I have no other option except the port injector ...

How do you make a port injector? :think: Is there anything I can refer to to help me make a custom one?
 
I've done some digging into the Apple "port injectors" and this is what I found for my SMBIOS (iMac14,2):

This data is actually easily seen from ioreg.

XHC1 will not affect you if your XHCI controller is named XHC.


I'm going to now proceed to disabling the built-in port injectors and see if that makes a difference...

Simple matter of rename ECH1->EH01, EHC2->EH02.
 
This data is actually easily seen from ioreg.

XHC1 will not affect you if your XHCI controller is named XHC.




Simple matter of rename ECH1->EH01, EHC2->EH02.

Yep. I've already renamed the DSDT devices with no change (still says "port limit reached")... Now my only real question is how to make a port injector to configure this all? :think:
 
Yep. I've already renamed the DSDT devices with no change

Not according to ioreg that you provided previously.

(still says "port limit reached")...

Not unexpected (once you do the rename), as your DSDT probably includes all the ports...

Now my only real question is how to make a port injector to configure this all? :think:

Refer to my examples in the u430, y50, and envy projects (see "Projects" link in signature).
 
Not according to ioreg that you provided previously.



Not unexpected (once you do the rename), as your DSDT probably includes all the ports...



Refer to my examples in the u430, y50, and envy projects (see "Projects" link in signature).

I never provided an IOReg :lol::pbut I can dump one once I'm able to boot back into OS X:

I was trying to get USB working and I installed the DummyUSBXHCIPCI and DummyUSBEHCIPCI kexts from PokeNguyen's InsanelyMac post about the SMBIOS and the port injector stuff, because someone on the forum posted that it worked for him on a similar mobo. I tried it, rebuilt cache, rebooted, and none of the USB ports worked AT ALL! Since then, I've tried the following:

-Booting into recovery
--this actually worked, and I tried to remove the kexts by doing:
---fsck -fy
---mount -uw /
---rm -Rf /System/Library/Extensions/DummyUSBXHCIPCI.kext
---rm -Rf /System/Library/Extensions/DummyUSBEHCIPCI.kext
---touch /System/Library/Extensions && kextcache -u /
---reboot

Didn't work, and apparently it's the rebuilding cache part, since I tried deleting FakePCIID and the XHCIMux thing too. I tried deleting the dummy kexts & fakepciid from WINDOWS using paragonhfs and rebuilt cache and that still didn't do anything, so I'm kinda stuck since I can't use any keyboard / mouse...

it's off topic but might want some help with that :p

Thanks!

-Duncan
 
I never provided an IOReg

Must have gotten you mixed up with someone else... Oh well.

I was trying to get USB working and I installed the DummyUSBXHCIPCI and DummyUSBEHCIPCI kexts

Dummy kexts not needed for this task... not recommended.

Once the EHCx objects are renamed to avoid the built-in injectors, a normal injector kext will work.

-Booting into recovery
--this actually worked, and I tried to remove the kexts by doing:
---fsck -fy
---mount -uw /
---rm -Rf /System/Library/Extensions/DummyUSBXHCIPCI.kext
---rm -Rf /System/Library/Extensions/DummyUSBEHCIPCI.kext
---touch /System/Library/Extensions && kextcache -u /
---reboot

When you boot recovery /System/Library/Extensions refers to the recovery partition, not your system partition.

Try safe mode... will only work if the dummy kexts aren't marked OSBundleRequired=Root (which they probably are).

You can remove the kexts from the recovery partition:
Code:
rm -Rf /Volumes/name-you-gave-to-your-system-partition/System/Library/Extensions/kext-to-remove.
#etc.

Otherwise... fresh install always works.
 
Must have gotten you mixed up with someone else... Oh well.



Dummy kexts not needed for this task... not recommended.

Once the EHCx objects are renamed to avoid the built-in injectors, a normal injector kext will work.



When you boot recovery /System/Library/Extensions refers to the recovery partition, not your system partition.

Try safe mode... will only work if the dummy kexts aren't marked OSBundleRequired=Root (which they probably are).

You can remove the kexts from the recovery partition:
Code:
rm -Rf /Volumes/name-you-gave-to-your-system-partition/System/Library/Extensions/kext-to-remove.
#etc.

Otherwise... fresh install always works.

I already deleted the kexts from Windows using Paragon HFS though and it still boots with them loaded, so I'm thinking it's a cache issue...

I'll try that though
 
Delete com.apple.kext.caches in /S/L/Caches too. Then you should be fine.

I decided to stay with all ports working on USB2 until final and first update to 10.11.1 are out, maybe Apple is changing some things again because real mac users are reporting some USB issues.

When i tried to rename XHC1 to XHC in IOUSBHostFamily kexts Plugin AppleUSBXHCIPCI.kext's info.plist, all of my ports where assigned to XHC, some working, some not. So it is possible at all to make things work right!

Removing the port limitations by deleting port and portcount section didn't help, after that nothings working at all. My EHCI section on 15,1 iMac SMBIOS even has no port limitations.

After some switching of keyboard and pointer i got back to osx and the sysinfo and IOReg where showing XHC working so far. But not all of my buildin mobo and chassis usb ports. Then i switched back to old kext. Maybe some more work on DSDT and real ports, removing the pseudo ports, would make all the ports working, but not having the time at the moment to check all this.
I Think this is because my dsdt has all the possible Ports listed, and i am reaching port limitation.
So some of them are just out of order.
 
Delete com.apple.kext.caches in /S/L/Caches too. Then you should be fine.

I decided to stay with all ports working on USB2 until final and first update to 10.11.1 are out, maybe Apple is changing some things again because real mac users are reporting some USB issues.

When i tried to rename XHC1 to XHC in IOUSBHostFamily kexts Plugin AppleUSBXHCIPCI.kext's info.plist, all of my ports where assigned to XHC, some working, some not. So it is possible at all to make things work right!

Removing the port limitations by deleting port and portcount section didn't help, after that nothings working at all. My EHCI section on 15,1 iMac SMBIOS even has no port limitations.

After some switching of keyboard and pointer i got back to osx and the sysinfo and IOReg where showing XHC working so far. But not all of my buildin mobo and chassis usb ports. Then i switched back to old kext. Maybe some more work on DSDT and real ports, removing the pseudo ports, would make all the ports working, but not having the time at the moment to check all this.
I Think this is because my dsdt has all the possible Ports listed, and i am reaching port limitation.
So some of them are just out of order.

Hmm ok, thanks for the input. I was finally able to boot back into OS X though so hooray :D I'm going to look into port injectors for now, but honestly I think I'll wait until the official guides come out...
 
I've been studying the port injectors a little bit, and I have a couple questions about them:

All of the sources here derived from: https://github.com/RehabMan/Lenovo-...b/master/USBXHC_u430.kext/Contents/Info.plist

First of all, I'm assuming to make an injector I can take a generic template of one and update it via the info.plist to inject everything properly?

Code:
[TABLE="class: highlight tab-size js-file-line-container"]
[TR]
[TD="class: blob-code blob-code-inner js-file-line"][/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                <[COLOR=#63A35C]key[/COLOR]>port-count</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                <[COLOR=#63A35C]data[/COLOR]>BgAAAA==</[COLOR=#63A35C]data[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                <[COLOR=#63A35C]key[/COLOR]>ports</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                <[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                    <[COLOR=#63A35C]key[/COLOR]>PRT1</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                    <[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                        <[COLOR=#63A35C]key[/COLOR]>UsbConnector</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                        <[COLOR=#63A35C]integer[/COLOR]>255</[COLOR=#63A35C]integer[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                        <[COLOR=#63A35C]key[/COLOR]>port</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                        <[COLOR=#63A35C]data[/COLOR]>AQAAAA==</[COLOR=#63A35C]data[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                    </[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]                </[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            </[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[/TABLE]

What do the base64 values represent? And w/ about the USBConnector value? I've noticed that there's only 2 - 255 and 0. What's the difference?

Code:
[TABLE="class: highlight tab-size js-file-line-container"]
[TR]
[TD="class: blob-code blob-code-inner js-file-line"]<[COLOR=#63A35C]key[/COLOR]>MacBookAir6,2-PR01-hub</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]        <[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[/TABLE]

Does this entry (PR01 hub) represent the ACPI values under EH01/EH02 > RHUB > PRT1? If not, what does this represent? I'm assuming some sort of hub...

Code:
[TABLE="class: highlight tab-size js-file-line-container"]
[TR]
[TD="class: blob-code blob-code-inner js-file-line"][/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]string[/COLOR]>com.apple.driver.AppleUSBMergeNub</[COLOR=#63A35C]string[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]key[/COLOR]>IOClass</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]string[/COLOR]>AppleUSBMergeNub</[COLOR=#63A35C]string[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]key[/COLOR]>locationID</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]integer[/COLOR]>487587840</[COLOR=#63A35C]integer[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]key[/COLOR]>IOProviderClass</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]string[/COLOR]>AppleUSB20InternalHub</[COLOR=#63A35C]string[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]key[/COLOR]>IOProviderMergeProperties</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]dict[/COLOR]>[/TD]
[/TR]
[/TABLE]
How to determine locationID? And also how to customize per laptop, if there's more than one "USB20InternalHub"?

Code:
[TABLE="class: highlight tab-size js-file-line-container"]
[TR]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]key[/COLOR]>IONameMatch</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]string[/COLOR]>XHC</[COLOR=#63A35C]string[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]key[/COLOR]>IOProviderClass</[COLOR=#63A35C]key[/COLOR]>[/TD]
[/TR]
[TR]
[TD="class: blob-num js-line-number, align: right"][/TD]
[TD="class: blob-code blob-code-inner js-file-line"]            <[COLOR=#63A35C]string[/COLOR]>AppleUSBXHCIPCI</[COLOR=#63A35C]string[/COLOR]>[/TD]
[/TR]
[/TABLE]

Does IONameMatch attach to DSDT? and does IOProviderClass attach to loaded kexts?




I'm really sorry for all of the questions :lol:, but trying to understand port injectors and how to make one :p

Thanks guys! (Looking at RehabMan again ... :D)

-Duncan
 
Status
Not open for further replies.
Back
Top