Mac os broadcom bluetooth
macOS Broadcom WiFi and Bluetooth
WiFi and Bluetooth working out of box on macOS with Apple branded Broadcom BCM94360. Enables half mini and M.2 BCM4352 on High Sierra with method described below. Credit: RehabMan
Updates
- 12/26/2017 — High Sierra Broadcom WiFi and Bluetooth Support
Broadcom WiFi + BT
- Half mini/BCM94360HMB/AzureWave AW-CB160H — Credit: Skvo, Post #758/[Guide] Airport — PCIe Half Mini v2
- PCIe/BCM94360CD/BCM9331CD native WiFi/ac and BT4LE (PCIe 1x, not HM)
- Half mini/BCM94352 HMB/AzureWave AW-CE123H/DW 1550 supports WiFi/ac and BT4LE
- M.2/BCM94352Z HMB/AzureWave AW-CE162NF/DW1560 supports WiFi/ac and BT4LE
- Half miniBCM943224 HMB supports WiFi and BT3
User Responsibilities
- Supported WiFi card sources — the usual
- WiFi and Bluetooth Antennas
- Mini PCIe to PCI/PCIe adapters (adapter must include motherboard USB connector for working BT)
- Clover_v4305 or newer
Broadcom WiFi/Bluetooth Repo
Broadcom WiFi/Bluetooth Installation/10.13+ Note: Requires AirPortBrcm4360.kext and BT4LE ⁃ AirPortBrcmNIC-MFG.kext — not applicable
Step 1/Enable WiFi
Step 2/Enable BT
Step 3/Optional Features
- Enable Handoff/Hot Spot (94352 only) — Credit: lisai9093 ⁃ Binary patch: IOBluetoothFamily
- Country Code/Required 2. Native: US/FCC (Hex: 55 53) 2. If not US/FCC, see Sebinouse, see #2 below 3. Special case, see #a, credit: jaymonkey, Post #2084 1. Solves wake from sleep WiFi performance issue
- ROW Country Code, credit: Sebinouse, Post #1159 (select one method)
- config-bcm94352. plist (see Repo)
- edit 5GHz-US/Replace/55 53 (US) to xx xx (CC)
- ASCII/Hex/Base64
- wireless_bcm94352. command (see Repo)
- CC prompt
- config-bcm94352. plist (see Repo)
- Clover/kext patch
- Download config-bcm94352-. (select View Raw)
- Paste 3 Patches to config.plist/KernelAndKextPatches/KextsToPatch
- Kext/binary patch
- Download wireless_bcm94352-. (select View Raw)
- Double click Downloads/wireless_bcm94352-. command
- Clover/kext patch
- Download config-bcm94352-. (select View Raw)
- Paste 3 Patches to config.plist/KernelAndKextPatches/KextsToPatch
- Kext/binary patch
- Download wireless_bcm94352-. (select View Raw)
- Double click Downloads/wireless_bcm94352-. command
- Clover/kext patch
- Download config-bcm94352-. (select View Raw)
- Paste 3 Patches to config.plist/KernelAndKextPatches/KextsToPatch
- Kext/binary patch
- Download wireless_bcm94352-. (select View Raw)
- Double click Downloads/wireless_bcm94352-. command
- See Terminal Saved Output. . . (above)
- Clover/kext patch
- Download config-bcm94352-. (select View Raw)
- Add 3 Patches to config.plist/KernelAndKextPatches/KextsToPatch
- 10.11 USB Issues/no BT
- Fix USB problem
- BT injection — RehabMan/OS-X-BrcmPatchRAM (2 kexts required)
- REAMDME BrcmPatchRAM — RehabMan
- Download BrcmPatchRAM — RehabMan
- Install 2 kexts
- BrcmFirmwareRepo.kext
- BrcmPatchRAM2.kext
- Installation (a or b, not both)
- Clover/Chameleon — use kext installer
- System/Library/Extensions/
- Library/Extensions/
- Clover/Chameleon — use kext installer
- Working
- Asus BCM94352 (0b05/17cf)
- Azurewave CE-123H (13d3/3404)
- REAMDME BrcmPatchRAM — RehabMan
- Download BrcmPatchRAM — RehabMan
- BrcmPatchRAM.kext Installation (Select one method)
- Clover/Chameleon — System/Library/Extensions/
- use kext installer
- Clover — EFI/CLOVER/kexts/10.10 or /10.9
- Clover/Chameleon — System/Library/Extensions/
- Working
- Asus BCM94352 (0b05/17cf)
- Azurewave CE-123H (13d3/3404
- OS X Versions (+ all)
- 10.11+/El Capitan
- 10.10+/Yosemite
- 10.9+/Mavericks
- 10.8.5/Mountain Lion
Solution does not work, 10.8.4 or earlier
- Boot Flags/Boot failure may result if ignored
- 10.11+/Disable SIP/set, restart, install, enable SIP, restart
- CLOVER/config.plist/RtVariables/
- BooterConfig/0x28
- CsrActiveConfig/0x3
- Chameleon — Extra/org.chameleon.Boot.plist
- CsrActiveConfig=3
- CLOVER/config.plist/RtVariables/
- 10.10+/Allow unsigned kexts/set, restart, install
- Clover/config.plist/
- Boot/Arguments/kext-dev-mode=1
- Chameleon/Extra/org.chameleon.Boot.plist/
- Kernel Flags/kext-dev-mode=1
- Clover/config.plist/
- 10.11+/Disable SIP/set, restart, install, enable SIP, restart
- Description of wireless problem
- OS X version/motherboard model/BIOS version/processor/graphics
- Procedure/Guide used
- Copy of IOReg — IOReg_v2.1/File/Save a Copy As…, verify file (Tools 1.)
- Screenshots:
- DPCIManager/Status (Tools 2.)
- System Information/Hardware/Network/WiFi
- System Information/Hardware/Bluetooth
- System Information/Hardware/USB (Select Bluetooth device)
- DPCIManager/Misc/Boot Log
- MaciASL/File/Export Tableset As. (Tools 3.)
- Terminal/Shell/File/Export Text As. . . /wireless_bcm. command
- Chameleon
- Extra/org.chameleon.Boot.plist
- DPCIManager/Misc/Boot Log
- Extra/dsdt.aml (if installed)
- Extra/ssdt.aml (if installed)
- Clover
- EFI/CLOVER/config.plist
- DPCIManager/Misc/Boot Log
- EFI/CLOVER/ACPI/Patched/dsdt.aml (if installed)
- EFI/CLOVER/ACPI/Patched/ssdt.aml (if installed)
- Post to:
- Airport — InsanelyMac.com
- Airport — tonymacx86.com
- [03f0:231d] HP 231d (ProBook BT built-in firmware)
- [13d3:3295] Azurewave BCM943225 (20702A bult-in firmware)
- [0489:e032] 20702 Combo USB
- [0489:e042] 20702A1 Lenovo China *
- [0489:e079] Lenovo China 43162 NGFF
- [0489:e07a] Lenovo NGFF (4352 / 20702)
- [04ca:2003] 20702A1 Lenovo China
- [04ca:200a] LiteOn (4352 Combo)
- [04ca:200b] LiteOn (4352 Combo) *
- [04ca:200c] LiteOn (4352 Combo)
- [04ca:200f] Acer / LiteOn (4352 Combo)
- [050d:065a] Belkin (20702)
- [0930:0221] Toshiba (4352 / 20702)
- [0930:0223] Toshiba NGFF (4352 / 20702) *
- [0a5c:216b] HP Rapture 4352Z NGFF Combo
- [0a5c:216e] HP Blackbird 43162 NGFF
- [0a5c:216f] Dell DW1560 (4352/20702)
- [0a5c:21de] 4352/20702A1 combo
- [0a5c:21e1] HP Softsailing (20702A1)
- [0a5c:21e6] non-UHE Lenovo Bluetooth (20702)
- [0a5c:21e8] Bluetooth USB Dongle (20702A1) *
- [0a5c:21ec] Inateck Bluetooth (20702A1)
- [0a5c:21fb] HP Supra 4352 (20702A1 Combo)
- [0a5c:21fd] Broadcom 4352Z
- [0a5c:22be] Broadcom BCM20702 Bluetooth 4.0 USB Device
- [0a5c:6410] Dell Wireless 1830 Bluetooth 4.1 LE
- [0b05:17cb] Asus BT-400 (20702 stand-alone) *
- [0b05:17cf] Asus (4352/20702A1 combo) *
- [0b05:180a] Azurewave (4360/20702 combo)
- [13d3:3404] Azurewave (4352HMB) *
- [13d3:3411] Dell Alienware (4352/20702A1 combo) *
- [13d3:3413] Azurewave (4360/20702 combo)
- [13d3:3418] Azurewave (4352/20702 combo)
- [13d3:3435] Azurewave (4352/20702 combo)
- [13d3:3456] Azurewave (4352/20702 combo)
- [413c:8143] Dell DW1550 (4352/20702 combo)
- BrcmPatchRAM itself communicates with supported Broadcom Bluetooth USB devices (as configured in the Info.plist), and detects if they require a firmware update.
- Device product ID
- Device vendor ID
- BrcmPatchRAM version used
- Dump of BrcmPatchRAM debug output from /var/log/system.log showing the firmware upload failure
- Locate the mentioned «RAMUSB0223» device in the .inf file:
- After this a hex dump can be created for pasting into a plist editor:
- Using a plist editor create a new firmware key under the BcmFirmwareStore/Firmwares dictionary.
- After configuring a key under BcmFirmwareStore/Firmwares, add your device ID as a new device for BrcmPatchRAM.
Country Code (10.12/10.11/10.10 — all versions)
BCM94352 5 GHz/Handoff Patch (10.12+)
Credit: the-darkvoid
BCM94352 5 GHz/Handoff Patch (10.11+)
Credit: Dokterdok, the-darkvoid, Sebinouse
Select 1 or 2, not both
BCM94352 5 GHz/Handoff Patch (10.10+)
Credit: Dokterdok, the-darkvoid, Sebinouse
Select 1 or 2, not both
BCM94352 5 GHz Patch (10.9+)
Credit: Skvo
Select 1 or 2, not both
Bluetooth 4LE (10.11+)
Bluetooth 4LE/4/3 (10.10+. 10.9+)
Requirement (+ all)
Installation/Configuration/Troubleshooting
[Guide] airport_half-mini_details.pdf.zip (above)
Tools
Problem Reporting (attach requested information)
Credit
THe KiNG
Andy Vandijck
PikeRAlpha
Skvo
Dokterdok
the-darkvoid
Sebinouse
Источник
Question: Q: Full Bluetooth functionality in Bootcamp (audio, A2DP, FTP, OBEX)
When runing Windows 7 in a native bootcamp partition you may have experienced issues when trying to pair android devices, audio sinks, headsets, etc. For earlier Mac models (2010 and earlier) the workaround consisted in using the broadcom drivers released by Acer or HP. However, the later 2011 models including MBA mid 2011, Macbook Pro and iMac will not allow you to install those drivers. Neither will Broadcom oficial updater recognize your bluetooth built in device.
The good news: after several weeks googling and installing/uninstalling pretty much every available driver on the internet I managed to have all my bluetooth devices wroking on Windows 7 x64 (bootcamp partition) on my MBA MID 2011.
You have at least 3 options
1.- Bluesoleil Stack: Altugh the chip is not offitially supported you can get it «brut force» recognized. This is described here:
2.- Toshiba Stack: The version 8.0 works pretty good specially for Audio devices the audio quality is pretty the best you will get. Same as above you need to force the recognition of your chip
The toshiba stack (30 days trial)
3.- Thank again to Acer (and not to Apple) we can get also a fully functional profile in a hardware we have paid a lot of money for. BUT WARNING! here you SHOULD NOT install the drivers!. Install only the utility suit instead. Pay carefull attention or you will get a blue screen and you will need to uninstall the drivers in safe mode or even have to do a clean Windows install. Uninstall all your paired BT devices (except for Magic Mouse and or keyboard you can leave them paired)
a.- Download the drivers
b.- Unzip the file and explore the following folder
\Bluetooth(4.0)_Atheros_7.4.0.96_W7x64\Bluetooth_Suite_win7. Run Win764.exe or Win732 according to your OS.
Let the software install and restart.
c.- Pair your devices and enjoy.
Options 1 and 2 (Bluesoleil and Toshiba Stack) are good options however they are paid-off softwares but what could be more important for many useres is that they completely override the Microsoft bluetooth stack and therefore Apple devices (like magic mouse) will loose some functionality I wasn’t able to get the touch scrolling or the gestures working with those stacks. The 3th option however will not completeley override the Microsoft stack (used by Apple’s drivers) and therefore Apple Magic mouse will work perfectly. The Atheros bluetooth suit will only add the requiered protocols and make them interact with the Microsoft stack. The disadvantage of the latest is that the audio quality is not even close as the one you are gonna get with the Toshiba stack and not say about configurability.
I hope I will save some of you some time and many headaches.
Источник
Mac os broadcom bluetooth
Broadcom PatchRAM driver for OS X
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
BrcmPatchRAM — RehabMan fork
For the most part this fork is kept in sync with the-darkvoid’s verson. We are working together to improve the project.
RehabMan Fork Downloads
Install one of BrcmPatchRAM.kext or BrcmPatchRAM2.kext depending on OS X version, never both.
BrcmPatchRAM.kext: for 10.10 or earlier.
BrcmPatchRAM2.kext: for 10.11 or later.
Also, install one firmware kext BrcmFirmwareData.kext or BrcmFirmwareRepo.kext, depending on installation location, never both.
BrcmFirmwareRepo.kext: Install to /System/Library/Extensions (/Library/Extensions on 10.11 and later). This kext is much more memory efficient than BrcmFirmwareData.kext and is the preferred configuration.
BrcmFirmwareData.kext: Most appropriate for EFI/Clover/kexts. BrcmFirmwareRepo.kext, while much more memory efficient, cannot be injected as can BrcmFirmwareData.kext
Advanced users: For custom firmware injectors, install the injector plus BrcmFirmwareRepo.kext. This works from either /S/L/E or EFI/Clover/kexts. Optionally, you may remove all the firmwares from BrcmFirmwareRepo.kext/Contents/Resources. If you’re using the injector from Clover/kexts, the IOProviderClass in the Info.plist for BrcmFirmwareRepo.kext must be changed from «disabled_IOResources» to «IOResources». And still, you may find it unreliable. as that is the way Clover kext injection is (it does not simulate kext installation perfectly). In testing, best result was obtained if you replace the IOKitPersonalities entry in BrcmFirmwareRepo.kext Info.plist with that of the injector kext (no need for the injector at that point).
Also, if you have a non-PatchRAM device (or you’re not sure), install one of BrcmNonPatchRAM.kext or BrcmNonPatchRAM2.kext, depending on OS X version, never both. Although these kexts do not install any firmware (these devices have firmware built-in), they still depend on BrcmPatchRAM/BrcmPatchRAM2.kext.
BrcmNonPatchRAM.kext: for 10.10 or earlier
BrcmNonPatchRAM2.kext: for 10.11 or later.
Note if you have an Apple MacBook/iMac/Mac Pro etc, follow the Mac instructions
Most Broadcom USB Bluetooth devices make use of a system called RAMUSB.
RAMUSB allows the firmware for the device to be updated on-the-fly, however any updates previously applied are lost when shutting down the machine.
The Broadcom Windows driver will upload firmware into the Broadcom Bluetooth device on every startup, however for OS X this functionality is not supported out of the box.
BrcmPatchRAM kext is an OS X driver which applies PatchRAM updates for Broadcom RAMUSB based devices.
It will apply the firmware update to your Broadcom Bluetooth device on every startup / wakeup, identical to the Windows drivers.
The firmware applied is extracted from the Windows drivers and the functionality should be equal to Windows.
Note that the original Apple Broadcom bluetooth devices are not RAMUSB devices, and thus do not have the same firmware mechanism.
To be used for OS X 10.11 or newer.
This kext is a simple injector. it does not contain a firmware uploader. Try this kext if you wish to see if your device will work without a firmware uploader.
Do not use any of the other kexts (BrcmPatchRAM, BrcmPatchRAM2, BrcmFirmwareRepo, or BrcmFirmwareData) with this kext.
This kext is not provided in the distribution ZIP. You can build it if you wish to try it. It was removed as it presense was causing confusion for those that don’t read carefully and didn’t install the preferred kexts correctly. It is not currently being updated with new devices. If yours is not present, edit the Info.plist as needed.
BrcmPatchRAM supports any Broadcom USB bluetooth device based on the BCM20702 chipset (possibly other chipsets are supported also, but this has not been tested).
The following devices are supported at the moment:
Devices marked with * are tested successfully
Non-PatchRAM devices (BrcmPatchRAM used to speed up recovery after sleep):
Tested PatchRAM devices:
All of the firmwares from the Windows package are present in the kext and automatically associated with their vendor/device-ids. They are expected to work, but have not been confirmed. If you can confirm a working device not listed above, please notify via the «issues» database on github.
More Installation Details
BrcmPatchRAM.kext and BrcmPatchRAM2.kext can be installed either through Clover kext injection or placed in /System/Library/Extensions (/Library/Extensions on 10.11 and later). Install only one, not both, depending on system version.
BrcmFirmwareRepo.kext does not work with Clover kext injection, unless using a device specific firmware injector. BrcmFirmwareData.kext can work with Clover kext injection.
You can also use a device specific firmware injector (in conjunction with BrcmFirmwareRepo.kext). In this scenario, BrcmFirmwareRepo.kext does work from Clover kexts.
You will find device specfic injectors in the ‘firmwares’ directory of the git repository. They are not included in the distribution ZIP.
There are a number of delays which can be changed with the following kernel flags. You might change these values if you find BrcmPatchRAM is hanging during firmware load.
bpr_probedelay: Changes mProbeDelay. Default value is 0.
bpr_initialdelay: Changes mInitialDelay. Default value is 100.
bpr_preresetdelay: Changes mPreResetDelay. Default value is 20.
bpr_postresetdelay: Changes mPostResetDelay. Default value is 100.
Refer to the source for futher details on these delays.
Example. to change mPostResetDelay to 400ms, use kernel flag: bpr_postresetdelay=400.
Note: In Clover, kernel flags are specified at config.plist/Boot/Arguments, or you can change them (temporarily for next boot) in Clover Options within the Clover GUI.
Note: Some with the typical «wake from sleep» problems are reporting success with: bpr_probedelay=100 bpr_initialdelay=300 bpr_postresetdelay=300. Or slightly longer delays: bpr_probedelay=200 bpr_initialdelay=400 bpr_postresetdelay=400.
BrcmPatchRAM consists of 2 parts:
If a firmware update is required, the matching firmware data will be uploaded to the device and the device will be reset.
BrcmFirmwareStore (implemented by either BrcmFirmwareData.kext or BrcmFirmwareRepo.kext) is a shared resource which holds all the configured firmwares for different Broadcom Bluetooth USB devices.
Some devices require device specific firmware, while others can use the newest version available in the Windows drivers without issue.
New firmwares are added/configured on a regular basis to support devices, so be sure to follow release updates, or log an issue if you find your device is not supported.
Firmwares can be stored using zlib compression in order to keep the configuration size manageable.
After the device firmware is uploaded, the device control is handed over to Apple’s BroadcomBluetoothHostControllerUSBTransport. This means that for all intents and purposes your device will be native on OS X and support all functionalities fully.
It is possible to use the Continuity Activation Patch in combination with BrcmPatchRAM through Clover or through dokterdok’s script: https://github.com/dokterdok/Continuity-Activation-Tool
Clover users can patch using KextsToPatch in config.plist.
The patch for 10.10 is:
The patch for 10.11 is:
After installing BrcmPatchRAM, even though your Bluetooth icon may show up, it could be that the firmware has not been properly updated.
Verify the firmware is updated by going to System Information and check the Bluetooth firmware version number under the Bluetooth information panel.
If the version number is «4096», this means no firmware was updated for your device and it will not work properly.
Verify any errors in the system log by running the following command in the terminal:
Ensure you check only the latest boot messages, as the system.log might go back several days.
If the firmware upload failed with an error, try installing the debug version of BrcmPatchRAM in order to get more detailed information in the log.
In order to report an error log an issue on github with the following information:
Some USB devices are very firmware specific and trying to upload any other firmware for the same chipset into them will fail.
This usually displays in the system log as:
The errors in between mean the firmware was not uploaded successfully, and the device will most likely need a specific firmware configured.
For other devices the newest firmware available (even though not specified specifically in the Windows drivers) works fine.
In order to support a new device, the firmware for the device needs to be extracted from existing Windows drivers.
Should you come across newer drivers than 12.0.0.9860, please let me know.
In order to get the device specific firmware for your device take the following steps:
Look up your USB device vendor and product ID, in this example we will be using the BCM94352Z PCI NGFF WiFi/BT combo card, for which the vendor is 0930 and product ID 0233.
Extract the Windows Bluetooth driver package and open the bcbtums-win8x64-brcm.inf file.
Find your vendor / device ID combination in the .inf file
Copy the firmware hex file matching your device from the Windows package, in this case «BCM20702A1_001.002.014.1443.1457.hex»
The firmware file can now optionally be compressed using the included zlib.pl script:
Note that the version number displayed in OS X is the last number in the file name (1457 in our sample) + 4096.
So in this case the firmware version in OS X would be: «c14 v5553«.
Firmwares can also be loaded directly from BrcmFirmwareRepo.kext/Contents/Resources, either by firmware key name (see above), or by naming the file with just the vendor and device-id. For example, 0930_0223.hex (uncompressed) or 0930_0223.zhx (compressed).
Copying an existing IOKit personality and modifying its properties is the easiest way to do this. Configure the earlier firmware using its unique firmware key.
Источник