Contribute
Register

How to build your own iMac Pro [Successful Build/Extended Guide]

Status
Not open for further replies.
Hey guys, just wanted to update people here if they are wanting to swap their onboard (usually Intel nowadays) NGFF WiFi/BT card with the BCM94352Z and have native support with Continuity/AirDrop/Etc with macOS.

I am kind of focused in this area because I have real Macs and these Continuity/Handoff features via Bluetooth/Wifi are super important to me on a daily basis and I really got used to them over the years and can't live without them. I just wanted to get them working all properly without stability issues under macOS.

Honestly not having Continuity/Handoff with a Hackintosh would be a deal killer for me, even though I could potentially live without it but it's so good to have these features working well.

I am now 100% confident it is the best that it could be with a Hackintosh. Everything acts like a real Mac (I have a 2017 MacBook Pro as well). Now I can go between my iOS, MacBook Pro and iMac Pro (Hackintosh) without any issues.

Now I have ZERO dropouts with Bluetooth headphones (AirPods, Sony and Bose). Wifi also works 100% as well.
Also Bluetooth distance has increased to normal (before it was much less).

I will verify the following works perfectly for Continuity/Etc:

1. Continuity
  • a. You can handoff a call from an iPhone and click the speaker and send to the iMac Pro. If you have Bluetooth headphones on that has a Mic and is connected to your iMac Pro Hackintosh, you can continue talking on your desktop just like a real Mac.
  • b. You can make calls from desktop FaceTime to any phone number number and your iPhone will be used to make that call stability issues. Also if you have a Bluetooth headphones on that has a Mic and is connected to your iMac Pro Hackintosh, you can continue talking normally and it will work like a real Mac.
  • c. You can pickup where you left off from your phone on your desktop, ie browsing via Safari.

2. AirDrop
  • a. Easily send AND receive from iOS devices. Works fast and connects quickly like a real Mac.

3. Copy and Paste from AND to iOS and macOS devices (Make sure Continuity/Handoff is enabled in System Pref > General)
  • a. Easily copy something from your iOS device (in my case an iPhone X) and then you can just paste it in any document such as TextEdit or Keynote.
  • b. You can also copy from your Mac and paste in iOS device.

4. Apple Watch unlock
  • (Have not tested as I do not have one yet)

So I finally have a 100% version working on the Designare EX (this should also work for other boards, not just X299 or Gigabyte specific). I had to dump the firmware from Broadcom and find the correct firmware and compress it via zlib.

Also I highly recommend you do USB port discovery to make sure the NGFF card is recognized as an internal card (Usb-Connector 255). So in this case I use the X299USB.kext without any 30 port patches (which makes things unstable).

You can run without proper usb-port discovery with the Broadcom kexts below. Such as the USB Limit Patch by PMheart I just haven't tested it too much as I always found port limit patches a bit unstable for my taste. You have to tell macOS which port is what so it knows what to do with it.

Hope this helps people.

Will BCM94352Z chip work on ASUS x299 Prime Deluxe motherboard with your kext?
 
Will BCM94352Z chip work on ASUS x299 Prime Deluxe motherboard with your kext?

Yeah it should like the poster above said.

Use my kext zip I posted and you can use my X299USB kext as a starter to make port discovery proper for your system if you want to avoid SSDT.

It took me about 20+ hours straight and I finally figured out the proper ports for the X299 Designare EX and the case front 2 ports (connected via onboard cable).

Port discovery also allows you to set the NGFF card to act like an internal onboard card rather than allowing macOS to guess what it is which is usually wrong.

It took me weeks to figure out RehabMan’s guide but after finishing this kext I don’t want to revisit that ever again because it was such a pain in the butt to test USB3.0 and USB2.0 in each port for weeks.

Maybe I’m just dumb...

Before you dive into port discovery, just try using the Broadcom kext I posted first and check to see if you get any dropouts via aptX or AAC connected headphones (you can check by by holding down option and clicking on bluetooth and you will see more info under your headphones)

Also there is Bluetooth Explorer which you can pull out of Apple dev tools which allow you to see the signal level for the BT/WiFi antennas as well as force AAC as aptX draws more bandwidth.
 
Last edited:
Yeah it should like the poster above said.

Use my kext zip I posted and you can use my X299USB kext as a starter to make port discovery proper for your system if you want to avoid SSDT.

It took me about 20+ hours straight and I finally figured out the proper ports for the X299 Designare EX and the case front 2 ports (connected via onboard cable).

Port discovery also allows you to set the NGFF card to act like an internal onboard card rather than allowing macOS to guess what it is which is usually wrong.

