-->Donations via PayPal [External Link Removed for Guests] :guitar
-->Installation/Post Installation Tutorial [Local Link Removed for Guests]
-->Useful Links [Local Link Removed for Guests]
-->Olarila Images - Updated images [Local Link Removed for Guests]
-->Guides and Tutorials [Local Link Removed for Guests]
-->Clover Folder for All Chipsets [Local Link Removed for Guests]
-->DSDT Patch Requests [Local Link Removed for Guests]

Trying using .dfu firmware to enable bluetooth in macOS on "cold" start

Post Reply
Drovosek
Posts: 9
Joined: 02 Jul 2019, 17:02
CPU: i5-6200U
Motherboard: HP 820C
GPU: Nvidia Geforce 940MX

Trying using .dfu firmware to enable bluetooth in macOS on "cold" start

Post by Drovosek » 25 Aug 2019, 19:26

Hello.
I have system unit Dell Vostro 3267 (i5-6400, Skylake). Information in signature.

In this system block module installed Atheros AR9565 802.11 b/g/n Wireless Network Adapter, which, as I understand it, combines Wi-Fi - Atheros AR9565 and Bluetooth Qualcomm QCA9565.

I managed to get working Wifi with kext from chunnann.
[External Link Removed for Guests]
[External Link Removed for Guests]

Bluetooth works only if you first boot into Windows and then reboot into macOS from it. At the same time, you need to install drivers for bluetooth in Windows from the official Dell website, because the original drivers that Windows downloaded and installed itself - did not allow the bluetooth module to work even in Windows.

In bluetooth settings, the power button was inactive and there was an eternal search for devices (if macOS was loaded immediately after the PC started). Enable button disable I cured just by adding the folder /kexts/Other kext BrcmBluetoothInjector by writing inside it in the Info.the plist file corresponds to the VendorID and ProductID of my bluetooth (which are displayed in the system report). BrcmBluetoothInjector_Mod.kext.zip

I am disappointed that Windows is able to automatically download the firmware to the bluetooth module during the download, and Hackintosh macOS has not yet done such a kext.

In the search for solutions to the problem I came across here are the options for the text:

IOath3kfrmw (OS-X-Atheros-3k-Firmware)
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]

OS-X-BrcmPatchRAM
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]

BTFirmwareUploader (as I understand it, this is an improved IOath3kfrmwr)
[External Link Removed for Guests]

And here's a way - to use a virtual machine to the OS from it to download the firmware to the bluetooth module
[External Link Removed for Guests]

Unfortunately, not one of these options did not help me to ensure that bluetooth worked when "cold" start the PC in macOS.

1.
I started to read more about kexts. In texte BrcmPatchRAM says that it is possible to add support for their bluetooth module in this kext. I downloaded the drivers for my bluetooth from the official site and extracted from .exe installer driver files themselves (This is easily done using 7-zip in Windows or using Keka in macOS). There were more files .dfu than others. As I found out .dfu files are compiled firmware files that the driver loads into the bluetooth module. In the instructions to BrcmPatchRAM States only .hex firmware files for Broadcom.
I started looking for information on the Internet and found out that .hex files are the original "text" of the firmware as well .dfu is compiled .hex files.

I immediately started looking for converters/decompilers/disassemblers from .in dfu .hex, but found only what's out .hex does .dfu file:
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]

As well as console utilities "dfu-tool" and "dfu-util" in Linux. I found out that dfu-util can be installed in macOS using Homebrew or use this option (it differs in functionality) [External Link Removed for Guests]

2.
I also learned that .dfu files are used in macOS /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/IOBluetoothUSBDFU.kext/Contents/Resources
I think we should try to replace all of them on that file that Windows loads the bluetooth module (I think if you try to do so, you need to make several copies of this file and rename it to the original ones .dfu files to be deleted).

3.
As is the idea is just mine .dfu file rename to file .zhx and add it to the kext OS-X-BrcmPatchRAM (in BrcmFirmwareRepo.kext). But there is a problem - first, I don't know which one .dfu files are downloaded to my bluetooth, maybe even a few, because there are 3 files > 40 KB IN size and a lot of files ~ 2 KB in size.

4.
In "dfu-tool" and "dfu-util" I saw commands that extract firmware from the device. Maybe it will be possible to boot into Linux and if bluetooth starts working there, then try to extract the firmware from bluetooth with these utilities, and then add this firmware to kexts somehow.

5.
In the file BTFirmwareUploader.kex/Contents/MacOS/BTFirmwareUploader inside already have a list of firmwares, but they are in .hex format. Maybe there's a way to replace them with the contents .dfu file?

I will continue to describe the ideas and results of the experiments. If you have any ideas or you can help to solve this problem, do not hesitate to write.

Screenshots:
Image
Image

Links to download drivers:
[External Link Removed for Guests]
Extracted bluetooth drivers:
[External Link Removed for Guests]
QCA9565 Bluetooth-Driver.7z

[External Link Removed for Guests]
[External Link Removed for Guests] E5-573G&OS=ALL&LC=ru&BC=ACER&SC=EMEA_23
You do not have the required permissions to view the files attached to this post.
Post Reply

Return to “Hardware”