osy / HaC-Mini

Intel NUC Hades Canyon Hackintosh support

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Revised solutions to DW1820A support

goodbest opened this issue · comments

It's not an issue, but a revised solution to previous issues 113 and 91.

The solution is tested under 10.15.4 / Hac mini 2.7 with manual setups / latest BrcmPatchRam commit. Please correct me if there's anything wrong.

To improve the solution, I think some modifications are needed for refining the DW1820A (0a5c_6412 & 0a5c_6414) support in the installer, especially Package.pkgproj, install scripts, and config.plist. However, I don't think I can do that in the best way.

So in order to make our NuC as perfect as possible, I'm here asking the community for help😁


In order to get DW1820A (0a5c_6412 & 0a5c_6414) working, you need two parts.

Part 1: Disable ASPM

  • In previous solutions, we have to disable ASPM in BIOS. However, this would also disable the ASPM feature for all the other PCI devices as well, which is not the perfect way. (BTW, you can see the ASPM status for all PCI devices in recent released Hackintool.)
  • Recently, people have found that adding Device Property pci-aspm-default=0 for DW1820A would just do the work, in a more elegant way:
    • For our Nuc, You just need to add the following part into config.plist.
			<key>PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)</key>
			<dict>
				<key>pci-aspm-default</key>
				<integer>0</integer>
			</dict>
  • Or in theory, you can also use DSDT/SSDT to do the device property injection. (I've tried several times, but can't find the right DSL code for that.)

Part 2: The kexts.

  • For wifi, you need AirportBrcmFixup.kext. and setup brcmfx-country=#a in bootargs (or injecting this via DSDT or DeviceProperty in bootloader, see the project's readme).
  • For Bluetooth in 10.15, you need 3 kexts: BrcmBluetoothInjector.kext, BrcmPatchRAM3.kext, BrcmFirmwareData.kext
    • For BrcmPatchRAM with version <=2.5.2, people may suffer from connection failure, #125
    • For version >2.5.2, the issue should befixed by porting linux driver logic. (newer official release is on the way)

PS. For all non-apple native cards, the Apple Watch Unlock feature is not always working.(actually, not really functional at all).

By the way, in theory, for DW1560/ DW1830, you just need the second part.
Maybe we could also provide an installer option for those (no need to add deviceproperty with aspm=0)

commented

@goodbest please test https://github.com/osy86/HaC-Mini/suites/646220359/artifacts/5470857 and see if the DSDT is correct. If it doesn't work, please get an IORegistryViewer dump for me to check.

I tried BrcmPatchRAM v2.5.3. It does not work after wake. I have to manually turned off and back on bluetooth for it to work again. Any suggestion? Adapter is dw1820a

@lisai9093 Do you have the issue with v2.5.2?

I just tried it without any issue.

@lisai9093
Maybe you should try v2.5.3 with extra bootargs, which is listed in typical "wake from sleep" problems part in kext's readme.
However, I don't have the issue even without these bootargs.

Also, can you share the USB connector type for HS09 (the bluetooth related) via Hackintoo? It should be internal

image

Thanks it works now with "bpr_probedelay=100 bpr_initialdelay=300 bpr_postresetdelay=300" bootargs.
Yes it shows internal:
Screen Shot 2020-05-09 at 7 52 37 AM