It took me weeks to figure out RehabMan’s guide but after finishing this kext I don’t want to revisit that ever again because it was such a pain in the butt to test USB3.0 and USB2.0 in each port for weeks.

Maybe I’m just dumb...

Before you dive into port discovery, just try using the Broadcom kext I posted first and check to see if you get any dropouts via aptX or AAC connected headphones (you can check by by holding down option and clicking on bluetooth and you will see more info under your headphones)

Also there is Bluetooth Explorer which you can pull out of Apple dev tools which allow you to see the signal level for the BT/WiFi antennas as well as force AAC as aptX draws more bandwidth.
Thank you for your prompt response!
Should I remove OSXWIFI from PCI slot and wifi implementation from SSDT-X299-iMacPro.aml file that I currently have or they will work in parallel?
 
Yeah it should like the poster above said.

Use my kext zip I posted and you can use my X299USB kext as a starter to make port discovery proper for your system if you want to avoid SSDT.

It took me about 20+ hours straight and I finally figured out the proper ports for the X299 Designare EX and the case front 2 ports (connected via onboard cable).

Port discovery also allows you to set the NGFF card to act like an internal onboard card rather than allowing macOS to guess what it is which is usually wrong.

It took me weeks to figure out RehabMan’s guide but after finishing this kext I don’t want to revisit that ever again because it was such a pain in the butt to test USB3.0 and USB2.0 in each port for weeks.

Maybe I’m just dumb...

Before you dive into port discovery, just try using the Broadcom kext I posted first and check to see if you get any dropouts via aptX or AAC connected headphones (you can check by by holding down option and clicking on bluetooth and you will see more info under your headphones)

Also there is Bluetooth Explorer which you can pull out of Apple dev tools which allow you to see the signal level for the BT/WiFi antennas as well as force AAC as aptX draws more bandwidth.

20 hours? and people thought I was crazy for cutting a hole in my motherboard's shield! :lol:
 
I concur. I got a Broadcom 943602CS purely for those features. (And it was $40)

That's why I got hooked on the apple airport wifi cards with an adapter. Everything works with no modified kexts.
 
you will have more success asking your TB related question in https://www.insanelymac.com/forum/forums/topic/323540-thunderbolt-drivers
TB3 hotplug seems to be a hit and miss. I have it working on the gigabyte motherboard, but not on the Asus x299 deluxe with the exact same TB3 card. We really don't have the full picture on why for some it works, but not others.
I'm surprise you would get any cosmetic entry for your Alpine Ridght card with that particular SSDT as it doesn't provide any DSM method that would do that. You must have another SSDT somewhere.

Can you post your ioreg (saved with IOJones) ?

Wait... You have 2 of these things? :clap: $$$$$ You must not be married.
 
20 hours? and people thought I was crazy for cutting a hole in my motherboard's shield! :lol:

That’s 20+ hours with no sleep AFTER spending weeks trying to make this thing works. I could have been doing something more productive.

Overall combined I’m sure I’ve spent less time on this hackintosh than someone like kgp but at least I’m pretty close to getting a perfectly working one which feels like a real Mac and doesn’t burn a hole in the wallet.

Also why are you cutting the shield when you can get a normal NGFF that might be a little older but fits perfectly in the shield?
 
Last edited:
Thank you for your prompt response!
Should I remove OSXWIFI from PCI slot and wifi implementation from SSDT-X299-iMacPro.aml file that I currently have or they will work in parallel?

Why do you want to keep OSXwifi card if you have a Broadcom NGFF card working on your motherboard?

It’s either one.

And also yeah you can remove it from your ssdt however if you are just talking about PCI implementations that’s purely cosmetic.

USB port discovery is not cosmetic it actually gives proper ports their designated usb-connector types which allows macOS to know what to do with it.

Also if you are removing OSXwifi (which I have nothing against, I have one in my drawer for emergencies) and adding NGFF you need to reset your network settings which means your wifi will be assigned most likely en1 (if your Ethernet is set to en0)

Or in my case I have 2 Ethernet ports so I have en0/en1 for Ethernet ports and en2 for WiFi. If you put in the NGFF card your new card might get en3 or something.

1. Go to /Library/Preferences/SystemConfiguration

2. Rename preferences.plist to preferences.plist.bak (just in case it is needed)

3. Reboot

Your Ethernet should take en0 and en1 (if you have a second port) and en2 will be WiFi.

This is all to keep consistent with a real Mac because iMessage and some other services (I think also appnapp) use this.
 
Last edited:
Status
Not open for further replies.
Back
Top