Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
Okay, so if I were to go the route of customizing all of the above, and I use this template I found on your repo as a starting point, if I'm understanding this right, I would rename "HUB1", Package() to match the DSDT name of my hub device; same for ports. USBConnector should match the value for the port definition found in the DSDT and ACPI spec. What is porttype? Port count is obviously the number of ports being defined, correct?

Use the template. No renaming involved (why do people think that is a good idea?)
portType is not understood.
port-count is the maximum port address (if specified), nothing to do with any 'count'.
 
Use the template. No renaming involved (why do people think that is a good idea?)
portType is not understood.
port-count is the maximum port address (if specified), nothing to do with any 'count'.
I guess the confusion in my case is I don't understand exactly what USBInjectAll is doing, and how that translates to the ssdt. How does usbinject differentiate which port defined in the ssdt is for which controller when both EHC1 and EHC2 have ports named PRT12 marked connectable, and both a hub named PRO1, for example?

if EHC1 PRT12 is at 1d12, and EHC2 PRT12 is at 1a12, how does USBInjectAll know which I'm talking about, 1d or 1a, when it it's parsing the SSDT. It seems the "port", Buffer() { x, 0, 0, 0 }, field seems to only be defining the port sequence on the specific controller?
 
I guess the confusion in my case is I don't understand exactly what USBInjectAll is doing, and how that translates to the ssdt. How does usbinject differentiate which port defined in the ssdt is for which controller when both EHC1 and EHC2 have ports named PRT12 marked connectable, and both a hub named PRO1, for example?

if EHC1 PRT12 is at 1d12, and EHC2 PRT12 is at 1a12, how does USBInjectAll know which I'm talking about, 1d or 1a, when it it's parsing the SSDT. It seems the "port", Buffer() { x, 0, 0, 0 }, field seems to only be defining the port sequence on the specific controller?

The SSDT (or more specifically, the UIAC.RMCF object) provides overrides for the Info.plist/IOKitPersonalities/Configuration.

USBInjectAll.kext does not work with EHC1 or EHC2 at all. Only EH01/EH02.
 
The SSDT (or more specifically, the UIAC.RMCF object) provides overrides for the Info.plist/IOKitPersonalities/Configuration.
I think that was the piece I was missing. I was trying to make this harder than it actually is, I think. So if I'm following you, to customize the SSDT template, I simply need to delete what I don't need leaving only the present hubs, and the ports that are actually user/device connectable, and to confirm the connector type is right. I can leave out ports marked connectable in DSDT, but don't actually do anything, correct? I do notice that Acer marked all the port connectors on the EHC devices as proprietary--0xFF. Should I keep it 255, or fix it to reflect what the port actually is?
USBInjectAll.kext does not work with EHC1 or EHC2 at all. Only EH01/EH02.
Brain-fart, they are renamed EH01&2, yes.
 
Here's something strange: I noticed I was running an older build of USBInjectAll from June, so I upgraded to the September build and, with no changes to the kext, no custom SSDT, now the internal hubs and ports are flipped. The user accessible ports are now labeled HPx in ioreg and the internal hubs are labeled PRTx.

Edit: I got it working. Thanks Rehabman!
 
Last edited:
I think that was the piece I was missing. I was trying to make this harder than it actually is, I think. So if I'm following you, to customize the SSDT template, I simply need to delete what I don't need leaving only the present hubs, and the ports that are actually user/device connectable,

Ports attached to internal devices should be included (UsbConnector=255).

I can leave out ports marked connectable in DSDT, but don't actually do anything, correct?

To clarify... ports which are not connected to anything should be eliminated.

I do notice that Acer marked all the port connectors on the EHC devices as proprietary--0xFF. Should I keep it 255, or fix it to reflect what the port actually is?

Use the correct UsbConnector value as per ACPI spec (_UPC).
Keep in mind BIOS programmers get it (DSDT/_UPC) wrong most of the time.
 
Hi RehabMan,
I post the file about the problem of bluetooth missing of BCM94352HMB card.
please tell me what work should I do?
 

Attachments

  • Compressed file.zip
    2.1 MB · Views: 77
Hi RehabMan,
I post the file about the problem of bluetooth missing of BCM94352HMB card.
please tell me what work should I do?

Not a USB problem (you should see your BT controller in System Information -> USB).
And your device, 0a5c:22be, is not supported by BrcmPatchRAM. Check in Windows to see which firmware is being loaded. Perhaps you can add support for it to BrcmPatchRAM.
 
Not a USB problem (you should see your BT controller in System Information -> USB).
And your device, 0a5c:22be, is not supported by BrcmPatchRAM. Check in Windows to see which firmware is being loaded. Perhaps you can add support for it to BrcmPatchRAM.
I just see bcm device in Information -> USB. I can not see any bluetooth device.
how to see firmware loaded in Windows? you mean after know the firmware, I should modify BrcmPatchRAM config to support it?
 
I just see bcm device in Information -> USB. I can not see any bluetooth device.
how to see firmware loaded in Windows? you mean after know the firmware, I should modify BrcmPatchRAM config to support it?

Check in Windows Device Manager, driver details (where the files that make up the driver are listed). Firmware is a .hex file.
Make sure you have the appropriate driver installed in Windows before looking.

You are not seeing any bluetooth info in System Information because you don't have the right software installed and setup for the device. BrcmBluetoothInjector.kext may help, but without a firmware loader, will likely be incomplete.
 
Status
Not open for further replies.
Back
Top