Jump to content

Intel Advanced-N 6235 BT 4.0 module


Hervé

Recommended Posts

  • Administrators

The BT4.0 module of the Intel Advanced-N 6235 (ven:dev id = 8087:07da) is supported OOB under OS X. However, it cannot be turned on or off by default. As usual, this requires patching of the appropriate Bluetooth controller transport kext.
 
Here's what to do (illustrations under El Capitan 10.11.3):
Intel_N6235_BT_module.jpg          BT_Finder_icon_Unpatched.jpg
Loaded_kexts_before_patch1.jpg Loaded_kexts_before_patch2.jpg
 
Patch attempts of the generic IOBluetoothHostControllerUSBTransport kext lead nowhere. However, on looking for the hardware specs of the BT device, it turns out to be a CSR-based module (Google is our friend!). The CSR controller transport kext can then be patched. PlugIns of OS X El Capitan 10.11.3's IOBluetoothFamily kext are as follows:
E6440:~ admin$ cd /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/
E6440:PlugIns admin$ ls -la
total 0
drwxr-xr-x  9 root  wheel  306 Mar 11 21:49 .
drwxr-xr-x  8 root  wheel  272 Jan 20 15:25 ..
drwxr-xr-x  3 root  wheel  102 Nov 14 05:31 BroadcomBluetoothHostControllerUSBTransport.kext
drwxr-xr-x  3 root  wheel  102 Nov 14 05:31 CSRBluetoothHostControllerUSBTransport.kext
drwxr-xr-x  3 root  wheel  102 Nov 14 05:31 CSRHIDTransitionDriver.kext
drwxr-xr-x  3 root  wheel  102 Nov 14 05:31 IOBluetoothHostControllerUARTTransport.kext
drwxr-xr-x  3 root  wheel  102 Nov 14 05:31 IOBluetoothHostControllerUSBTransport.kext
drwxr-xr-x  3 root  wheel  102 Nov 14 05:31 IOBluetoothSerialManager.kext
drwxr-xr-x  3 root  wheel  102 Nov 14 05:31 IOBluetoothUSBDFU.kext
E6440:PlugIns admin$ 

 
Here, the kext to patch is CSRBluetoothHostControllerUSBTransport. It's a simple matter of editing the Info.plist file of the kext and add a new entry based on an existing profile. In this case, a copy of the ApplePortableModule entry can be pasted and edited as follows:

<key>Intel-N6235</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.iokit.CSRBluetoothHostControllerUSBTransport</string>
<key>IOClass</key>
<string>CSRBluetoothHostControllerUSBTransport</string>
<key>IOProviderClass</key>
<string>IOUSBHostDevice</string>
<key>idProduct</key>
<integer>2010</integer>
<key>idVendor</key>
<integer>32903</integer>
</dict>

NB: 0x07da (hex) = 2010 (dec). 0x8087 (hex) = 32903 (dec)
 
The modded kext can then be placed back in the PlugIns folder of the IOBluetoothFamily kext, permissions repaired and the cache rebuilt.  On reboot, the CSR USB Transport kext is loaded and the BT module can be turned on or off through the Finder's bar icon (and it switches the BT led on or off too, well at least on my E6440):
BT_Finder_icon_Patched.jpg BT_Finder_icon_Patched2.jpg
 
Kexts_loaded_after_patch1.jpg Kexts_loaded_after_patch2.jpg
 
An alternative to patching the vanilla kext is to add the entry to FakeSMC's Info.plist. It's also sustainable to updates within a given OS X/macOS version.

 

NB: Only the Bluetooth module of this card is supported, the wireless module remains of course unsupported in OS X/macOS as per all Intel cards.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...