Jump to content
Leon

The Perfect Mini PCIe WiFi and Bluetooth Combo card for Notebooks

Recommended Posts

Hi, 
 
  As we know that some of you might have an unsupported WiFi and Bluetooth Combo in your notebooks and the only way to get the WiFi and Bluetooth working is by replacing it with a supported card. Here, we are going to present you the perfect WiFi and Bluetooth Combo which works very well in OSX.
 
There are two three models which works:
1. Atheros AR5B195 (Specifications)

  • AR9285 WiFi b/g/n (1x)
  • AR3011 Bluetooth 3.0

2. Atheros AR5B197 (Specifications)

  • AR9287 WiFi b/g/n (2x)
  • AR3011 Bluetooth 3.0

3. Broadcom BCM94352HMB (Specifications)

  • BCM4352 WiFi a/b/g/n/ac (2x)
  • BCM20702A1 Bluetooth 4.0
  • Research post: Link

 

Known issues in Bluetooth:

  • Atheros AR3011 has some stability issues with Magic mouse

 

WiFi:
In order to get the WiFi working we need either DSDT (or) kext patch. Add the below DSDT method to the your WiFi device in DSDT (or) use the attached patch files/manual patch method to patch the WiFi Kext in SLE.
 
Patching DSDT: 
Needed:

  • DSDT Editor 
  • IORegistryExploere

For this, you need to find where the wifi card is detected by Mac OSX which can be done by going through the ioregfile.

  •  First, look at the section "IOService:/AppleACPIPlatformExpert/PCI0@0" in ioregfile and find the device starting with the name "RPXX".
  •  Next, find your WiFi card  by looking at the name "AirPort_xxx" (if you have patched kext installed) (or) look at the device ids from the RPXX section.
  • After locating the device "RPXX", add the below method to that Device in your DSDT and install it.

Note:This is located mostly at one of those Devices of the DSDT: RP01/RP02/RP03/RP04/RP05/RP06/RP07/RP08 (some notebooks might have this name differently, so find and confirm it from ioregfile using the above steps).
 
Atheros AR5B195 and AR5B197 WiFi DSDT Patch:

Method (_DSM, 4, NotSerialized)
 {
   Store (Package (0x0C)
   {
    "AAPL,slot-name", 
    Buffer (0x05)
    {
      "PCIe"
    }, 
    "name", 
    "pci168c,2a", 
    "device-id", 
     Unicode ("*"), 
    "IOName", 
    "pci168c,2a", 
    "device_type", 
     Buffer (0x11)
     {
          "Wi-Fi Controller"
     }, 
     "model", 
     Buffer (0x34)
     {
           "Atheros AR9285 802.11b/g/n Wireless Network Adapter"
     }
     }, Local0)
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
   Return (Local0)
}

 
Broadcom BCM94352HMB WiFi dsdt patch:

Method (_DSM, 4, NotSerialized)
{
 Store (Package (0x0C)
 {
    "AAPL,slot-name", 
    Buffer (0x05)
    {
    "PCIe"
    }, 
    "name",      
     Buffer (0x0D)
     {
        "pci14e4,43a0"      
     }, 
    "device-id",      
     Buffer (0x04)
     {
         0xA0, 0x43, 0x00, 0x00      
     }, 
    "IOName", 
    "pci14e4,43a0", 
    "device_type", 
    Buffer (0x11)
     {
          "Wi-Fi Controller"
     }, 
    "model", 
    Buffer (0x33)
    {
          "Broadcom BCM4352 802.11ac Wireless Network Adapter"
    }
  }, Local0)
  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  Return (Local0)
}

Patching Kext:
For this, we need to inject our card's ids to the Apple WiFi Kext. You can use the attached script to patch (or) can manually patch using the below steps.
 

Manual patch:
For Atheros AR5B195 and AR5B197, we need to patch the kext "AirPortAtheros40.kext" located at System/Library/Extensions/IO80211Family.kext/Contents/Plugins/".
 
For Broadcom BCM94352HMB, we need to patch the kext "AirPortBrcm4360.kext" located at System/Library/Extensions/IO80211Family.kext/Contents/Plugins/".

 
Copy the kext to Desktop and Open the file "Info.plist" using text editor located inside the kext we are patching and add the bolded line below to the section "IOKitPersonalities->IONameMatch" as shown below.
 

Atheros WiFi:
IONameMatch

pci168c,30
pci168c,2a
pci168c,2b
pci168c,2e
pci106b,0086
pci168c,1c
pci168c,23
pci168c,24

 

Broadcom WiFi:

IONameMatch
pci14e4,43b1
pci14e4,43a0
 

After editing, save the file.

 BCM4352 5Ghz Fix:

You can use the attached BCM4352 WiFi 5Ghz Patch script to patch (or) use the manual patch explained below.

If you use script then you need to fix permissions and caches after running the script.(Optional)

 

1. Download the app hexfiend

2. Copy the kext "IO80211Family.kext" from System/Library/Extensions to Desktop

3. Copy the file "AirPortBrcm4360" from "IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/" to working folder

4. Open the "AirPortBrcm4360" in hexfiend app

5. Press Command + F to search

6. Enter the following hex codes in Find and replace box

 

Credits goes to SKVO (applelife.ru) Link to his post for this Country code fix discovery.

Changing the Country code from XT to US:
Find box
01 58 54 00

Replace box
01 55 53 00

Credits goes to EMlyDinesH for the below patches and scripts.

Making the card to be detected as Apple card:
Patch 1:
Find box
30 6B 10 00 00 75

Replace box
30 6B 10 00 00 74

Patch 2:
Find box
6B 10 00 00 0F 85

Replace box
6B 10 00 00 0F 84

7. Click on Replace All button to replace.

8. Install the kext.

 

Bluetooth:
For bluetooth, you need to use the kext from here: Bluetooth Kext

 

 

 

Hope this helps. Let us know if you have any doubts.

 

 

Update: Updated the BCM4352 WiFi patch script with additional patch for the card to be detected as Apple.

Patch Atheros WiFi Kext.zip

Patch Broadcom WiFi kext.zip

BCM4352 WiFi 5Ghz Patch.zip

BCM4352 WiFi 5Ghz Patch (updated).zip

  • Like 2

Share this post


Link to post
Share on other sites

Hi Leon,

Here I have also changed my bcm4313 to ar5b195. I am happy with this card :D .

I have a quick question, my BT device info - USB\VID_03F0&PID_311D&REV_0001

So is that correct?, if I edit the plist.info like this -

<key>idProduct<key>

<integer>12573<integer>

<key>idVendor<key>

<integer>1008<integer>

 

Thank you

Palash

Share this post


Link to post
Share on other sites

Hi Guys. How did you find out what type of Pci-e you have? If I check my system spec. It says Atheros AR9285 If I use system info app. It says Intel Corporation vendor ID:8086 dev.ID:002b Device Unknown

The BT works very well the wifi recognized but cannot get it to work do you have any idea. Do I really need to open the back and change the wifi card?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×