Hardware and PCI Devices Guide for macOS 10.6.2 (Snow Leopard) Hackintosh
Comprehensive guide to compatible hardware and PCI device IDs for building a stable Hackintosh running macOS 10.6.2 Snow Leopard.
Core Hardware Compatibility for Snow Leopard 10.6.2
The macOS 10.6.2 Snow Leopard release (build 10C540) remains a unique archival target for Hackintosh builders who wish to experience the early era of OS X on non-Apple hardware. While later versions introduced 64-bit kernel and stricter driver signing, Snow Leopard still relies on the 32-bit kernel (with optional 64-bit user space) and accepts kexts without code signing. This makes it both accessible and fragile: any PCI device whose kernel extension is not present or does not match the device ID will result in a missing driver or a kernel panic. Understanding the PCI device ID system is therefore the cornerstone of a stable 10.6.2 installation.
Processor support in 10.6.2 is limited to Intel Core 2 Duo, Core 2 Quad, and early Core i3/i5/i7 series (first-generation Nehalem and Lynnfield) provided a patched kernel is used for the latter. AMD CPUs are not supported natively; any attempt requires a special Voodoo kernel that is notoriously unstable. The chipset should be Intel P35, P45, G31, G41, X38, X48, or X58. NVIDIA nForce chipsets are possible but require patched AppleNForceATA kexts and often show erratic SATA behavior.
Memory is another constraint: the 32-bit kernel can address at most 4 GB of RAM. Even with PAE enabled in the kernel, certain kexts may panic beyond 4 GB. For a reliable system, stay at 4 GB or less. SSDs are supported but without TRIM; use a third-party kext like IOAHCIBlockStorageInjector or schedule regular manual TRIM via a live Linux USB.
PCI Device Identifiers and Kext Loading
Every PCI device exposes a vendor ID (e.g., 0x8086 for Intel) and a device ID (e.g., 0x3a22 for ICH10 SATA). macOS kexts contain an Info.plist with an IOPCIMatch dictionary listing accepted device IDs. If your device ID is missing, the kext silently ignores it. To add your device, you must either patch the kext’s Info.plist or inject the ID via a bootloader string. Snow Leopard bootloaders – primarily Chameleon RC5 or Empire EFI – support device-properties strings for GPUs and some controllers.
Ethernet Controllers
| Controller | Device ID(s) | Kext | Notes |
|---|---|---|---|
| Realtek RTL8111B/C/D | 0x8168 | AppleRTL8169Ethernet.kext (patched) | Add device ID to Info.plist or use RealtekR1000SL kext |
| Realtek RTL8100E | 0x8136 | AppleRTL8100E.kext | Native in 10.6.2; may need ID injection |
| Intel PRO/1000 CT (82574L) | 0x10d3 | AppleIntelE1000e.kext | Use 1.3.5 version; later versions require 64-bit |
| Broadcom BCM5787M | 0x1693 | AppleBCM5701Ethernet.kext | Often works OOB; add device ID if not detected |
| Marvell Yukon 88E8056 | 0x4364 | AppleYukon2.kext | Patch for 10.6.2: replace IONetworkingFamily |
For Ethernet, the most common chipset on LGA775 motherboards is the Realtek RTL8111B, with device ID 0x8168. In Snow Leopard, the AppleRTL8169Ethernet kext recognizes it, but often requires adding the device ID to the Info.plist. Alternatively, the RealtekR1000SL kext (by Slice) provides native support for multiple 8111 variants. Always verify the exact revision: RTL8111E (device ID 0x8169) does not work with the same kext.
Audio Controllers
| Codec | Device ID (HDA) | Kext | Notes |
|---|---|---|---|
| Realtek ALC888 | 0x10ec0888 | AppleHDA.kext (patched with HDAEnabler) | Use legacy AppleHDA from 10.6.2; inject layout-id via DSDT |
| Realtek ALC889 | 0x10ec0889 | VoodooHDA.kext (v0.2.8) | VoodooHDA works but may have static noise; adjust PLL |
| Realtek ALC662 | 0x10ec0662 | AppleHDA.kext (patched) | Need codec dump and custom layout |
| VIA VT1708S | 0x11060397 | VoodooHDA.kext (v0.2.8) | Only VoodooHDA reliably works; AppleHDA is difficult |
Audio is the trickiest subsystem in 10.6.2 because AppleHDA.kext requires a combined codec dump, layout, and platform injection. For most Realtek codecs, the legacy AppleHDA from 10.6.2 (or earlier) combined with a DSDT injection of layout-id gives the best results. VoodooHDA is a fallback but introduces CPU overhead and sometimes popping noises.
Graphics Cards
Snow Leopard supports a broad range of GPUs from NVIDIA GeForce 8000–300 series and AMD Radeon HD 4000–5000 series. Key device IDs:
- NVIDIA GeForce 8800 GT – 0x0611
- NVIDIA GeForce 9800 GT – 0x0614
- NVIDIA GeForce GT 210 – 0x0a65
- AMD Radeon HD 4850 – 0x9442
- AMD Radeon HD 5770 – 0x68b8
Injection is done either via Chameleon’s GraphicsEnabler=Yes (works for most NVIDIA cards) or via an EFI string placed in boot.plist for AMD cards. The Radeon HD 5770, for example, requires the framebuffer injection technique detailed in older tutorials; the device ID must match the ATY_Init kext or whatever version you use. Note that newer GPUs (Kepler, GCN 1.1+) are unsupported – they lack 32-bit drivers.

ACPI and DSDT Patches for Legacy PCI Devices
The DSDT is a compiled table that describes all hardware devices on the ACPI bus. In Snow Leopard, many PCI devices are enumerated through ACPI, and missing or incorrect entries can cause USB ports to fail, SATA controllers to be unrecognized, or sleep to break. A minimal DSDT patch should include:
- HPET fix: Set IRQs 0, 8, 11 to 0 (or match the HPET timer) to avoid kernel panics on boot.
- RTC fix: Ensure the RTC device has length 0x02, not 0x08, otherwise CMOS reset occurs.
- USB injection: Add EHCI controller definitions if the DSDT is missing them (common on P45 boards).
- Device-ID injection: For audio and Ethernet, you can add a
device-idproperty under the corresponding PCI device to force macOS to load a specific kext.
To extract your DSDT on Snow Leopard, boot with a Linux live USB and run cat /sys/firmware/acpi/dsdt or use the ACPICA tools. The general extraction workflow is similar to what we cover for later chipsets – the core principles remain the same even if the tooling differs. Once you have the DSDT, compile it with iASL, apply patches, and place the resulting DSDT.aml in the root of your boot partition.
Final Steps: Testing and Validation
After installing 10.6.2 and patching the necessary kexts, boot with the -v flag and watch for Still waiting for root device (SATA issue) or DSMOS has arrived pause (graphics kext load). Open System Profiler (/Applications/Utilities/System Information.app) and check each section:
- PCI Cards – Should list your GPU, Ethernet, audio, and any add-in cards with correct names.
- Serial-ATA – All drives should appear as “Internal” with proper vendor strings.
- Network – Ethernet should show an IP address if DHCP is available.
- Audio – Input/Output devices appear in Sound Preferences (if using AppleHDA) or at least an aggregate device (VoodooHDA).
A practical verification step is to open Terminal after your first successful boot and run /usr/sbin/system_profiler SPHardwareDataType. Cross-reference the PCI device entries with the original kexts. If, for example, your Intel ICH9 SATA controller shows 'Non-Apple controller name', you may need to patch AppleAHCIPort.kext with the appropriate device ID. Document every change in a text file – your future self will thank you when you rebuild the installer.
