Fixing Ethernet Built-In 6 on Legacy Hackintosh: From en6 to en0
Learn how to fix Ethernet Built-In 6 on X79, X99, and Z170 Hackintosh systems running Sierra through Mojave. Step-by-step guide using Clover DeviceProperties and ACPI patches to restore built-in property and iServices.
When you install macOS on a legacy Hackintosh, the Ethernet port often shows up as a generic “Thunderbolt Bridge” or “USB 10/100/1000 LAN” device — or doesn’t appear at all. The fix lies in the built-in property inside the device’s bsd-name or IORegistry entry. This article covers Ethernet Built-In 6: what it is, why it matters for older hardware, and how to set it up reliably on X79, X99, and Z170 boards running Sierra through Mojave.
Ethernet Built-In 6 is the sixth network interface the macOS kernel enumerates. Most consumer boards have one or two physical Ethernet ports, so “6” usually means a leftover or misconfigured interface from an earlier OS install, a leftover from a dual-CPU setup, or a device that macOS assigns a high index because of ACPI table ordering. That index alone isn’t harmful, but it can stop AppleBCM5701Ethernet.kext or IntelMausi.kext from taking over properly, making the port show as “not connected” or drop packets under load.
We’ll go through diagnostics, the changes needed in Clover’s config.plist, and the ACPI patches that force macOS to see the port as en0 with built-in set to true. This matters for iMessage, FaceTime, and App Store sign‑in — they all check for a primary built‑in network interface.
Why Ethernet Built-In 6 Appears
macOS assigns interface indices based on the order it finds devices in the IORegistry. On a system with multiple PCIe slots, a built‑in Realtek or Intel controller, and maybe a Thunderbolt adapter, the kernel can label the physical port as en6 instead of en0. This happens most often when:
- The motherboard has two physical Ethernet controllers (e.g., Intel I210 + Realtek 8111).
- A previous OS install left behind network preferences that reference a stale interface.
- The ACPI tables (DSDT/SSDT) define multiple network devices, some not present but still occupying a slot in the device list.
- A dual‑CPU setup, like X79 or X99, adds extra PCIe bridges that confuse the kernel’s device enumeration. For more on dual‑CPU enumeration pitfalls, see the Dual-CPU Hackintosh Review: IMG 4882 on X79 and X99.
None of these conditions are dangerous, but they stop macOS from treating the Ethernet port as the primary network interface. Without the built-in property, iServices fail, and some VPN clients refuse to bind to the port.
Identifying Your Current Interface Index
Before making changes, figure out which interface index the kernel assigned to your physical Ethernet port. Open Terminal and run:
ifconfig -a | grep -E '^en[0-9]'
Look for the line with a valid IP address (e.g., inet 192.168.1.10). That’s your active Ethernet interface. Note its index — if it’s en6, you have Ethernet Built-In 6. If it’s en0, your system is already correct, and you can skip the fixes below.
Next, use IORegistryExplorer to check the built-in property. Search for “built-in” and look at the IONetworkInterface entry for your Ethernet device. If the property is missing or set to false, macOS won’t treat it as a built‑in interface.
Fixing the built-in Property via Clover
The most reliable method for legacy Hackintosh builds is to inject the built-in property through Clover’s config.plist. This works with Sierra (10.12) through Mojave (10.14) and doesn’t require modifying the DSDT.
- Locate your Ethernet device path. In IORegistryExplorer, find the
IODeviceTree:/path for your Ethernet controller. It typically looks likePciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)for an onboard controller. - Add a DeviceProperties entry. In
config.plistunderDeviceProperties -> Add, create a new dictionary keyed to the exact device path. Inside it, add a keybuilt-inwith type<data>and valueAA==(which decodes to01in hex — i.e.,true). - Set the interface name. Optionally, add the key
device_typewith the stringEthernetandmodelwith the controller model (e.g.,Intel I210 Gigabit Network Connection). This helps macOS identify the port. - Save and reboot. After booting, check
ifconfigagain. The interface index may change toen0if no other interfaces claim that index. If it stays aten6, proceed to the next step.
Forcing en0 with ACPI Patches
If the interface remains at en6 after injecting the built-in property, you need to reorder the device enumeration in the ACPI tables. This is more advanced and carries a risk of boot failure if done incorrectly — always back up your current EFI partition before editing.
The goal is to rename the Ethernet device in the DSDT so macOS enumerates it first. In most cases, the built‑in Ethernet controller appears under the RP01 (PCI Root Port 1) or RP05 scope. You can create an SSDT patch that changes the _ADR of the Ethernet device to a lower address, or simply rename the device to EN0 in the IORegistry.
A safer approach is to use Clover’s ACPI -> Patch section. Add a binary rename that targets the Ethernet device’s _DSM method to inject the built-in property directly into the ACPI node. The patch format is:
Comment: built-in Ethernet
Find: [hex bytes of your device’s _DSM start]
Replace: [hex bytes that set built-in to 01]
Because the exact bytes depend on your motherboard’s DSDT, you must dump your DSDT with iasl and locate the _DSM method for your Ethernet controller. A generic patch is not possible — you must tailor it to your hardware. If you are unfamiliar with ACPI patching, review the Legacy Hackintosh Guide: Ivy Bridge, Haswell, Broadwell-E, and Thunderbolt 2 Fixes for a broader methodology.
Resetting Network Preferences
Even after fixing the built-in property and reordering the interface index, macOS may still remember the old en6 configuration. To clear stale preferences:
- Go to
/Library/Preferences/SystemConfiguration/. - Delete the following files (after backing them up):
NetworkInterfaces.plistpreferences.plistcom.apple.airport.preferences.plist
- Reboot. macOS will rebuild the network interfaces from scratch, and if the
built-inproperty is set correctly, the Ethernet port should appear asen0.
Note that deleting these files will also remove saved Wi‑Fi passwords and VPN configurations. Make sure you have those credentials stored elsewhere before proceeding.
Testing and Verification
After applying the fix, verify the following:
- ifconfig — the Ethernet interface should be
en0with a valid IP. - IORegistryExplorer — the IONetworkInterface entry for the Ethernet device must have
built-in = true. - iMessage sign‑in — attempt to log into iMessage. If it succeeds, the built‑in property is recognized.
- Packet loss test — ping your router for 1000 packets:
ping -c 1000 192.168.1.1. If you see less than 0.1% loss, the driver is stable.
If iMessage still fails, the issue may be unrelated to Ethernet Built-In 6 — check your SMBIOS configuration and ensure you have a valid board serial number.
Known Limitations per macOS Version
| macOS Version | Ethernet Built-In 6 Behavior | Recommended Fix |
|---|---|---|
| 10.12 Sierra | Interface index often sticks after first boot | Inject built-in + reset network prefs |
| 10.13 High Sierra | Kernel may ignore built-in property if ACPI has conflicting devices | ACPI patch or SSDT rename |
| 10.14 Mojave | Built-in property works reliably with Clover injection | DeviceProperties entry only |
On High Sierra, some users report that the built-in property injected via DeviceProperties is ignored if the DSDT contains a _DSM method that returns an empty package. In that case, you must either remove the _DSM method from the DSDT (via a binary rename) or use a SSDT that overrides it. This is a delicate operation — test on a spare drive first.
A Final Note on Data Safety
Editing ACPI tables and deleting system configuration files carries inherent risk. A misconfigured DSDT patch can prevent your system from booting, and deleted network preferences can lock you out of your network if you do not have physical access to the machine. Always maintain a bootable backup of your current EFI partition and a copy of your network passwords before attempting these fixes. Ethernet Built-In 6 is a solvable problem, but patience and methodical testing are your best tools.
