Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Hi. It's been a long time since I had the need to post something here. The guides by Rehabman are great, but I have a tiny little issue here, and I've banging my head against a wall for several weeks now.
I installed Mojave from scratch on a HP 840G1, and had a WiFi card with no Bluetooth (I came from a 8460p which did have onboard BT). I bought an Azurewave card (Broadcom BCM4352 Azurewave AW-CE123H WiF i+ BT 867Mbps Bluetooth 4.0 Hackintosh, said the eBay listing), and I thought it would work immediately, which of course, it didn't.

The WiFi portion of the card worked with absolutely no issues (as a Broadcom BCM43XX), but the bluetooth portion does not work at all.

I plugged a small BT dongle and enabled the BT indicator on the notification bar but when I unplug that dongle it just stays there, with a message that says "Bluetooth: Not Available".
There are no notifications in the System Report about Bluetooth, it just thinks there's no Bluetooth adapter.

After reading, I came across the fact that the BT portion of the card should be connected to a USB bus, and it led me to believe that somehow the card was faulty, or that there was a problem with the USB bus, since I tried it on Windows 10 and it didn't show the Bluetooth portion either (WiFi did work), but then I tried with Ubuntu. Ubuntu did show both devices, one on the PCI bus (WiFi, although it doesn't work there, and I won't look into it), and the other one on the USB bus. Funny thing, it seems as it's connected to a hub which is connected to the USB bus in the machine. Bluetooth DOES work on Ubuntu.

ubuntu@ubuntu:~$ lspci
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:16.3 Serial controller: Intel Corporation 8 Series HECI KT (rev 04)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-LM (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
02:00.0 Network controller: Broadcom Limited BCM4352 802.11ac Wireless Network Adapter (rev 03)

ubuntu@ubuntu:~$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 125f:dc1a A-DATA Technology Co., Ltd.
Bus 003 Device 002: ID 0424:5534 Standard Microsystems Corp. Hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 010: ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader
Bus 002 Device 009: ID 04f2:b3ed Chicony Electronics Co., Ltd
Bus 002 Device 004: ID 0a5c:21fb Broadcom Corp.
Bus 002 Device 002: ID 0424:2134 Standard Microsystems Corp. Hub
Bus 002 Device 011: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ubuntu@ubuntu:~$

From dmesg in Linux, I have:

[ 11.370129] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.18
[ 11.370131] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.370133] usb usb2: Product: xHCI Host Controller
[ 11.370134] usb usb2: Manufacturer: Linux 4.18.0-15-generic xhci-hcd
[ 11.370136] usb usb2: SerialNumber: 0000:00:14.0
[ 11.370344] hub 2-0:1.0: USB hub found
[ 11.370357] hub 2-0:1.0: 9 ports detected

[ 11.852368] usb 2-3: New USB device found, idVendor=0424, idProduct=2134, bcdDevice=50.00
[ 11.852370] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 11.852371] usb 2-3: Product: USB2134B
[ 11.852372] usb 2-3: Manufacturer: SMSC
[ 11.852846] hub 2-3:1.0: USB hub found
[ 11.852907] hub 2-3:1.0: 4 ports detected

and

[ 12.844091] usb 2-3.2: new full-speed USB device number 4 using xhci_hcd
[ 12.947628] usb 2-3.2: New USB device found, idVendor=0a5c, idProduct=21fb, bcdDevice= 1.12
[ 12.947631] usb 2-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 12.947633] usb 2-3.2: Product: BCM20702A0
[ 12.947634] usb 2-3.2: Manufacturer: Broadcom Corp
[ 12.947635] usb 2-3.2: SerialNumber: 28C2DD406542

This tells me that the Broadcom BT is connected to an internal hub, but it doesn't show up on MacOS.

Now, I went and read the USBInjectAll post, and prepared to do my testing, and booted MacOS with the -uia_ignore_rmcf, which gave me a couple of extra ports (I followed the original procedure to install MacOS on this machine by Rehabman, and I assume one of the ddst files did hide the ports), but the I can't find port in which the Bluetooth adapter should be, in fact, I open all the ports information and there's no adapter.

The SMSC hub appears on MacOS (vendor 0424, product 2134), but the BT device does not appear to be connected there.

Am I doing something wrong here? Am I missing something?? I've already reinstalled MacOS over my partition to have a "refresh install", as Rehabman recommended somewhere but it's doing the same thing.

I installed the Brcm kexts as well, but since the Bluetooth portion of the card isn't even being recognized, it doesn't do a thing. I think the first thing I need to do is to have the adapter visible on the USB ports.

