Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
Sorry for the slow update, looks like when I asked a followup I forgot to quote anyone; was just wondering in what state should I generate the problem reporting files? Should I do this after reapplying all the Bluetooth specific patching steps I took (which includes USBInjectAll.kext's guide) or should I do it as I am now, where I reverted all of those changes (i.e- nothing added/patched for Bluetooth)?
i would do that patches etc and if you get stuck, then upload your problem reporting files
 
Okay, I've generated all the problem reporting files (attached), here's a re-quote of my problem description for convenience:

Hi there,

I've been trying for a while now to get a "USB" device working that simply isn't being recognised by macOS; what I have is a
Broadcom BCM94352 PCIe Half Mini combined Wi-Fi and Bluetooth card. With a few fixes and tweaks from Toleda's Thread on InsanelyMac the Wi-Fi works perfectly with no fuss, but the Bluetooth continues to elude me.

Toleda's thread requires having a fixed USB setup following this guide here, but nothing I've tried seems to allow the Bluetooth aspect of the card to be recognised. Here's a quick overview of what I did:

  • Used DSDT patch to rename EHC1 to EH01, I don't appear to have an EHC2 but renamed that to EH02 anyway. XHC is already correctly named.
  • Installed FakePCIID.kext and FakePCIID_XHCIMux.kext, which seems to be working quite happily (all my USB2 devices show up under EH01). I also have FakePCIID_Broadcom_WiFi.kext as per Toleda's thread, along with the BrcmFirmwareData.kext and BrcmPatchRAM2.kext to inject Bluetooth firmware if it is ever recognised.
  • Installed USBInjectAll.kext, this disabled all of my USB3 devices (external hard drives) so I added the -uia_exclude_xhc boot option which brought them back.
  • Since Bluetooth wasn't visible at this point I also tried the _OSI fix by adding the supplied (and then compiled) SSDT-XOSI.aml, added it to my SortedOrder in Clover's config.plist, and added the appropriate DSDT patch. This didn't appear to make any difference though, so I've removed it for now.
  • I'm not 100% sure if I have the type of 8-series system that needs a port limit patch as I wasn't sure which specific device-id I was supposed to look for, but under XHC@14 the compatible property mentioned pci8086,8c31 so I figured I'd give the port limit patch a try by raising from 15 to 20, but this doesn't appear to have helped either, so I've likewise disabled that for the time being.

Toleda seems to be blaming me for not having fixed USB, but nothing I've tried from this guide seems to make the Bluetooth device visible anywhere at all; I believe it's supposed to show up on one of the internal USB hubs but isn't, so the firmware injector for it is never getting a chance to do anything.

Thing is, the USB for my motherboard worked pretty well with macOS out of the box; it only has 4 USB3 ports, and a header for more USB2 that I haven't used, so I haven't much need to disable anything, it's just enabling this one specific device that I'm having problems with and don't know why.

I did have Bluetooth working way back once upon a time, but it was under macOS 10.10 I think, and using a much older firmware injector, so while I know that it can work, I'm just at a total loss as to why it won't. It broke when I updated to 10.11 and since I never used bluetooth much I didn't bother investigating further until I finally got around to updating to 10.13, and would like to get Bluetooth finally working again if I can.

Anyway, I'd appreciate any suggestions anyone might have, do let me know if there's anymore information I can provide. My system details should all be listed in my profile (I'm going to double check them now).

A few notes on the problem reporting files:
  • I followed the Problem Reporting instructions manually rather than using black.dragon74's script, as the scripted tool assumes absolute paths that I don't use (i.e- I don't keep hackintosh related apps under /Applications, and I prefer not to install stuff under /usb/bin that I don't use regularly, I ran patchmatic without doing so and it worked just fine).
  • The command "kextstat|grep -y appleintelcpu" didn't generate any output, is this still the most up-to-date version of the command?
  • There's a command "ls -l /System/Library/Extensions/AppleHDA.kext/Contents/Resources/*.zml*" but this gives an error for an invalid path, I assume this should be .xml? I've attached the results with .xml in place of .zml, hopefully that's correct.
  • I've separated the various terminal command outputs into different files rather than one huge wall of text, hopefully it's clear enough.
  • My Clover config.plist file intentionally lacks a serial number; not that I think there's anyone unscrupulous here, I just wasn't sure what the risks (if any) are in sharing it.
 

Attachments

  • Problem Reporting.zip
    4.9 MB · Views: 88
Okay, I've generated all the problem reporting files (attached), here's a re-quote of my problem description for convenience:



A few notes on the problem reporting files:
  • I followed the Problem Reporting instructions manually rather than using black.dragon74's script, as the scripted tool assumes absolute paths that I don't use (i.e- I don't keep hackintosh related apps under /Applications, and I prefer not to install stuff under /usb/bin that I don't use regularly, I ran patchmatic without doing so and it worked just fine).
  • The command "kextstat|grep -y appleintelcpu" didn't generate any output, is this still the most up-to-date version of the command?
  • There's a command "ls -l /System/Library/Extensions/AppleHDA.kext/Contents/Resources/*.zml*" but this gives an error for an invalid path, I assume this should be .xml? I've attached the results with .xml in place of .zml, hopefully that's correct.
  • I've separated the various terminal command outputs into different files rather than one huge wall of text, hopefully it's clear enough.
  • My Clover config.plist file intentionally lacks a serial number; not that I think there's anyone unscrupulous here, I just wasn't sure what the risks (if any) are in sharing it.
only essential kexts belong in clover/kexts/other, ie Fakesmc, VoodooPS2Controller and an ethernet kext. everything else (including the three listed) should be installed to either /System/Library/Extensions or /Library/Extensions

also missing SSDT-UIAC which you need to create for your port discovery
 
only essential kexts belong in clover/kexts/other, ie Fakesmc, VoodooPS2Controller and an ethernet kext. everything else (including the three listed) should be installed to either /System/Library/Extensions or /Library/Extensions
I've already tried these in both locations, it didn't make a difference; the Broadcom Bluetooth kexts are specifically listed as working from clover/kexts (using BrcmFirmwareData.kext rather than BrcmFirmwareRepo.kext), and USBInjectAll.kext seems to work just fine from clover as well, it just doesn't see my Bluetooth whether loaded from Clover or from /S/L/E or /L/E.

also missing SSDT-UIAC which you need to create for your port discovery
I may have forgotten to mention that I had one of these previously and that didn't help either; unless I've misunderstood, SSDT-UIAC is for disabling rather than enabling ports, and the default file doesn't actually do anything (it leaves USBInjectAll.kext to enable everything) so not having it makes no difference, so surely I only need one if I determine which ports (if any) I want to disable? Like I say though, I'm not really bothered about disabling ports, it's detecting/enabling Bluetooth at all that I'm having trouble with. The guide definitely didn't seem to make it sound essential for the "getting things to work at all in the first place" stage.
 
I've already tried these in both locations, it didn't make a difference; the Broadcom Bluetooth kexts are specifically listed as working from clover/kexts (using BrcmFirmwareData.kext rather than BrcmFirmwareRepo.kext), and USBInjectAll.kext seems to work just fine from clover as well, it just doesn't see my Bluetooth whether loaded from Clover or from /S/L/E or /L/E.


I may have forgotten to mention that I had one of these previously and that didn't help either; unless I've misunderstood, SSDT-UIAC is for disabling rather than enabling ports, and the default file doesn't actually do anything (it leaves USBInjectAll.kext to enable everything) so not having it makes no difference, so surely I only need one if I determine which ports (if any) I want to disable? Like I say though, I'm not really bothered about disabling ports, it's detecting/enabling Bluetooth at all that I'm having trouble with. The guide definitely didn't seem to make it sound essential for the "getting things to work at all in the first place" stage.
you need to create a custom SSDT for your usb ports to work properly (to enable the ones you need including devices attached to them ie blutooth and wifi adaptors)
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

my typo earlier, all addon kexts on High Sierra needs to be installed to /L/E
 
you need to create a custom SSDT for your usb ports to work properly (to enable the ones you need including devices attached to them ie blutooth and wifi adaptors)
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
Okay, well I guess the part that I'm not understanding is; how do I figure out which port is my Bluetooth controller if I can't get it to work in the first place? The Wi-Fi works fine, but doesn't appear as a USB device (unless I've missed it somehow) so should the Bluetooth controller show up somewhere separate? If so, where?

This is the part that seems to be stopping me, as there doesn't seem to be any point in me customising an SSDT when my actual USB ports work as-is, and I don't know which port the Bluetooth controller is supposed to appear under.
 
Okay, well I guess the part that I'm not understanding is; how do I figure out which port is my Bluetooth controller if I can't get it to work in the first place? The Wi-Fi works fine, but doesn't appear as a USB device (unless I've missed it somehow) so should the Bluetooth controller show up somewhere separate? If so, where?

