lzhoang2801 / OpCore-Simplify

A tool designed to simplify the creation of OpenCore EFI
https://lzhoang2801.github.io/gathering-files/opencore-efi
BSD 3-Clause "New" or "Revised" License
390 stars 32 forks source link

Add support for Broadcom Ethernet #65

Open unitedastronomer opened 3 days ago

unitedastronomer commented 3 days ago

I have written a mini-guide on how to fix ethernet support on certain Broadcom Ethernet on macOS Big Sur and newer (minKernel 20.x.x). Loading the native kext don't work anymore unlike in Catalina and older with FakePCIID.kext.

IOName instead of device-id spoof works too, it's helpful if the user really wants to show the real name of the card instead of the spoofed one.

The patches mentioned in the guide should still work to load the native kext on Catalina and older, but just change the the identifier from "CatalinaBCM5701" to "AppleBCM5701" (maxKernel 19.x.x) in Kernel > Patch

In NetXtreme/NetLink BCM57785 Family Programmer's Guide, there's the BCM57765 used in iMac11,x.

Others are not listed in .kext's info.plist should still support those cards as they are still from same family.

501533_upload_2023-3-9_14-4-27

Supported device-id(s): This list is based on supported by FakePCIIID kext on Catalina.

Broadcom NetXtreme BCM5700 Gigabit Ethernet [14e4:1644] Broadcom NetXtreme BCM5701 Gigabit Ethernet PCIe [14e4:1645] Broadcom NetXtreme BCM5702 Gigabit Ethernet PCIe [14e4:1646] Broadcom NetXtreme BCM5703 Gigabit Ethernet PCIe [14e4:1647] Broadcom NetXtreme BCM5717 Gigabit Ethernet PCIe [14e4:1655] Broadcom NetXtreme BCM5717 Gigabit Ethernet PCIe [14e4:1665] Broadcom NetXtreme BCM5718 Gigabit Ethernet PCIe [14e4:1656] Broadcom NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] Broadcom NetXtreme BCM5725 Gigabit Ethernet PCIe [14e4:1643] Broadcom NetXtreme BCM5727 Gigabit Ethernet PCIe [14e4:16f3] Broadcom NetXtreme BCM5761 10/100/1000BASE-T Ethernet [14e4:1688] Broadcom NetXtreme BCM5762 Gigabit Ethernet PCIe [14e4:1687] Broadcom NetXtreme BCM57760 Gigabit Ethernet PCIe [14e4:1690] Broadcom NetXtreme BCM57764 Gigabit Ethernet PCIe [14e4:1642] Broadcom NetXtreme BCM57767 Gigabit Ethernet PCIe [14e4:1683] Broadcom NetLink BCM57781 Gigabit Ethernet PCIe [14e4:16b1] Broadcom NetXtreme BCM57782 Gigabit Ethernet PCIe [14e4:16b7] Broadcom NetLink BCM57785 Gigabit Ethernet PCIe [14e4:16b5] Broadcom NetXtreme BCM57786 Gigabit Ethernet PCIe [14e4:16b3] Broadcom NetXtreme BCM57787 Gigabit Ethernet PCIe [14e4:1641] Broadcom NetLink BCM57788 Gigabit Ethernet PCIe [14e4:1691] Broadcom NetLink BCM57790 Gigabit Ethernet PCIe [14e4:1694] Broadcom NetLink BCM57791 Gigabit Ethernet PCIe [14e4:16b2] Broadcom NetLink BCM57795 Gigabit Ethernet PCIe [14e4:16b6] Broadcom NetLink BCM5785 Gigabit Ethernet [14e4:1699] Broadcom NetLink BCM5785 Fast Ethernet [14e4:16a0] Broadcom NetLink BCM5787M Gigabit Ethernet PCI Express [14e4:1693] Broadcom Network Adapter [14e4:1689]

lzhoang2801 commented 2 days ago

Help me check it https://github.com/lzhoang2801/OpCore-Simplify/commit/d81ff30da6db64c25ff18f8663d02db178001896

unitedastronomer commented 1 day ago

Hi, I don't recommend getting the kext in AppleLife as the website will delete attachments as it gets older, grab the CatalinaBCM5701 in OCLP's repo instead.

Big Sur to Sequoia

Easiest:

Just grab the mirror of the AppleLife kext in this repo. that's all. no need spoofs etc.

The more technical one:

Device Properties: Key* Value Type
IOName pci14e4,16b4 String
compatible pci14e4,16b4 String

Use IOName instead of device-id,so it would show the correct model in Hackintool, spoofing one of the IOName match from it's plist just works fine.

Kernel Add: minKernel
CatalinaBCM5701Ethernet 20.0.0
Patch: Identifier* Find Replace minKernel Count Comment
com.apple.iokit.CatalinaBCM5701Ethernet E8CA9EFF FF668983 00050000 B8B41600 00668983 00050000 20.0.0 1 Broadcom BCM577XX Patch
Cosmetic (SysReport): Identifier* Find Replace minKernel Count Comment
com.apple.iokit.CatalinaBCM5701Ethernet 35373736 35 35373738 35 20.0.0 0 SysReport 57765 -> 57785 (Cosmetic)

3 5 3 7 3 7 3 6 3 5 -> 3 5 3 7 3 7 3 8 3 5

Catalina and older

Easiest:

Just add FakePCIID kext. that's all. 💯% working.

The technical one:

Device Properties: Same as above Patch: Just enable "BCM57785" patch in the sample.plist. Cosmetic: Same as above but the identifier is com.apple.iokit.AppleBCM5701Ethernet, maxKernel: 19.99.9

I cannot use the "BCM57785" patch present on sample.plist on injected kext (on macOS >=11) even with correct identifier because masking don't work there.