I'm attaching my macos debug files as well as my dmesg from Ubuntu to see if I'm missing something.

Thanks for the help, Bluetooth is the one of two things that are still missing for the full experience on my machine, the other one being hibernate (which I hope can be worked out but that's for another thread).


** EDIT **
I installed Mojave from scratch on another HD (smaller one), and before applying any patches to the system, ran IORegistryExplorer, and the BT device appears connected inside HS03, it creates an Apple USB 2.0 Hub, and it´s connected to port 2, just like in Linux. This appears to go well.
I´ll finish the installation and see if I get both WiFi and Bluetooth, and if it works I might rework the original installation that I do have.

** EDIT 2 **
I did the installation scripts from Rehabman´s repository, and the thing broke. I used the configuration for 8x0G1 Haswell, and it seems that it disables the detection on the port, as after rebooting I do have WiFi but the Bluetooth device appears not connected again in IORegistryExplorer. Is there a way to quickly fix this? I just need to enable that port to get things up and running, I wouldn´t want to redo Rehabman´s job of detecting ports just for one extra port.

Thanks for your time. This has been great, it´s almost over, I just need a small push in the right direction.
 

Attachments

  • debug_11043.zip
    3.4 MB · Views: 70
  • ubuntu-dmesg.txt
    75.6 KB · Views: 141
Last edited:
you can just use either the kext is creates and install to /Library/Extensions

or

use USbInjectAll.kext and place .amls in patched/other
Hi, I have been using the USB kext created by Hackintool for my High Sierra build, I have now done a clean install of Mojave, do I need to go through the process again or can I use the same kext?
 
Hi, I have been using the USB kext created by Hackintool for my High Sierra build, I have now done a clean install of Mojave, do I need to go through the process again or can I use the same kext?
use the same
 
Hello!
I'm trying to fix my UBS ports using this guide. I create SSDT for my ports but have no changes in IOreg. SS01 and SS02 not visible. Also unusable ports stays in IOreg like before pathing. Can you help me? What I did wrong?
 

Attachments

  • debug_14997.zip
    3.7 MB · Views: 206
After a few re-reading of the guide it works perfectly for the Gigabyte Z170XP-sli ! Thanks a lot !!! Doyou need the aml file ?

I am working on developing a file for my rig with the exact same specs. Would love a copy of your file if possible to use as a model as I develop mine.
 
My ssdt file did work for 10.13 perfectly. But now ....
USB3 ports are not working with 10.14.6, and not all usb ports are working for usb2 devices.
Here are the debug info, please give a hand.
 

Attachments

  • debug_2901.zip
    1.4 MB · Views: 188
I’m on the same boat. Only USB 2 devices will work on 10.14.6... But the good news is that my (red) 3.1 USB port is working at high speed.

I also ran a quick test and commented out 2 of my USB ports on the SSDT-UIAC. Those ports would still recognize a USB 2 pen drive. So it looks like the SSDT-UIAC is being ignored. Perhaps that's the source of the problem.

Attaching my current EFI folder, perhaps someone more knowledgeable could shed some light on the issue. (deleted)

SOLVED - It was all human error, 2 mistakes on my end:

1st - USB was working in HS because I still had the USB patch on and never compiled (saved as) the SSDT file to AML. IN Mojave, the patch stopped working and I only got the USB ports working in 2.0. Once fixed all USB were set to 3.0 speeds.

2nd mistake on my end (not directly related, but a reminder to check your code for mistakes): My PCI WiFi-BT card connected to the MoBo internal USB was not being recognized because I had the wrong number for the port-count.

Now all seems to be working as it should! :)
 
Last edited:
Can anyone help me, maybe @Feartech you kindly advised me recently?

I am not sure if I have my USB configured correctly. What I have done:

1. EHCI rename to EHC0/EHC01
2. Applied port limit patches, installed USB Injectall kext and Fake PCIID
3. Mapped ports as per the instructions in Hackintool
4. Excluded ports such to keep under 15 ports
5. Exported USBPorts.kext which I installed to library/extensions
6. Removed port limit patches, and USB Injectall.kext

My question is this: When mapping the ports, I see two ports enabled in Hackintool, PR11 and PR21. When I look in IOReg I see PR11 on EH01 "IOUSBHostDevice@1d100000" and on EH02 I see on EH02 PR21 "IOUSBHostDevice@1a100000"

Is this correct, I thought everything should be on XHC but I have only limited understanding. Also, when configuring port in Hackintool to stay within the 15 port limit, do I include PR11 and PR12 as part of my 15?

I hope this makes sense
 

Attachments

  • debug_20445.zip
    2 MB · Views: 204
Back
Top