This is the part that seems to be stopping me, as there doesn't seem to be any point in me customising an SSDT when my actual USB ports work as-is, and I don't know which port the Bluetooth controller is supposed to appear under.
at the moment, you have kexts in clover, they are not being injected, the system is not reading them at all.

this is why you are having issues in your bluetooth not being detected

first thing is to install all your kexts /L/E

then enable the port limit patch, reboot, then follow the guide to test your ports and to create your SSDT
 
The command "kextstat|grep -y appleintelcpu" didn't generate any output, is this still the most up-to-date version of the command?

It is the correct command. I'm looking to see both if it is loaded or not loaded, as the requirement changes depending in CPU architecture.

There's a command "ls -l /System/Library/Extensions/AppleHDA.kext/Contents/Resources/*.zml*" but this gives an error for an invalid path, I assume this should be .xml? I've attached the results with .xml in place of .zml, hopefully that's correct.

The command in the FAQ/script is correct. You assume incorrectly.
My Clover config.plist file intentionally lacks a serial number; not that I think there's anyone unscrupulous here, I just wasn't sure what the risks (if any) are in sharing it.

That's fine. But note that if you boot with a custom serial# in config.plist/SMBIOS, it is reflected in ioreg.

A few notes on the problem reporting files

Your kextcache output proves kexts are not installed correctly.
All kexts you need must be installed to the system volume.
Read post #2 of the Clover guide for details:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

No bluetooth on the USB bus. Could be hardware installation/hardware problem, or you configured USB incorrectly.
See guide:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

You should start by checking that the BT controller is working in Windows and see which port it is connected to.

It is better to place everything on xHCI (BIOS xHCI mode=Enabled) and ignore/disable EHCI if you can.
Fast boot should be disabled.

Also remove VirtualBox.

SortedOrder not necessary (you only have a single SSDT in ACPI/patched, and it would have no order dependency anyway).
DropOem=true is wrong for your ACPI/patched content.
See guide for details:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
 
Your kextcache output proves kexts are not installed correctly.
How is that the case when what they do is working correctly? From Clover injection FakeSMC works, sensors are available, USB2 devices are moved etc. etc. USBInjectAll.kext does so as well, though it's only proved when I remove -uia_exclude_xhc which causes all of my USB3 devices to disappear. I don't keep kexts if they don't do what I installed them to do, so I'm not sure what would be indicating that they weren't working at all. The only exceptions are the broadcom firmware injector kexts because they've nothing to interact with.

Regardless I've moved everything to /Library/Extensions anyway, and made some of the other changes you recommended (remove DropOem=true and SortedOrder, swap VBoxHFS-64.efi for HFSPlus.efi, which is what I assume you meant by remove VirtualBox?). xHCI is already enabled in BIOS, no Fast Boot. But it makes no discernible difference. This is having rebuilt the kextcache, getting unsigned warnings for each of the newly installed kexts.

You should start by checking that the BT controller is working in Windows and see which port it is connected to.
It definitely works under Windows, I had a look at under properties and the BIOS device name is given as:
Code:
\_SB.PCI0.XHC.RHUB.HS07

Now, if I remove the -uia_exclude_xhc boot option I can get HS07 to appear in the IO registry, but nothing appears under it, but as I mentioned removing this flag disables all of my USB3 devices, so I'm not sure where to go from there.

I've determined that SSP3-6 correspond to the only usable physical USB ports in my system; my case has no additional ports so all additional headers are unused, which leaves me with four USB3 ports and no more. So do I just need to create an SSDT-UAIC from the all ports enabled template with SSP3-6 set to "USBConnector", 3, and HS07 as "USBConnector", 255?
 
swap VBoxHFS-64.efi for HFSPlus.efi, which is what I assume you meant by remove VirtualBox?).

As per guide, but not what I was referring to.
You have VirtualBox software installed. I'm suggesting you remove it as its USB kexts are known to interfere.

xHCI is already enabled in BIOS,

It seems like you have xHCI mode set to Auto or Smart Auto, not "Enabled".
Because in "Enabled" mode, it usually disables the EHCI controller.
You should double check your settings.

This is having rebuilt the kextcache, getting unsigned warnings for each of the newly installed kexts.

As expected.

It definitely works under Windows, I had a look at under properties and the BIOS device name is given as:
Code:
\_SB.PCI0.XHC.RHUB.HS07

Now, if I remove the -uia_exclude_xhc boot option I can get HS07 to appear in the IO registry, but nothing appears under it, but as I mentioned removing this flag disables all of my USB3 devices, so I'm not sure where to go from there.

You should not expect HS07 to appear under XHC until you remove FakePCIID_XHCIMux.kext and set BIOS xHCI mode to "Enabled".

I've determined that SSP3-6 correspond to the only usable physical USB ports in my system; my case has no additional ports so all additional headers are unused, which leaves me with four USB3 ports and no more. So do I just need to create an SSDT-UAIC from the all ports enabled template with SSP3-6 set to "USBConnector", 3, and HS07 as "USBConnector", 255?

You did not attach any "Problem Reporting" files, so I cannot provide any new recommendations.
 
Status
Not open for further replies.
Back
Top